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

    r415 r432  
    229229  END SUBROUTINE xios(get_axis_attr_hdl_) 
    230230   
     231  SUBROUTINE xios(is_defined_axis_attr)  & 
     232    ( axis_id, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
     233    , zoom_size ) 
     234     
     235    IMPLICIT NONE 
     236      TYPE(txios(axis))  :: axis_hdl 
     237      CHARACTER(LEN=*), INTENT(IN) ::axis_id 
     238      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
     239      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     240      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
     241      LOGICAL(KIND=C_BOOL) :: name_tmp 
     242      LOGICAL, OPTIONAL, INTENT(OUT) :: positive 
     243      LOGICAL(KIND=C_BOOL) :: positive_tmp 
     244      LOGICAL, OPTIONAL, INTENT(OUT) :: size 
     245      LOGICAL(KIND=C_BOOL) :: size_tmp 
     246      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 
     247      LOGICAL(KIND=C_BOOL) :: standard_name_tmp 
     248      LOGICAL, OPTIONAL, INTENT(OUT) :: unit 
     249      LOGICAL(KIND=C_BOOL) :: unit_tmp 
     250      LOGICAL, OPTIONAL, INTENT(OUT) :: value 
     251      LOGICAL(KIND=C_BOOL) :: value_tmp 
     252      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_begin 
     253      LOGICAL(KIND=C_BOOL) :: zoom_begin_tmp 
     254      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_end 
     255      LOGICAL(KIND=C_BOOL) :: zoom_end_tmp 
     256      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_size 
     257      LOGICAL(KIND=C_BOOL) :: zoom_size_tmp 
     258       
     259      CALL xios(get_axis_handle)(axis_id,axis_hdl) 
     260      CALL xios(is_defined_axis_attr_hdl_)   & 
     261      ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
     262      , zoom_size ) 
     263     
     264  END SUBROUTINE xios(is_defined_axis_attr) 
     265   
     266  SUBROUTINE xios(is_defined_axis_attr_hdl)  & 
     267    ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
     268    , zoom_size ) 
     269     
     270    IMPLICIT NONE 
     271      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     272      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
     273      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     274      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
     275      LOGICAL(KIND=C_BOOL) :: name_tmp 
     276      LOGICAL, OPTIONAL, INTENT(OUT) :: positive 
     277      LOGICAL(KIND=C_BOOL) :: positive_tmp 
     278      LOGICAL, OPTIONAL, INTENT(OUT) :: size 
     279      LOGICAL(KIND=C_BOOL) :: size_tmp 
     280      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 
     281      LOGICAL(KIND=C_BOOL) :: standard_name_tmp 
     282      LOGICAL, OPTIONAL, INTENT(OUT) :: unit 
     283      LOGICAL(KIND=C_BOOL) :: unit_tmp 
     284      LOGICAL, OPTIONAL, INTENT(OUT) :: value 
     285      LOGICAL(KIND=C_BOOL) :: value_tmp 
     286      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_begin 
     287      LOGICAL(KIND=C_BOOL) :: zoom_begin_tmp 
     288      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_end 
     289      LOGICAL(KIND=C_BOOL) :: zoom_end_tmp 
     290      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_size 
     291      LOGICAL(KIND=C_BOOL) :: zoom_size_tmp 
     292       
     293      CALL xios(is_defined_axis_attr_hdl_)  & 
     294      ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
     295      , zoom_size ) 
     296     
     297  END SUBROUTINE xios(is_defined_axis_attr_hdl) 
     298   
     299  SUBROUTINE xios(is_defined_axis_attr_hdl_)   & 
     300    ( axis_hdl, long_name_, name_, positive_, size_, standard_name_, unit_, value_, zoom_begin_  & 
     301    , zoom_end_, zoom_size_ ) 
     302     
     303    IMPLICIT NONE 
     304      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     305      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
     306      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
     307      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
     308      LOGICAL(KIND=C_BOOL) :: name__tmp 
     309      LOGICAL, OPTIONAL, INTENT(OUT) :: positive_ 
     310      LOGICAL(KIND=C_BOOL) :: positive__tmp 
     311      LOGICAL, OPTIONAL, INTENT(OUT) :: size_ 
     312      LOGICAL(KIND=C_BOOL) :: size__tmp 
     313      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_ 
     314      LOGICAL(KIND=C_BOOL) :: standard_name__tmp 
     315      LOGICAL, OPTIONAL, INTENT(OUT) :: unit_ 
     316      LOGICAL(KIND=C_BOOL) :: unit__tmp 
     317      LOGICAL, OPTIONAL, INTENT(OUT) :: value_ 
     318      LOGICAL(KIND=C_BOOL) :: value__tmp 
     319      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_begin_ 
     320      LOGICAL(KIND=C_BOOL) :: zoom_begin__tmp 
     321      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_end_ 
     322      LOGICAL(KIND=C_BOOL) :: zoom_end__tmp 
     323      LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_size_ 
     324      LOGICAL(KIND=C_BOOL) :: zoom_size__tmp 
     325       
     326      IF (PRESENT(long_name_)) THEN 
     327        long_name__tmp=cxios_is_defined_axis_long_name(axis_hdl%daddr) 
     328        long_name_=long_name__tmp 
     329      ENDIF 
     330       
     331      IF (PRESENT(name_)) THEN 
     332        name__tmp=cxios_is_defined_axis_name(axis_hdl%daddr) 
     333        name_=name__tmp 
     334      ENDIF 
     335       
     336      IF (PRESENT(positive_)) THEN 
     337        positive__tmp=cxios_is_defined_axis_positive(axis_hdl%daddr) 
     338        positive_=positive__tmp 
     339      ENDIF 
     340       
     341      IF (PRESENT(size_)) THEN 
     342        size__tmp=cxios_is_defined_axis_size(axis_hdl%daddr) 
     343        size_=size__tmp 
     344      ENDIF 
     345       
     346      IF (PRESENT(standard_name_)) THEN 
     347        standard_name__tmp=cxios_is_defined_axis_standard_name(axis_hdl%daddr) 
     348        standard_name_=standard_name__tmp 
     349      ENDIF 
     350       
     351      IF (PRESENT(unit_)) THEN 
     352        unit__tmp=cxios_is_defined_axis_unit(axis_hdl%daddr) 
     353        unit_=unit__tmp 
     354      ENDIF 
     355       
     356      IF (PRESENT(value_)) THEN 
     357        value__tmp=cxios_is_defined_axis_value(axis_hdl%daddr) 
     358        value_=value__tmp 
     359      ENDIF 
     360       
     361      IF (PRESENT(zoom_begin_)) THEN 
     362        zoom_begin__tmp=cxios_is_defined_axis_zoom_begin(axis_hdl%daddr) 
     363        zoom_begin_=zoom_begin__tmp 
     364      ENDIF 
     365       
     366      IF (PRESENT(zoom_end_)) THEN 
     367        zoom_end__tmp=cxios_is_defined_axis_zoom_end(axis_hdl%daddr) 
     368        zoom_end_=zoom_end__tmp 
     369      ENDIF 
     370       
     371      IF (PRESENT(zoom_size_)) THEN 
     372        zoom_size__tmp=cxios_is_defined_axis_zoom_size(axis_hdl%daddr) 
     373        zoom_size_=zoom_size__tmp 
     374      ENDIF 
     375       
     376       
     377     
     378  END SUBROUTINE xios(is_defined_axis_attr_hdl_) 
     379   
    231380END MODULE iaxis_attr 
Note: See TracChangeset for help on using the changeset viewer.