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
RevLine 
[274]1MODULE FIELD_INTERFACE
2   USE, INTRINSIC :: ISO_C_BINDING
3   
4   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
5   
[286]6      SUBROUTINE cxios_set_field_name(field_hdl, name ,name_size) BIND(C)
[274]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
[286]11      END SUBROUTINE cxios_set_field_name
[274]12
[286]13      SUBROUTINE cxios_set_field_standard_name(field_hdl, standard_name ,standard_name_size) BIND(C)
[274]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
[286]18      END SUBROUTINE cxios_set_field_standard_name
[274]19
[286]20      SUBROUTINE cxios_set_field_long_name(field_hdl, long_name ,long_name_size) BIND(C)
[274]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
[286]25      END SUBROUTINE cxios_set_field_long_name
[274]26
[286]27      SUBROUTINE cxios_set_field_unit(field_hdl, unit ,unit_size) BIND(C)
[274]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
[286]32      END SUBROUTINE cxios_set_field_unit
[274]33
[286]34      SUBROUTINE cxios_set_field_operation(field_hdl, operation ,operation_size) BIND(C)
[274]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
[286]39      END SUBROUTINE cxios_set_field_operation
[274]40
[286]41      SUBROUTINE cxios_set_field_freq_op(field_hdl, freq_op ,freq_op_size) BIND(C)
[274]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
[286]46      END SUBROUTINE cxios_set_field_freq_op
[274]47
[286]48      SUBROUTINE cxios_set_field_level(field_hdl, level) BIND(C)
[274]49         USE ISO_C_BINDING
50         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
51         INTEGER (kind = C_INT)     , VALUE :: level
[286]52      END SUBROUTINE cxios_set_field_level
[274]53
[286]54      SUBROUTINE cxios_set_field_prec(field_hdl, prec) BIND(C)
[274]55         USE ISO_C_BINDING
56         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
57         INTEGER (kind = C_INT)     , VALUE :: prec
[286]58      END SUBROUTINE cxios_set_field_prec
[274]59
[286]60      SUBROUTINE cxios_set_field_enabled(field_hdl, enabled) BIND(C)
[274]61         USE ISO_C_BINDING
62         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
63         LOGICAL (kind = C_BOOL)    , VALUE :: enabled
[286]64         END SUBROUTINE cxios_set_field_enabled
[274]65
[286]66      SUBROUTINE cxios_set_field_domain_ref(field_hdl, domain_ref ,domain_ref_size) BIND(C)
[274]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
[286]71      END SUBROUTINE cxios_set_field_domain_ref
[274]72
[286]73      SUBROUTINE cxios_set_field_axis_ref(field_hdl, axis_ref ,axis_ref_size) BIND(C)
[274]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
[286]78      END SUBROUTINE cxios_set_field_axis_ref
[274]79
[286]80      SUBROUTINE cxios_set_field_grid_ref(field_hdl, grid_ref ,grid_ref_size) BIND(C)
[274]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
[286]85      END SUBROUTINE cxios_set_field_grid_ref
[274]86
[286]87      SUBROUTINE cxios_set_field_field_ref(field_hdl, field_ref ,field_ref_size) BIND(C)
[274]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
[286]92      END SUBROUTINE cxios_set_field_field_ref
[274]93
[286]94      SUBROUTINE cxios_set_field_default_value(field_hdl, default_value) BIND(C)
[274]95         USE ISO_C_BINDING
96         INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
97         REAL    (kind = C_DOUBLE)  , VALUE :: default_value
[286]98      END SUBROUTINE cxios_set_field_default_value
[274]99   
[286]100      SUBROUTINE cxios_field_handle_create(ret, idt, idt_size) BIND(C)
[274]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
[286]105      END SUBROUTINE cxios_field_handle_create
[280]106
[286]107      SUBROUTINE cxios_field_valid_id(ret, idt, idt_size) BIND(C)
[280]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
[286]112      END SUBROUTINE cxios_field_valid_id
[280]113
[310]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
[274]120   END INTERFACE
121   
122END MODULE FIELD_INTERFACE
Note: See TracBrowser for help on using the repository browser.