source: XIOS/trunk/src/fortran/field_interface.f90 @ 310

Last change on this file since 310 was 310, checked in by ymipsl, 12 years ago

Add xios_field_is_active functionnality

YM

File size: 5.6 KB
Line 
1MODULE FIELD_INTERFACE
2   USE, INTRINSIC :: ISO_C_BINDING
3   
4   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
5   
6      SUBROUTINE cxios_set_field_name(field_hdl, name ,name_size) BIND(C)
7         USE ISO_C_BINDING
8         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
9         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
10         INTEGER  (kind = C_INT)     , VALUE        :: name_size
11      END SUBROUTINE cxios_set_field_name
12
13      SUBROUTINE cxios_set_field_standard_name(field_hdl, standard_name ,standard_name_size) BIND(C)
14         USE ISO_C_BINDING
15         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
16         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
17         INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
18      END SUBROUTINE cxios_set_field_standard_name
19
20      SUBROUTINE cxios_set_field_long_name(field_hdl, long_name ,long_name_size) BIND(C)
21         USE ISO_C_BINDING
22         INTEGER (kind = C_INTPTR_T), VALUE        :: field_hdl
23         CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: long_name
24         INTEGER (kind = C_INT)     , VALUE        :: long_name_size
25      END SUBROUTINE cxios_set_field_long_name
26
27      SUBROUTINE cxios_set_field_unit(field_hdl, unit ,unit_size) BIND(C)
28         USE ISO_C_BINDING
29         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
30         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
31         INTEGER  (kind = C_INT)     , VALUE        :: unit_size
32      END SUBROUTINE cxios_set_field_unit
33
34      SUBROUTINE cxios_set_field_operation(field_hdl, operation ,operation_size) BIND(C)
35         USE ISO_C_BINDING
36         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
37         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: operation
38         INTEGER  (kind = C_INT)     , VALUE        :: operation_size
39      END SUBROUTINE cxios_set_field_operation
40
41      SUBROUTINE cxios_set_field_freq_op(field_hdl, freq_op ,freq_op_size) BIND(C)
42         USE ISO_C_BINDING
43         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
44         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_op
45         INTEGER  (kind = C_INT)     , VALUE        :: freq_op_size
46      END SUBROUTINE cxios_set_field_freq_op
47
48      SUBROUTINE cxios_set_field_level(field_hdl, level) BIND(C)
49         USE ISO_C_BINDING
50         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
51         INTEGER (kind = C_INT)     , VALUE :: level
52      END SUBROUTINE cxios_set_field_level
53
54      SUBROUTINE cxios_set_field_prec(field_hdl, prec) BIND(C)
55         USE ISO_C_BINDING
56         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
57         INTEGER (kind = C_INT)     , VALUE :: prec
58      END SUBROUTINE cxios_set_field_prec
59
60      SUBROUTINE cxios_set_field_enabled(field_hdl, enabled) BIND(C)
61         USE ISO_C_BINDING
62         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
63         LOGICAL (kind = C_BOOL)    , VALUE :: enabled
64         END SUBROUTINE cxios_set_field_enabled
65
66      SUBROUTINE cxios_set_field_domain_ref(field_hdl, domain_ref ,domain_ref_size) BIND(C)
67         USE ISO_C_BINDING
68         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
69         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
70         INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
71      END SUBROUTINE cxios_set_field_domain_ref
72
73      SUBROUTINE cxios_set_field_axis_ref(field_hdl, axis_ref ,axis_ref_size) BIND(C)
74         USE ISO_C_BINDING
75         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
76         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
77         INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
78      END SUBROUTINE cxios_set_field_axis_ref
79
80      SUBROUTINE cxios_set_field_grid_ref(field_hdl, grid_ref ,grid_ref_size) BIND(C)
81         USE ISO_C_BINDING
82         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
83         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: grid_ref
84         INTEGER  (kind = C_INT)     , VALUE        :: grid_ref_size
85      END SUBROUTINE cxios_set_field_grid_ref
86
87      SUBROUTINE cxios_set_field_field_ref(field_hdl, field_ref ,field_ref_size) BIND(C)
88         USE ISO_C_BINDING
89         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
90         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: field_ref
91         INTEGER  (kind = C_INT)     , VALUE        :: field_ref_size
92      END SUBROUTINE cxios_set_field_field_ref
93
94      SUBROUTINE cxios_set_field_default_value(field_hdl, default_value) BIND(C)
95         USE ISO_C_BINDING
96         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
97         REAL    (kind = C_DOUBLE)  , VALUE :: default_value
98      END SUBROUTINE cxios_set_field_default_value
99   
100      SUBROUTINE cxios_field_handle_create(ret, idt, idt_size) BIND(C)
101         USE ISO_C_BINDING
102         INTEGER  (kind = C_INTPTR_T)               :: ret
103         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
104         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
105      END SUBROUTINE cxios_field_handle_create
106
107      SUBROUTINE cxios_field_valid_id(ret, idt, idt_size) BIND(C)
108         USE ISO_C_BINDING
109         LOGICAL  (kind = C_BOOL)                   :: ret
110         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
111         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
112      END SUBROUTINE cxios_field_valid_id
113
114      SUBROUTINE cxios_field_is_active(field_hdl, ret) BIND(C)
115         USE ISO_C_BINDING
116         INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
117         LOGICAL  (kind = C_BOOL)                   :: ret
118      END SUBROUTINE cxios_field_is_active
119
120   END INTERFACE
121   
122END MODULE FIELD_INTERFACE
Note: See TracBrowser for help on using the repository browser.