Last change
on this file since 545 was
545,
checked in by rlacroix, 9 years ago
|
Expose the calendar operations through the Fortran interface.
- Add arithmetic operations on the xios_duration and xios_date types:
- xios_duration + xios_duration = xios_duration
- xios_duration - xios_duration = xios_duration
- scalar * xios_duration = xios_duration * scalar = xios_duration
- - xios_duration = xios_duration
- xios_date + xios_duration = xios_date
- xios_date - xios_duration = xios_date
- xios_date - xios_date = xios_duration
- Add comparison operations on the xios_duration and xios_date types:
- xios_duration: ==, /=
- xios_date: ==, /=, <, <=, >, >=
- Add a new function "xios_date_convert_to_seconds" to convert a date into the number of seconds since the time origin of the calendar
- Define some constant durations "xios_second", "xios_minute", "xios_hour", "xios_day", "xios_month", "xios_year" et "xios_timestep" to ease the definition of new durations (for example, 10h is just 10 * xios_hour)
- Add a new function "xios_set_calendar" so that one can manually create the calendar attached to the current context and thus use the calendar operations before calling "xios_close_context_definition". This function can accept optional parameters so that the calendar attributes (calendar_type, start_date, time_origin and timestep) can be easily overwritten. Note that you cannot define a new calendar after one was already created (either because "xios_set_calendar" or "xios_close_context_definition" was used)
- Readd the function "xios_set_timestep" as a simplified alias of "xios_set_context_attr(context, timestep)" for the current context
|
File size:
453 bytes
|
Line | |
---|
1 | MODULE CALENDAR_INTERFACE |
---|
2 | USE, INTRINSIC :: ISO_C_BINDING |
---|
3 | |
---|
4 | INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 |
---|
5 | |
---|
6 | SUBROUTINE cxios_create_calendar() BIND(C) |
---|
7 | END SUBROUTINE cxios_create_calendar |
---|
8 | |
---|
9 | SUBROUTINE cxios_update_calendar(step) BIND(C) |
---|
10 | IMPORT C_INT |
---|
11 | INTEGER (kind = C_INT), VALUE :: step |
---|
12 | END SUBROUTINE cxios_update_calendar |
---|
13 | |
---|
14 | END INTERFACE |
---|
15 | |
---|
16 | END MODULE CALENDAR_INTERFACE |
---|
Note: See
TracBrowser
for help on using the repository browser.