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/igrid.F90

    r312 r313  
    55   USE GRID_INTERFACE 
    66   USE GRIDGROUP_INTERFACE 
    7  
     7!   USE IGRID_ATTR 
     8!   USE IGRIDGROUP_ATTR 
     9    
    810   TYPE txios(grid) 
    911      INTEGER(kind = C_INTPTR_T) :: daddr 
     
    1618    
    1719   CONTAINS ! Fonctions disponibles pour les utilisateurs. 
    18  
    19  
    20  
    21    SUBROUTINE xios(set_grid_attr)(grid_id, name, description, domain_ref, axis_ref) 
    22       IMPLICIT NONE 
    23       TYPE(txios(grid))                             :: grid_hdl 
    24       CHARACTER(len = *)               , INTENT(IN) :: grid_id 
    25       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    26       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: description 
    27       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    28       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    29        
    30       CALL xios(get_grid_handle)(grid_id,grid_hdl) 
    31       CALL xios(set_grid_attr_hdl_)(grid_hdl, name, description, domain_ref, axis_ref) 
    32  
    33    END SUBROUTINE xios(set_grid_attr) 
    34     
    35    SUBROUTINE xios(set_grid_attr_hdl)(grid_hdl, name, description, domain_ref, axis_ref) 
    36       IMPLICIT NONE 
    37       TYPE      (txios(grid))                      :: grid_hdl 
    38       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    39       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: description 
    40       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    41       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    42        
    43       CALL xios(set_grid_attr_hdl_)(grid_hdl, name, description, domain_ref, axis_ref) 
    44  
    45    END SUBROUTINE xios(set_grid_attr_hdl)    
    46  
    47  
    48    SUBROUTINE xios(set_grid_attr_hdl_)(grid_hdl, name_, description_, domain_ref_, axis_ref_) 
    49       IMPLICIT NONE 
    50       TYPE      (txios(grid))                      :: grid_hdl 
    51       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name_ 
    52       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: description_ 
    53       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref_ 
    54       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref_ 
    55        
    56       IF (PRESENT(name_))        THEN 
    57        CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_)) 
    58       END IF 
    59       IF (PRESENT(description_)) THEN 
    60        CALL cxios_set_grid_description(grid_hdl%daddr, description_, len(description_)) 
    61       END IF 
    62       IF (PRESENT(domain_ref_))  THEN 
    63        CALL cxios_set_grid_domain_ref(grid_hdl%daddr, domain_ref_, len(domain_ref_)) 
    64       END IF 
    65       IF (PRESENT(axis_ref_))    THEN 
    66        CALL cxios_set_grid_axis_ref(grid_hdl%daddr, axis_ref_, len(axis_ref_)) 
    67       END IF 
    68    END SUBROUTINE xios(set_grid_attr_hdl_) 
    69  
    70  
    71     
    72    SUBROUTINE xios(set_gridgroup_attr)(gridgroup_id, name, description, domain_ref, axis_ref) 
    73       IMPLICIT NONE 
    74       TYPE(txios(gridgroup))                       :: gridgroup_hdl 
    75       CHARACTER(len = *)               , INTENT(IN) :: gridgroup_id 
    76       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    77       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: description 
    78       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    79       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    80        
    81       CALL xios(get_gridgroup_handle)(gridgroup_id, gridgroup_hdl) 
    82       CALL xios(set_gridgroup_attr_hdl_)(gridgroup_hdl, name, description, domain_ref, axis_ref) 
    83  
    84    END SUBROUTINE xios(set_gridgroup_attr) 
    85     
    86    SUBROUTINE xios(set_gridgroup_attr_hdl)(gridgroup_hdl, name, description, domain_ref, axis_ref) 
    87       IMPLICIT NONE 
    88       TYPE      (txios(gridgroup))                 :: gridgroup_hdl 
    89       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name 
    90       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: description 
    91       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref 
    92       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref 
    93  
    94       CALL xios(set_gridgroup_attr_hdl_)(gridgroup_hdl, name, description, domain_ref, axis_ref) 
    95  
    96    END SUBROUTINE xios(set_gridgroup_attr_hdl) 
    97     
    98    SUBROUTINE xios(set_gridgroup_attr_hdl_)(gridgroup_hdl, name_, description_, domain_ref_, axis_ref_) 
    99       IMPLICIT NONE 
    100       TYPE      (txios(gridgroup))                 :: gridgroup_hdl 
    101       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: name_ 
    102       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: description_ 
    103       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: domain_ref_ 
    104       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref_ 
    105        
    106       IF (PRESENT(name_))        THEN 
    107        CALL cxios_set_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_)) 
    108       END IF 
    109       IF (PRESENT(description_)) THEN 
    110        CALL cxios_set_gridgroup_description(gridgroup_hdl%daddr, description_, len(description_)) 
    111       END IF 
    112       IF (PRESENT(domain_ref_))  THEN 
    113        CALL cxios_set_gridgroup_domain_ref(gridgroup_hdl%daddr, domain_ref_, len(domain_ref_)) 
    114       END IF 
    115       IF (PRESENT(axis_ref_))    THEN 
    116        CALL cxios_set_gridgroup_axis_ref(gridgroup_hdl%daddr, axis_ref_, len(axis_ref_)) 
    117       END IF 
    118    END SUBROUTINE xios(set_gridgroup_attr_hdl_) 
    119     
    120     
    12120 
    12221   SUBROUTINE xios(get_grid_handle)(idt,ret) 
Note: See TracChangeset for help on using the changeset viewer.