source: XIOS/trunk/src/interface/fortran_attr/context_interface_attr.F90 @ 545

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
  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
File size: 4.9 KB
Line 
1! * ************************************************************************** *
2! *               Interface auto generated - do not modify                     *
3! * ************************************************************************** *
4#include "../fortran/xios_fortran_prefix.hpp"
5
6MODULE context_interface_attr
7  USE, INTRINSIC :: ISO_C_BINDING
8 
9  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
10   
11   
12    SUBROUTINE cxios_set_context_calendar_type(context_hdl, calendar_type, calendar_type_size) BIND(C)
13      USE ISO_C_BINDING
14      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
15      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: calendar_type
16      INTEGER  (kind = C_INT)     , VALUE        :: calendar_type_size
17    END SUBROUTINE cxios_set_context_calendar_type
18   
19    SUBROUTINE cxios_get_context_calendar_type(context_hdl, calendar_type, calendar_type_size) BIND(C)
20      USE ISO_C_BINDING
21      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
22      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: calendar_type
23      INTEGER  (kind = C_INT)     , VALUE        :: calendar_type_size
24    END SUBROUTINE cxios_get_context_calendar_type
25   
26    FUNCTION cxios_is_defined_context_calendar_type(context_hdl ) BIND(C)
27      USE ISO_C_BINDING
28      LOGICAL(kind=C_BOOL) :: cxios_is_defined_context_calendar_type
29      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
30    END FUNCTION cxios_is_defined_context_calendar_type
31   
32   
33    SUBROUTINE cxios_set_context_output_dir(context_hdl, output_dir, output_dir_size) BIND(C)
34      USE ISO_C_BINDING
35      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
36      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_dir
37      INTEGER  (kind = C_INT)     , VALUE        :: output_dir_size
38    END SUBROUTINE cxios_set_context_output_dir
39   
40    SUBROUTINE cxios_get_context_output_dir(context_hdl, output_dir, output_dir_size) BIND(C)
41      USE ISO_C_BINDING
42      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
43      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_dir
44      INTEGER  (kind = C_INT)     , VALUE        :: output_dir_size
45    END SUBROUTINE cxios_get_context_output_dir
46   
47    FUNCTION cxios_is_defined_context_output_dir(context_hdl ) BIND(C)
48      USE ISO_C_BINDING
49      LOGICAL(kind=C_BOOL) :: cxios_is_defined_context_output_dir
50      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
51    END FUNCTION cxios_is_defined_context_output_dir
52   
53   
54    SUBROUTINE cxios_set_context_start_date(context_hdl, start_date) BIND(C)
55      USE ISO_C_BINDING
56      USE IDATE
57      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
58      TYPE(txios(date)), VALUE :: start_date
59    END SUBROUTINE cxios_set_context_start_date
60   
61    SUBROUTINE cxios_get_context_start_date(context_hdl, start_date) BIND(C)
62      USE ISO_C_BINDING
63      USE IDATE
64      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
65      TYPE(txios(date)) :: start_date
66    END SUBROUTINE cxios_get_context_start_date
67   
68    FUNCTION cxios_is_defined_context_start_date(context_hdl ) BIND(C)
69      USE ISO_C_BINDING
70      LOGICAL(kind=C_BOOL) :: cxios_is_defined_context_start_date
71      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
72    END FUNCTION cxios_is_defined_context_start_date
73   
74   
75    SUBROUTINE cxios_set_context_time_origin(context_hdl, time_origin) BIND(C)
76      USE ISO_C_BINDING
77      USE IDATE
78      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
79      TYPE(txios(date)), VALUE :: time_origin
80    END SUBROUTINE cxios_set_context_time_origin
81   
82    SUBROUTINE cxios_get_context_time_origin(context_hdl, time_origin) BIND(C)
83      USE ISO_C_BINDING
84      USE IDATE
85      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
86      TYPE(txios(date)) :: time_origin
87    END SUBROUTINE cxios_get_context_time_origin
88   
89    FUNCTION cxios_is_defined_context_time_origin(context_hdl ) BIND(C)
90      USE ISO_C_BINDING
91      LOGICAL(kind=C_BOOL) :: cxios_is_defined_context_time_origin
92      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
93    END FUNCTION cxios_is_defined_context_time_origin
94   
95   
96    SUBROUTINE cxios_set_context_timestep(context_hdl, timestep) BIND(C)
97      USE ISO_C_BINDING
98      USE IDURATION
99      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
100      TYPE(txios(duration)), VALUE :: timestep
101    END SUBROUTINE cxios_set_context_timestep
102   
103    SUBROUTINE cxios_get_context_timestep(context_hdl, timestep) BIND(C)
104      USE ISO_C_BINDING
105      USE IDURATION
106      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
107      TYPE(txios(duration)) :: timestep
108    END SUBROUTINE cxios_get_context_timestep
109   
110    FUNCTION cxios_is_defined_context_timestep(context_hdl ) BIND(C)
111      USE ISO_C_BINDING
112      LOGICAL(kind=C_BOOL) :: cxios_is_defined_context_timestep
113      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
114    END FUNCTION cxios_is_defined_context_timestep
115   
116   
117    END INTERFACE
118 
119END MODULE context_interface_attr
Note: See TracBrowser for help on using the repository browser.