source: XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90 @ 551

Last change on this file since 551 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: 12.2 KB
Line 
1! * ************************************************************************** *
2! *               Interface auto generated - do not modify                     *
3! * ************************************************************************** *
4#include "../fortran/xios_fortran_prefix.hpp"
5
6MODULE file_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_file_append(file_hdl, append) BIND(C)
13      USE ISO_C_BINDING
14      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
15      LOGICAL (KIND=C_BOOL)      , VALUE :: append
16    END SUBROUTINE cxios_set_file_append
17   
18    SUBROUTINE cxios_get_file_append(file_hdl, append) BIND(C)
19      USE ISO_C_BINDING
20      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
21      LOGICAL (KIND=C_BOOL)             :: append
22    END SUBROUTINE cxios_get_file_append
23   
24    FUNCTION cxios_is_defined_file_append(file_hdl ) BIND(C)
25      USE ISO_C_BINDING
26      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_append
27      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
28    END FUNCTION cxios_is_defined_file_append
29   
30   
31    SUBROUTINE cxios_set_file_description(file_hdl, description, description_size) BIND(C)
32      USE ISO_C_BINDING
33      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
34      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
35      INTEGER  (kind = C_INT)     , VALUE        :: description_size
36    END SUBROUTINE cxios_set_file_description
37   
38    SUBROUTINE cxios_get_file_description(file_hdl, description, description_size) BIND(C)
39      USE ISO_C_BINDING
40      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
41      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
42      INTEGER  (kind = C_INT)     , VALUE        :: description_size
43    END SUBROUTINE cxios_get_file_description
44   
45    FUNCTION cxios_is_defined_file_description(file_hdl ) BIND(C)
46      USE ISO_C_BINDING
47      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_description
48      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
49    END FUNCTION cxios_is_defined_file_description
50   
51   
52    SUBROUTINE cxios_set_file_enabled(file_hdl, enabled) BIND(C)
53      USE ISO_C_BINDING
54      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
55      LOGICAL (KIND=C_BOOL)      , VALUE :: enabled
56    END SUBROUTINE cxios_set_file_enabled
57   
58    SUBROUTINE cxios_get_file_enabled(file_hdl, enabled) BIND(C)
59      USE ISO_C_BINDING
60      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
61      LOGICAL (KIND=C_BOOL)             :: enabled
62    END SUBROUTINE cxios_get_file_enabled
63   
64    FUNCTION cxios_is_defined_file_enabled(file_hdl ) BIND(C)
65      USE ISO_C_BINDING
66      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_enabled
67      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
68    END FUNCTION cxios_is_defined_file_enabled
69   
70   
71    SUBROUTINE cxios_set_file_format(file_hdl, format, format_size) BIND(C)
72      USE ISO_C_BINDING
73      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
74      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: format
75      INTEGER  (kind = C_INT)     , VALUE        :: format_size
76    END SUBROUTINE cxios_set_file_format
77   
78    SUBROUTINE cxios_get_file_format(file_hdl, format, format_size) BIND(C)
79      USE ISO_C_BINDING
80      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
81      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: format
82      INTEGER  (kind = C_INT)     , VALUE        :: format_size
83    END SUBROUTINE cxios_get_file_format
84   
85    FUNCTION cxios_is_defined_file_format(file_hdl ) BIND(C)
86      USE ISO_C_BINDING
87      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_format
88      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
89    END FUNCTION cxios_is_defined_file_format
90   
91   
92    SUBROUTINE cxios_set_file_min_digits(file_hdl, min_digits) BIND(C)
93      USE ISO_C_BINDING
94      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
95      INTEGER (KIND=C_INT)      , VALUE :: min_digits
96    END SUBROUTINE cxios_set_file_min_digits
97   
98    SUBROUTINE cxios_get_file_min_digits(file_hdl, min_digits) BIND(C)
99      USE ISO_C_BINDING
100      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
101      INTEGER (KIND=C_INT)             :: min_digits
102    END SUBROUTINE cxios_get_file_min_digits
103   
104    FUNCTION cxios_is_defined_file_min_digits(file_hdl ) BIND(C)
105      USE ISO_C_BINDING
106      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_min_digits
107      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
108    END FUNCTION cxios_is_defined_file_min_digits
109   
110   
111    SUBROUTINE cxios_set_file_name(file_hdl, name, name_size) BIND(C)
112      USE ISO_C_BINDING
113      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
114      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
115      INTEGER  (kind = C_INT)     , VALUE        :: name_size
116    END SUBROUTINE cxios_set_file_name
117   
118    SUBROUTINE cxios_get_file_name(file_hdl, name, name_size) BIND(C)
119      USE ISO_C_BINDING
120      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
121      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
122      INTEGER  (kind = C_INT)     , VALUE        :: name_size
123    END SUBROUTINE cxios_get_file_name
124   
125    FUNCTION cxios_is_defined_file_name(file_hdl ) BIND(C)
126      USE ISO_C_BINDING
127      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_name
128      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
129    END FUNCTION cxios_is_defined_file_name
130   
131   
132    SUBROUTINE cxios_set_file_name_suffix(file_hdl, name_suffix, name_suffix_size) BIND(C)
133      USE ISO_C_BINDING
134      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
135      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
136      INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
137    END SUBROUTINE cxios_set_file_name_suffix
138   
139    SUBROUTINE cxios_get_file_name_suffix(file_hdl, name_suffix, name_suffix_size) BIND(C)
140      USE ISO_C_BINDING
141      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
142      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
143      INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
144    END SUBROUTINE cxios_get_file_name_suffix
145   
146    FUNCTION cxios_is_defined_file_name_suffix(file_hdl ) BIND(C)
147      USE ISO_C_BINDING
148      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_name_suffix
149      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
150    END FUNCTION cxios_is_defined_file_name_suffix
151   
152   
153    SUBROUTINE cxios_set_file_output_freq(file_hdl, output_freq) BIND(C)
154      USE ISO_C_BINDING
155      USE IDURATION
156      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
157      TYPE(txios(duration)), VALUE :: output_freq
158    END SUBROUTINE cxios_set_file_output_freq
159   
160    SUBROUTINE cxios_get_file_output_freq(file_hdl, output_freq) BIND(C)
161      USE ISO_C_BINDING
162      USE IDURATION
163      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
164      TYPE(txios(duration)) :: output_freq
165    END SUBROUTINE cxios_get_file_output_freq
166   
167    FUNCTION cxios_is_defined_file_output_freq(file_hdl ) BIND(C)
168      USE ISO_C_BINDING
169      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_output_freq
170      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
171    END FUNCTION cxios_is_defined_file_output_freq
172   
173   
174    SUBROUTINE cxios_set_file_output_level(file_hdl, output_level) BIND(C)
175      USE ISO_C_BINDING
176      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
177      INTEGER (KIND=C_INT)      , VALUE :: output_level
178    END SUBROUTINE cxios_set_file_output_level
179   
180    SUBROUTINE cxios_get_file_output_level(file_hdl, output_level) BIND(C)
181      USE ISO_C_BINDING
182      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
183      INTEGER (KIND=C_INT)             :: output_level
184    END SUBROUTINE cxios_get_file_output_level
185   
186    FUNCTION cxios_is_defined_file_output_level(file_hdl ) BIND(C)
187      USE ISO_C_BINDING
188      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_output_level
189      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
190    END FUNCTION cxios_is_defined_file_output_level
191   
192   
193    SUBROUTINE cxios_set_file_par_access(file_hdl, par_access, par_access_size) BIND(C)
194      USE ISO_C_BINDING
195      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
196      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: par_access
197      INTEGER  (kind = C_INT)     , VALUE        :: par_access_size
198    END SUBROUTINE cxios_set_file_par_access
199   
200    SUBROUTINE cxios_get_file_par_access(file_hdl, par_access, par_access_size) BIND(C)
201      USE ISO_C_BINDING
202      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
203      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: par_access
204      INTEGER  (kind = C_INT)     , VALUE        :: par_access_size
205    END SUBROUTINE cxios_get_file_par_access
206   
207    FUNCTION cxios_is_defined_file_par_access(file_hdl ) BIND(C)
208      USE ISO_C_BINDING
209      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_par_access
210      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
211    END FUNCTION cxios_is_defined_file_par_access
212   
213   
214    SUBROUTINE cxios_set_file_split_freq(file_hdl, split_freq) BIND(C)
215      USE ISO_C_BINDING
216      USE IDURATION
217      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
218      TYPE(txios(duration)), VALUE :: split_freq
219    END SUBROUTINE cxios_set_file_split_freq
220   
221    SUBROUTINE cxios_get_file_split_freq(file_hdl, split_freq) BIND(C)
222      USE ISO_C_BINDING
223      USE IDURATION
224      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
225      TYPE(txios(duration)) :: split_freq
226    END SUBROUTINE cxios_get_file_split_freq
227   
228    FUNCTION cxios_is_defined_file_split_freq(file_hdl ) BIND(C)
229      USE ISO_C_BINDING
230      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_split_freq
231      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
232    END FUNCTION cxios_is_defined_file_split_freq
233   
234   
235    SUBROUTINE cxios_set_file_split_freq_format(file_hdl, split_freq_format, split_freq_format_size) BIND(C)
236      USE ISO_C_BINDING
237      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
238      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_freq_format
239      INTEGER  (kind = C_INT)     , VALUE        :: split_freq_format_size
240    END SUBROUTINE cxios_set_file_split_freq_format
241   
242    SUBROUTINE cxios_get_file_split_freq_format(file_hdl, split_freq_format, split_freq_format_size) BIND(C)
243      USE ISO_C_BINDING
244      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
245      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_freq_format
246      INTEGER  (kind = C_INT)     , VALUE        :: split_freq_format_size
247    END SUBROUTINE cxios_get_file_split_freq_format
248   
249    FUNCTION cxios_is_defined_file_split_freq_format(file_hdl ) BIND(C)
250      USE ISO_C_BINDING
251      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_split_freq_format
252      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
253    END FUNCTION cxios_is_defined_file_split_freq_format
254   
255   
256    SUBROUTINE cxios_set_file_sync_freq(file_hdl, sync_freq) BIND(C)
257      USE ISO_C_BINDING
258      USE IDURATION
259      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
260      TYPE(txios(duration)), VALUE :: sync_freq
261    END SUBROUTINE cxios_set_file_sync_freq
262   
263    SUBROUTINE cxios_get_file_sync_freq(file_hdl, sync_freq) BIND(C)
264      USE ISO_C_BINDING
265      USE IDURATION
266      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
267      TYPE(txios(duration)) :: sync_freq
268    END SUBROUTINE cxios_get_file_sync_freq
269   
270    FUNCTION cxios_is_defined_file_sync_freq(file_hdl ) BIND(C)
271      USE ISO_C_BINDING
272      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_sync_freq
273      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
274    END FUNCTION cxios_is_defined_file_sync_freq
275   
276   
277    SUBROUTINE cxios_set_file_type(file_hdl, type, type_size) BIND(C)
278      USE ISO_C_BINDING
279      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
280      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
281      INTEGER  (kind = C_INT)     , VALUE        :: type_size
282    END SUBROUTINE cxios_set_file_type
283   
284    SUBROUTINE cxios_get_file_type(file_hdl, type, type_size) BIND(C)
285      USE ISO_C_BINDING
286      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
287      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
288      INTEGER  (kind = C_INT)     , VALUE        :: type_size
289    END SUBROUTINE cxios_get_file_type
290   
291    FUNCTION cxios_is_defined_file_type(file_hdl ) BIND(C)
292      USE ISO_C_BINDING
293      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_type
294      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
295    END FUNCTION cxios_is_defined_file_type
296   
297   
298    END INTERFACE
299 
300END MODULE file_interface_attr
Note: See TracBrowser for help on using the repository browser.