source: XIOS/trunk/src/interface/fortran_attr/icalendar_wrapper_attr.F90 @ 550

Last change on this file since 550 was 550, checked in by rlacroix, 6 years ago

Add a new user defined calendar type.

A new calendar type "user_defined" is now available. This allows the users to create a custom calendar that we can configured to be suitable for planets other than the Earth.

An user defined calendar is always defined by two mandatory attributes:

  • day_length: the duration of a day, in seconds
  • and either:
    • month_length: an array containing the duration of each month, in days (the number of elements in the array is the number of months in a year)
    • or year_length: the duration of a year, in seconds (in that case, the calendar does not have months).

If the calendar has months (i.e. month_length attribute is set) and only in that case, it is possible to define leap years in order to compensate for the duration of an astronomical year not being a multiple of the day length. The leap years are defined by two mandatory attributes:

  • leap_year_month: the month to which the extra day will be added in case of leap year, expressed as an integer number in the range [1, numberOfMonths]
  • and leap_year_drift: the fraction of a day representing the yearly drift between the calendar year and the astronomical year, expressed as a real number in the range [0, 1).

Optionally, one can define the leap_year_drift_offset attribute to set the original drift at the beginning of the time origin's year, again expressed as a real number in the range [0, 1). If leap_year_drift_offset + leap_year_drift is greater or equal to 1, then the first year will be a leap year.

For example, the following configuration creates a Gregorian-like calendar:

<calendar type="user_defined" start_date="2012-03-01 15:00:00" time_origin="2012-02-28 15:00:00 + 1d" day_length="86400" month_lengths="(1, 12) [31 28 31 30 31 30 31 31 30 31 30 31]" leap_year_month="2" leap_year_drift="0.25" leap_year_drift_offset="0.75" />

Note that dates attributes must be written differently in the configuration file when using an user defined calendar without months:

  • if the year length is greater than the day length, the input format is year-day hh:min:sec instead of year-month-day hh:min:sec
  • if the day length is greater or equal to the year length, the input format is year hh:min:sec.

In all cases, it is still possible to use the date + duration notation to build a date (with both the date and duration parts being optional).

The Fortran interface has been updated accordingly so that xios_define_calendar can accept the new attributes necessary to define custom calendars.

