Ignore:
Timestamp:
06/03/13 11:21:19 (11 years ago)
Author:
ymipsl
Message:

Enhancement : Add fortran interface to know if an attribute is set or not
ex : CALL xios_is_defined_field_attr("field_A",enabled=ok)

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90

    r415 r432  
    159159  END SUBROUTINE xios(get_grid_attr_hdl_) 
    160160   
     161  SUBROUTINE xios(is_defined_grid_attr)  & 
     162    ( grid_id, axis_ref, description, domain_ref, mask, name ) 
     163     
     164    IMPLICIT NONE 
     165      TYPE(txios(grid))  :: grid_hdl 
     166      CHARACTER(LEN=*), INTENT(IN) ::grid_id 
     167      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 
     168      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 
     169      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
     170      LOGICAL(KIND=C_BOOL) :: description_tmp 
     171      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
     172      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     173      LOGICAL, OPTIONAL, INTENT(OUT) :: mask 
     174      LOGICAL(KIND=C_BOOL) :: mask_tmp 
     175      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
     176      LOGICAL(KIND=C_BOOL) :: name_tmp 
     177       
     178      CALL xios(get_grid_handle)(grid_id,grid_hdl) 
     179      CALL xios(is_defined_grid_attr_hdl_)   & 
     180      ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 
     181     
     182  END SUBROUTINE xios(is_defined_grid_attr) 
     183   
     184  SUBROUTINE xios(is_defined_grid_attr_hdl)  & 
     185    ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 
     186     
     187    IMPLICIT NONE 
     188      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     189      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 
     190      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 
     191      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
     192      LOGICAL(KIND=C_BOOL) :: description_tmp 
     193      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
     194      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     195      LOGICAL, OPTIONAL, INTENT(OUT) :: mask 
     196      LOGICAL(KIND=C_BOOL) :: mask_tmp 
     197      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
     198      LOGICAL(KIND=C_BOOL) :: name_tmp 
     199       
     200      CALL xios(is_defined_grid_attr_hdl_)  & 
     201      ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 
     202     
     203  END SUBROUTINE xios(is_defined_grid_attr_hdl) 
     204   
     205  SUBROUTINE xios(is_defined_grid_attr_hdl_)   & 
     206    ( grid_hdl, axis_ref_, description_, domain_ref_, mask_, name_ ) 
     207     
     208    IMPLICIT NONE 
     209      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     210      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_ 
     211      LOGICAL(KIND=C_BOOL) :: axis_ref__tmp 
     212      LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 
     213      LOGICAL(KIND=C_BOOL) :: description__tmp 
     214      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 
     215      LOGICAL(KIND=C_BOOL) :: domain_ref__tmp 
     216      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_ 
     217      LOGICAL(KIND=C_BOOL) :: mask__tmp 
     218      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
     219      LOGICAL(KIND=C_BOOL) :: name__tmp 
     220       
     221      IF (PRESENT(axis_ref_)) THEN 
     222        axis_ref__tmp=cxios_is_defined_grid_axis_ref(grid_hdl%daddr) 
     223        axis_ref_=axis_ref__tmp 
     224      ENDIF 
     225       
     226      IF (PRESENT(description_)) THEN 
     227        description__tmp=cxios_is_defined_grid_description(grid_hdl%daddr) 
     228        description_=description__tmp 
     229      ENDIF 
     230       
     231      IF (PRESENT(domain_ref_)) THEN 
     232        domain_ref__tmp=cxios_is_defined_grid_domain_ref(grid_hdl%daddr) 
     233        domain_ref_=domain_ref__tmp 
     234      ENDIF 
     235       
     236      IF (PRESENT(mask_)) THEN 
     237        mask__tmp=cxios_is_defined_grid_mask(grid_hdl%daddr) 
     238        mask_=mask__tmp 
     239      ENDIF 
     240       
     241      IF (PRESENT(name_)) THEN 
     242        name__tmp=cxios_is_defined_grid_name(grid_hdl%daddr) 
     243        name_=name__tmp 
     244      ENDIF 
     245       
     246       
     247     
     248  END SUBROUTINE xios(is_defined_grid_attr_hdl_) 
     249   
    161250END MODULE igrid_attr 
Note: See TracChangeset for help on using the changeset viewer.