Ignore:
Timestamp:
02/18/12 22:43:24 (12 years ago)
Author:
ymipsl
Message:

Fortran attribut interface are now automaticaly generated.
Add get attribut fonctionnality from fortran.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/fortran/ifield.F90

    r312 r313  
    55   USE FIELD_INTERFACE 
    66   USE FIELDGROUP_INTERFACE 
     7!   USE IFIELD_ATTR 
     8!   USE IFIELDGROUP_ATTR 
    79    
    810   TYPE txios(field) 
     
    1517    
    1618   CONTAINS ! Fonctions disponibles pour les utilisateurs. 
    17  
    18  
    19    SUBROUTINE xios(set_fieldgroup_attr)                                             & 
    20    (fieldgroup_id, name, standard_name, long_name, unit, operation, freq_op, level, & 
    21     prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value) 
    22      
    23       IMPLICIT NONE 
    24       TYPE(txios(fieldgroup))                      :: fieldgroup_hdl 
    25       CHARACTER(len = *)               , INTENT(IN) :: fieldgroup_id 
    26       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    27       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: standard_name 
    28       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: long_name 
    29       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: unit 
    30       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: operation 
    31       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: freq_op 
    32       INTEGER                , OPTIONAL, INTENT(IN) :: level 
    33       INTEGER                , OPTIONAL, INTENT(IN) :: prec 
    34       LOGICAL                , OPTIONAL, INTENT(IN) :: enabled 
    35       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    36       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    37       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref 
    38       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref 
    39       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value 
    40          
    41       CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 
    42       CALL xios(set_fieldgroup_attr_hdl_)                                                  & 
    43          (fieldgroup_hdl, name, standard_name, long_name, unit, operation, freq_op, level, & 
    44           prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value) 
    45  
    46    END SUBROUTINE xios(set_fieldgroup_attr) 
    47  
    48    SUBROUTINE xios(set_fieldgroup_attr_hdl)                                           & 
    49    (fieldgroup_hdl, name, standard_name, long_name, unit, operation, freq_op, level , & 
    50     prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value) 
    51       IMPLICIT NONE 
    52       TYPE(txios(fieldgroup))         , INTENT(IN) :: fieldgroup_hdl 
    53       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    54       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: standard_name 
    55       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: long_name 
    56       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: unit 
    57       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: operation 
    58       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: freq_op 
    59       INTEGER                , OPTIONAL, INTENT(IN) :: level 
    60       INTEGER                , OPTIONAL, INTENT(IN) :: prec 
    61       LOGICAL                , OPTIONAL, INTENT(IN) :: enabled 
    62       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    63       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    64       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref 
    65       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref 
    66       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value 
    67        
    68       CALL  xios(set_fieldgroup_attr_hdl_)                                            & 
    69    (fieldgroup_hdl, name, standard_name, long_name, unit, operation, freq_op, level , & 
    70     prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)  
    71         
    72    END SUBROUTINE xios(set_fieldgroup_attr_hdl) 
    73  
    74  
    75    SUBROUTINE xios(set_fieldgroup_attr_hdl_)                                                & 
    76    (fieldgroup_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, & 
    77     prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_) 
    78       IMPLICIT NONE 
    79       TYPE(txios(fieldgroup))         , INTENT(IN) :: fieldgroup_hdl 
    80       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name_ 
    81       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: standard_name_ 
    82       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: long_name_ 
    83       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: unit_ 
    84       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: operation_ 
    85       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: freq_op_ 
    86       INTEGER                , OPTIONAL, INTENT(IN) :: level_ 
    87       INTEGER                , OPTIONAL, INTENT(IN) :: prec_ 
    88       LOGICAL(kind = 1)                             :: enabled__ 
    89       LOGICAL                , OPTIONAL, INTENT(IN) :: enabled_ 
    90       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref_ 
    91       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref_ 
    92       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref_ 
    93       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref_ 
    94       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value_ 
    95        
    96       IF (PRESENT(name_))           THEN 
    97          CALL cxios_set_fieldgroup_name(fieldgroup_hdl%daddr, name_, len(name_)) 
    98       END IF 
    99       IF (PRESENT(standard_name_))  THEN 
    100          CALL cxios_set_fieldgroup_standard_name(fieldgroup_hdl%daddr, standard_name_, len(standard_name_)) 
    101       END IF 
    102       IF (PRESENT(long_name_))      THEN 
    103          CALL cxios_set_fieldgroup_long_name(fieldgroup_hdl%daddr, long_name_, len(long_name_)) 
    104       END IF 
    105       IF (PRESENT(unit_))           THEN 
    106          CALL cxios_set_fieldgroup_unit(fieldgroup_hdl%daddr, unit_, len(unit_)) 
    107       END IF 
    108       IF (PRESENT(operation_))      THEN 
    109          CALL cxios_set_fieldgroup_operation(fieldgroup_hdl%daddr, operation_, len(operation_)) 
    110       END IF 
    111       IF (PRESENT(freq_op_))        THEN 
    112          CALL cxios_set_fieldgroup_freq_op(fieldgroup_hdl%daddr, freq_op_, len(freq_op_)) 
    113       END IF 
    114       IF (PRESENT(level_))          THEN 
    115          CALL cxios_set_fieldgroup_level(fieldgroup_hdl%daddr, level_) 
    116       END IF 
    117       IF (PRESENT(prec_))           THEN 
    118          CALL cxios_set_fieldgroup_prec(fieldgroup_hdl%daddr, prec_) 
    119       END IF 
    120       IF (PRESENT(enabled_))        THEN 
    121          enabled__ = enabled_   
    122          CALL cxios_set_fieldgroup_enabled(fieldgroup_hdl%daddr, enabled__) 
    123       END IF 
    124       IF (PRESENT(domain_ref_))     THEN 
    125          CALL cxios_set_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_)) 
    126       END IF 
    127       IF (PRESENT(axis_ref_))       THEN 
    128          CALL cxios_set_fieldgroup_axis_ref(fieldgroup_hdl%daddr, axis_ref_, len(axis_ref_)) 
    129       END IF 
    130       IF (PRESENT(grid_ref_))       THEN 
    131          CALL cxios_set_fieldgroup_grid_ref(fieldgroup_hdl%daddr, grid_ref_, len(grid_ref_)) 
    132       END IF 
    133       IF (PRESENT(field_ref_))      THEN 
    134          CALL cxios_set_fieldgroup_field_ref(fieldgroup_hdl%daddr, field_ref_, len(field_ref_)) 
    135       END IF 
    136       IF (PRESENT(default_value_))  THEN 
    137          CALL cxios_set_fieldgroup_default_value(fieldgroup_hdl%daddr, default_value_) 
    138       END IF 
    139  
    140    END SUBROUTINE xios(set_fieldgroup_attr_hdl_) 
    141  
    142     
    143    SUBROUTINE xios(set_field_attr)                                             & 
    144    (field_id, name, standard_name, long_name, unit, operation, freq_op, level, & 
    145     prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value) 
    146      
    147       IMPLICIT NONE 
    148       TYPE(txios(field))                            :: field_hdl 
    149       CHARACTER(len = *)               , INTENT(IN) :: field_id 
    150       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    151       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: standard_name 
    152       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: long_name 
    153       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: unit 
    154       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: operation 
    155       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: freq_op 
    156       INTEGER                , OPTIONAL, INTENT(IN) :: level 
    157       INTEGER                , OPTIONAL, INTENT(IN) :: prec 
    158       LOGICAL                , OPTIONAL, INTENT(IN) :: enabled 
    159       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    160       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    161       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref 
    162       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref 
    163       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value 
    164        
    165       CALL xios(get_field_handle)(field_id,field_hdl) 
    166       CALL xios(set_field_attr_hdl_)                                                          & 
    167          (field_hdl, name, standard_name, long_name, unit, operation, freq_op, level,  & 
    168           prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value) 
    169    END SUBROUTINE xios(set_field_attr) 
    170  
    171  
    172    SUBROUTINE xios(set_field_attr_hdl)                                          & 
    173    (field_hdl, name, standard_name, long_name, unit, operation, freq_op, level, & 
    174     prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value) 
    175       IMPLICIT NONE 
    176       TYPE(txios(field))               , INTENT(IN):: field_hdl 
    177       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    178       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: standard_name 
    179       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: long_name 
    180       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: unit 
    181       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: operation 
    182       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: freq_op 
    183       INTEGER                , OPTIONAL, INTENT(IN) :: level 
    184       INTEGER                , OPTIONAL, INTENT(IN) :: prec 
    185       LOGICAL                , OPTIONAL, INTENT(IN) :: enabled 
    186       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    187       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    188       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref 
    189       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref 
    190       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value 
    191  
    192       CALL xios(set_field_attr_hdl_)                                            & 
    193    (field_hdl, name, standard_name, long_name, unit, operation, freq_op, level, & 
    194     prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)   
    195          
    196    END SUBROUTINE xios(set_field_attr_hdl) 
    197  
    198    SUBROUTINE xios(set_field_attr_hdl_)                                                & 
    199    (field_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, & 
    200     prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_) 
    201       IMPLICIT NONE 
    202       TYPE(txios(field))               , INTENT(IN):: field_hdl 
    203       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name_ 
    204       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: standard_name_ 
    205       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: long_name_ 
    206       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: unit_ 
    207       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: operation_ 
    208       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: freq_op_ 
    209       INTEGER                , OPTIONAL, INTENT(IN) :: level_ 
    210       INTEGER                , OPTIONAL, INTENT(IN) :: prec_ 
    211       LOGICAL(kind = 1)                             :: enabled__ 
    212       LOGICAL                , OPTIONAL, INTENT(IN) :: enabled_ 
    213       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref_ 
    214       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref_ 
    215       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref_ 
    216       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref_ 
    217       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value_ 
    218        
    219       IF (PRESENT(name_))           THEN 
    220          CALL cxios_set_field_name(field_hdl%daddr, name_, len(name_)) 
    221       END IF 
    222       IF (PRESENT(standard_name_))  THEN 
    223          CALL cxios_set_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_)) 
    224       END IF 
    225       IF (PRESENT(long_name_))      THEN 
    226          CALL cxios_set_field_long_name(field_hdl%daddr, long_name_, len(long_name_)) 
    227       END IF 
    228       IF (PRESENT(unit_))           THEN 
    229          CALL cxios_set_field_unit(field_hdl%daddr, unit_, len(unit_)) 
    230       END IF 
    231       IF (PRESENT(operation_))      THEN 
    232          CALL cxios_set_field_operation(field_hdl%daddr, operation_, len(operation_)) 
    233       END IF 
    234       IF (PRESENT(freq_op_))        THEN 
    235          CALL cxios_set_field_freq_op(field_hdl%daddr, freq_op_, len(freq_op_)) 
    236       END IF 
    237       IF (PRESENT(level_))          THEN 
    238          CALL cxios_set_field_level(field_hdl%daddr, level_) 
    239       END IF 
    240       IF (PRESENT(prec_))           THEN 
    241          CALL cxios_set_field_prec(field_hdl%daddr, prec_) 
    242       END IF 
    243       IF (PRESENT(enabled_))        THEN 
    244          enabled__ = enabled_   
    245          CALL cxios_set_field_enabled(field_hdl%daddr, enabled__) 
    246       END IF 
    247       IF (PRESENT(domain_ref_))     THEN 
    248          CALL cxios_set_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_)) 
    249       END IF 
    250       IF (PRESENT(axis_ref_))       THEN 
    251          CALL cxios_set_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_)) 
    252       END IF 
    253       IF (PRESENT(grid_ref_))       THEN 
    254          CALL cxios_set_field_grid_ref(field_hdl%daddr, grid_ref_, len(grid_ref_)) 
    255       END IF 
    256       IF (PRESENT(field_ref_))      THEN 
    257          CALL cxios_set_field_field_ref(field_hdl%daddr, field_ref_, len(field_ref_)) 
    258       END IF 
    259       IF (PRESENT(default_value_))  THEN 
    260          CALL cxios_set_field_default_value(field_hdl%daddr, default_value_) 
    261       END IF 
    262  
    263    END SUBROUTINE xios(set_field_attr_hdl_) 
    264     
    26519 
    26620   SUBROUTINE xios(get_field_handle)(idt, ret) 
Note: See TracChangeset for help on using the changeset viewer.