File size: 17.3 KB
Line 
1! * ************************************************************************** *
2! *               Interface auto generated - do not modify                     *
3! * ************************************************************************** *
4#include "xios_fortran_prefix.hpp"
5
6MODULE icalendar_wrapper_attr
7  USE, INTRINSIC :: ISO_C_BINDING
8  USE icalendar_wrapper
9  USE calendar_wrapper_interface_attr
10 
11CONTAINS
12 
13  SUBROUTINE xios(set_calendar_wrapper_attr)  &
14    ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
15    , month_lengths, start_date, time_origin, timestep, type, year_length )
16   
17    IMPLICIT NONE
18      TYPE(txios(calendar_wrapper))  :: calendar_wrapper_hdl
19      CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id
20      INTEGER  , OPTIONAL, INTENT(IN) :: day_length
21      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift
22      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_offset
23      INTEGER  , OPTIONAL, INTENT(IN) :: leap_year_month
24      INTEGER  , OPTIONAL, INTENT(IN) :: month_lengths(:)
25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date
26      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin
27      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: timestep
28      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
29      INTEGER  , OPTIONAL, INTENT(IN) :: year_length
30     
31      CALL xios(get_calendar_wrapper_handle)(calendar_wrapper_id,calendar_wrapper_hdl)
32      CALL xios(set_calendar_wrapper_attr_hdl_)   &
33      ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
34      , month_lengths, start_date, time_origin, timestep, type, year_length )
35   
36  END SUBROUTINE xios(set_calendar_wrapper_attr)
37 
38  SUBROUTINE xios(set_calendar_wrapper_attr_hdl)  &
39    ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
40    , month_lengths, start_date, time_origin, timestep, type, year_length )
41   
42    IMPLICIT NONE
43      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl
44      INTEGER  , OPTIONAL, INTENT(IN) :: day_length
45      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift
46      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_offset
47      INTEGER  , OPTIONAL, INTENT(IN) :: leap_year_month
48      INTEGER  , OPTIONAL, INTENT(IN) :: month_lengths(:)
49      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date
50      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin
51      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: timestep
52      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
53      INTEGER  , OPTIONAL, INTENT(IN) :: year_length
54     
55      CALL xios(set_calendar_wrapper_attr_hdl_)  &
56      ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
57      , month_lengths, start_date, time_origin, timestep, type, year_length )
58   
59  END SUBROUTINE xios(set_calendar_wrapper_attr_hdl)
60 
61  SUBROUTINE xios(set_calendar_wrapper_attr_hdl_)   &
62    ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  &
63    , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ )
64   
65    IMPLICIT NONE
66      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl
67      INTEGER  , OPTIONAL, INTENT(IN) :: day_length_
68      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_
69      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_offset_
70      INTEGER  , OPTIONAL, INTENT(IN) :: leap_year_month_
71      INTEGER  , OPTIONAL, INTENT(IN) :: month_lengths_(:)
72      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_
73      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin_
74      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: timestep_
75      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
76      INTEGER  , OPTIONAL, INTENT(IN) :: year_length_
77     
78      IF (PRESENT(day_length_)) THEN
79        CALL cxios_set_calendar_wrapper_day_length(calendar_wrapper_hdl%daddr, day_length_)
80      ENDIF
81     
82      IF (PRESENT(leap_year_drift_)) THEN
83        CALL cxios_set_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl%daddr, leap_year_drift_)
84      ENDIF
85     
86      IF (PRESENT(leap_year_drift_offset_)) THEN
87        CALL cxios_set_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl%daddr, leap_year_drift_offset_)
88      ENDIF
89     
90      IF (PRESENT(leap_year_month_)) THEN
91        CALL cxios_set_calendar_wrapper_leap_year_month(calendar_wrapper_hdl%daddr, leap_year_month_)
92      ENDIF
93     
94      IF (PRESENT(month_lengths_)) THEN
95        CALL cxios_set_calendar_wrapper_month_lengths(calendar_wrapper_hdl%daddr, month_lengths_,size(month_lengths_,1))
96      ENDIF
97     
98      IF (PRESENT(start_date_)) THEN
99        CALL cxios_set_calendar_wrapper_start_date(calendar_wrapper_hdl%daddr, start_date_, len(start_date_))
100      ENDIF
101     
102      IF (PRESENT(time_origin_)) THEN
103        CALL cxios_set_calendar_wrapper_time_origin(calendar_wrapper_hdl%daddr, time_origin_, len(time_origin_))
104      ENDIF
105     
106      IF (PRESENT(timestep_)) THEN
107        CALL cxios_set_calendar_wrapper_timestep(calendar_wrapper_hdl%daddr, timestep_)
108      ENDIF
109     
110      IF (PRESENT(type_)) THEN
111        CALL cxios_set_calendar_wrapper_type(calendar_wrapper_hdl%daddr, type_, len(type_))
112      ENDIF
113     
114      IF (PRESENT(year_length_)) THEN
115        CALL cxios_set_calendar_wrapper_year_length(calendar_wrapper_hdl%daddr, year_length_)
116      ENDIF
117     
118     
119   
120  END SUBROUTINE xios(set_calendar_wrapper_attr_hdl_)
121 
122  SUBROUTINE xios(get_calendar_wrapper_attr)  &
123    ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
124    , month_lengths, start_date, time_origin, timestep, type, year_length )
125   
126    IMPLICIT NONE
127      TYPE(txios(calendar_wrapper))  :: calendar_wrapper_hdl
128      CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id
129      INTEGER  , OPTIONAL, INTENT(OUT) :: day_length
130      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift
131      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_offset
132      INTEGER  , OPTIONAL, INTENT(OUT) :: leap_year_month
133      INTEGER  , OPTIONAL, INTENT(OUT) :: month_lengths(:)
134      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date
135      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin
136      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: timestep
137      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
138      INTEGER  , OPTIONAL, INTENT(OUT) :: year_length
139     
140      CALL xios(get_calendar_wrapper_handle)(calendar_wrapper_id,calendar_wrapper_hdl)
141      CALL xios(get_calendar_wrapper_attr_hdl_)   &
142      ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
143      , month_lengths, start_date, time_origin, timestep, type, year_length )
144   
145  END SUBROUTINE xios(get_calendar_wrapper_attr)
146 
147  SUBROUTINE xios(get_calendar_wrapper_attr_hdl)  &
148    ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
149    , month_lengths, start_date, time_origin, timestep, type, year_length )
150   
151    IMPLICIT NONE
152      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl
153      INTEGER  , OPTIONAL, INTENT(OUT) :: day_length
154      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift
155      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_offset
156      INTEGER  , OPTIONAL, INTENT(OUT) :: leap_year_month
157      INTEGER  , OPTIONAL, INTENT(OUT) :: month_lengths(:)
158      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date
159      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin
160      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: timestep
161      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
162      INTEGER  , OPTIONAL, INTENT(OUT) :: year_length
163     
164      CALL xios(get_calendar_wrapper_attr_hdl_)  &
165      ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
166      , month_lengths, start_date, time_origin, timestep, type, year_length )
167   
168  END SUBROUTINE xios(get_calendar_wrapper_attr_hdl)
169 
170  SUBROUTINE xios(get_calendar_wrapper_attr_hdl_)   &
171    ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  &
172    , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ )
173   
174    IMPLICIT NONE
175      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl
176      INTEGER  , OPTIONAL, INTENT(OUT) :: day_length_
177      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_
178      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_offset_
179      INTEGER  , OPTIONAL, INTENT(OUT) :: leap_year_month_
180      INTEGER  , OPTIONAL, INTENT(OUT) :: month_lengths_(:)
181      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date_
182      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin_
183      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: timestep_
184      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
185      INTEGER  , OPTIONAL, INTENT(OUT) :: year_length_
186     
187      IF (PRESENT(day_length_)) THEN
188        CALL cxios_get_calendar_wrapper_day_length(calendar_wrapper_hdl%daddr, day_length_)
189      ENDIF
190     
191      IF (PRESENT(leap_year_drift_)) THEN
192        CALL cxios_get_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl%daddr, leap_year_drift_)
193      ENDIF
194     
195      IF (PRESENT(leap_year_drift_offset_)) THEN
196        CALL cxios_get_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl%daddr, leap_year_drift_offset_)
197      ENDIF
198     
199      IF (PRESENT(leap_year_month_)) THEN
200        CALL cxios_get_calendar_wrapper_leap_year_month(calendar_wrapper_hdl%daddr, leap_year_month_)
201      ENDIF
202     
203      IF (PRESENT(month_lengths_)) THEN
204        CALL cxios_get_calendar_wrapper_month_lengths(calendar_wrapper_hdl%daddr, month_lengths_,size(month_lengths_,1))
205      ENDIF
206     
207      IF (PRESENT(start_date_)) THEN
208        CALL cxios_get_calendar_wrapper_start_date(calendar_wrapper_hdl%daddr, start_date_, len(start_date_))
209      ENDIF
210     
211      IF (PRESENT(time_origin_)) THEN
212        CALL cxios_get_calendar_wrapper_time_origin(calendar_wrapper_hdl%daddr, time_origin_, len(time_origin_))
213      ENDIF
214     
215      IF (PRESENT(timestep_)) THEN
216        CALL cxios_get_calendar_wrapper_timestep(calendar_wrapper_hdl%daddr, timestep_)
217      ENDIF
218     
219      IF (PRESENT(type_)) THEN
220        CALL cxios_get_calendar_wrapper_type(calendar_wrapper_hdl%daddr, type_, len(type_))
221      ENDIF
222     
223      IF (PRESENT(year_length_)) THEN
224        CALL cxios_get_calendar_wrapper_year_length(calendar_wrapper_hdl%daddr, year_length_)
225      ENDIF
226     
227     
228   
229  END SUBROUTINE xios(get_calendar_wrapper_attr_hdl_)
230 
231  SUBROUTINE xios(is_defined_calendar_wrapper_attr)  &
232    ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
233    , month_lengths, start_date, time_origin, timestep, type, year_length )
234   
235    IMPLICIT NONE
236      TYPE(txios(calendar_wrapper))  :: calendar_wrapper_hdl
237      CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id
238      LOGICAL, OPTIONAL, INTENT(OUT) :: day_length
239      LOGICAL(KIND=C_BOOL) :: day_length_tmp
240      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift
241      LOGICAL(KIND=C_BOOL) :: leap_year_drift_tmp
242      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_offset
243      LOGICAL(KIND=C_BOOL) :: leap_year_drift_offset_tmp
244      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_month
245      LOGICAL(KIND=C_BOOL) :: leap_year_month_tmp
246      LOGICAL, OPTIONAL, INTENT(OUT) :: month_lengths
247      LOGICAL(KIND=C_BOOL) :: month_lengths_tmp
248      LOGICAL, OPTIONAL, INTENT(OUT) :: start_date
249      LOGICAL(KIND=C_BOOL) :: start_date_tmp
250      LOGICAL, OPTIONAL, INTENT(OUT) :: time_origin
251      LOGICAL(KIND=C_BOOL) :: time_origin_tmp
252      LOGICAL, OPTIONAL, INTENT(OUT) :: timestep
253      LOGICAL(KIND=C_BOOL) :: timestep_tmp
254      LOGICAL, OPTIONAL, INTENT(OUT) :: type
255      LOGICAL(KIND=C_BOOL) :: type_tmp
256      LOGICAL, OPTIONAL, INTENT(OUT) :: year_length
257      LOGICAL(KIND=C_BOOL) :: year_length_tmp
258     
259      CALL xios(get_calendar_wrapper_handle)(calendar_wrapper_id,calendar_wrapper_hdl)
260      CALL xios(is_defined_calendar_wrapper_attr_hdl_)   &
261      ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
262      , month_lengths, start_date, time_origin, timestep, type, year_length )
263   
264  END SUBROUTINE xios(is_defined_calendar_wrapper_attr)
265 
266  SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl)  &
267    ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
268    , month_lengths, start_date, time_origin, timestep, type, year_length )
269   
270    IMPLICIT NONE
271      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl
272      LOGICAL, OPTIONAL, INTENT(OUT) :: day_length
273      LOGICAL(KIND=C_BOOL) :: day_length_tmp
274      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift
275      LOGICAL(KIND=C_BOOL) :: leap_year_drift_tmp
276      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_offset
277      LOGICAL(KIND=C_BOOL) :: leap_year_drift_offset_tmp
278      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_month
279      LOGICAL(KIND=C_BOOL) :: leap_year_month_tmp
280      LOGICAL, OPTIONAL, INTENT(OUT) :: month_lengths
281      LOGICAL(KIND=C_BOOL) :: month_lengths_tmp
282      LOGICAL, OPTIONAL, INTENT(OUT) :: start_date
283      LOGICAL(KIND=C_BOOL) :: start_date_tmp
284      LOGICAL, OPTIONAL, INTENT(OUT) :: time_origin
285      LOGICAL(KIND=C_BOOL) :: time_origin_tmp
286      LOGICAL, OPTIONAL, INTENT(OUT) :: timestep
287      LOGICAL(KIND=C_BOOL) :: timestep_tmp
288      LOGICAL, OPTIONAL, INTENT(OUT) :: type
289      LOGICAL(KIND=C_BOOL) :: type_tmp
290      LOGICAL, OPTIONAL, INTENT(OUT) :: year_length
291      LOGICAL(KIND=C_BOOL) :: year_length_tmp
292     
293      CALL xios(is_defined_calendar_wrapper_attr_hdl_)  &
294      ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  &
295      , month_lengths, start_date, time_origin, timestep, type, year_length )
296   
297  END SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl)
298 
299  SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl_)   &
300    ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  &
301    , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ )
302   
303    IMPLICIT NONE
304      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl
305      LOGICAL, OPTIONAL, INTENT(OUT) :: day_length_
306      LOGICAL(KIND=C_BOOL) :: day_length__tmp
307      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_
308      LOGICAL(KIND=C_BOOL) :: leap_year_drift__tmp
309      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_offset_
310      LOGICAL(KIND=C_BOOL) :: leap_year_drift_offset__tmp
311      LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_month_
312      LOGICAL(KIND=C_BOOL) :: leap_year_month__tmp
313      LOGICAL, OPTIONAL, INTENT(OUT) :: month_lengths_
314      LOGICAL(KIND=C_BOOL) :: month_lengths__tmp
315      LOGICAL, OPTIONAL, INTENT(OUT) :: start_date_
316      LOGICAL(KIND=C_BOOL) :: start_date__tmp
317      LOGICAL, OPTIONAL, INTENT(OUT) :: time_origin_
318      LOGICAL(KIND=C_BOOL) :: time_origin__tmp
319      LOGICAL, OPTIONAL, INTENT(OUT) :: timestep_
320      LOGICAL(KIND=C_BOOL) :: timestep__tmp
321      LOGICAL, OPTIONAL, INTENT(OUT) :: type_
322      LOGICAL(KIND=C_BOOL) :: type__tmp
323      LOGICAL, OPTIONAL, INTENT(OUT) :: year_length_
324      LOGICAL(KIND=C_BOOL) :: year_length__tmp
325     
326      IF (PRESENT(day_length_)) THEN
327        day_length__tmp=cxios_is_defined_calendar_wrapper_day_length(calendar_wrapper_hdl%daddr)
328        day_length_=day_length__tmp
329      ENDIF
330     
331      IF (PRESENT(leap_year_drift_)) THEN
332        leap_year_drift__tmp=cxios_is_defined_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl%daddr)
333        leap_year_drift_=leap_year_drift__tmp
334      ENDIF
335     
336      IF (PRESENT(leap_year_drift_offset_)) THEN
337        leap_year_drift_offset__tmp=cxios_is_defined_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl%daddr)
338        leap_year_drift_offset_=leap_year_drift_offset__tmp
339      ENDIF
340     
341      IF (PRESENT(leap_year_month_)) THEN
342        leap_year_month__tmp=cxios_is_defined_calendar_wrapper_leap_year_month(calendar_wrapper_hdl%daddr)
343        leap_year_month_=leap_year_month__tmp
344      ENDIF
345     
346      IF (PRESENT(month_lengths_)) THEN
347        month_lengths__tmp=cxios_is_defined_calendar_wrapper_month_lengths(calendar_wrapper_hdl%daddr)
348        month_lengths_=month_lengths__tmp
349      ENDIF
350     
351      IF (PRESENT(start_date_)) THEN
352        start_date__tmp=cxios_is_defined_calendar_wrapper_start_date(calendar_wrapper_hdl%daddr)
353        start_date_=start_date__tmp
354      ENDIF
355     
356      IF (PRESENT(time_origin_)) THEN
357        time_origin__tmp=cxios_is_defined_calendar_wrapper_time_origin(calendar_wrapper_hdl%daddr)
358        time_origin_=time_origin__tmp
359      ENDIF
360     
361      IF (PRESENT(timestep_)) THEN
362        timestep__tmp=cxios_is_defined_calendar_wrapper_timestep(calendar_wrapper_hdl%daddr)
363        timestep_=timestep__tmp
364      ENDIF
365     
366      IF (PRESENT(type_)) THEN
367        type__tmp=cxios_is_defined_calendar_wrapper_type(calendar_wrapper_hdl%daddr)
368        type_=type__tmp
369      ENDIF
370     
371      IF (PRESENT(year_length_)) THEN
372        year_length__tmp=cxios_is_defined_calendar_wrapper_year_length(calendar_wrapper_hdl%daddr)
373        year_length_=year_length__tmp
374      ENDIF
375     
376     
377   
378  END SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl_)
379 
380END MODULE icalendar_wrapper_attr
Note: See TracBrowser for help on using the repository browser.