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

    r415 r432  
    1313  SUBROUTINE xios(set_filegroup_attr)  & 
    1414    ( filegroup_id, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    15     , output_level, par_access, split_freq, sync_freq, type ) 
     15    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    1616     
    1717    IMPLICIT NONE 
     
    2929      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
    3030      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq 
     31      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format 
    3132      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq 
    3233      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
     
    3536      CALL xios(set_filegroup_attr_hdl_)   & 
    3637      ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    37       , output_level, par_access, split_freq, sync_freq, type ) 
     38      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    3839     
    3940  END SUBROUTINE xios(set_filegroup_attr) 
     
    4142  SUBROUTINE xios(set_filegroup_attr_hdl)  & 
    4243    ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    43     , output_level, par_access, split_freq, sync_freq, type ) 
     44    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    4445     
    4546    IMPLICIT NONE 
     
    5657      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
    5758      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq 
     59      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format 
    5860      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq 
    5961      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
     
    6163      CALL xios(set_filegroup_attr_hdl_)  & 
    6264      ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    63       , output_level, par_access, split_freq, sync_freq, type ) 
     65      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    6466     
    6567  END SUBROUTINE xios(set_filegroup_attr_hdl) 
     
    6769  SUBROUTINE xios(set_filegroup_attr_hdl_)   & 
    6870    ( filegroup_hdl, description_, enabled_, group_ref_, min_digits_, name_, name_suffix_, output_freq_  & 
    69     , output_level_, par_access_, split_freq_, sync_freq_, type_ ) 
     71    , output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_ ) 
    7072     
    7173    IMPLICIT NONE 
     
    8284      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access_ 
    8385      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_ 
     86      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format_ 
    8487      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq_ 
    8588      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 
     
    126129      ENDIF 
    127130       
     131      IF (PRESENT(split_freq_format_)) THEN 
     132        CALL cxios_set_filegroup_split_freq_format(filegroup_hdl%daddr, split_freq_format_, len(split_freq_format_)) 
     133      ENDIF 
     134       
    128135      IF (PRESENT(sync_freq_)) THEN 
    129136        CALL cxios_set_filegroup_sync_freq(filegroup_hdl%daddr, sync_freq_, len(sync_freq_)) 
     
    140147  SUBROUTINE xios(get_filegroup_attr)  & 
    141148    ( filegroup_id, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    142     , output_level, par_access, split_freq, sync_freq, type ) 
     149    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    143150     
    144151    IMPLICIT NONE 
     
    156163      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
    157164      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq 
     165      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format 
    158166      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq 
    159167      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
     
    162170      CALL xios(get_filegroup_attr_hdl_)   & 
    163171      ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    164       , output_level, par_access, split_freq, sync_freq, type ) 
     172      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    165173     
    166174  END SUBROUTINE xios(get_filegroup_attr) 
     
    168176  SUBROUTINE xios(get_filegroup_attr_hdl)  & 
    169177    ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    170     , output_level, par_access, split_freq, sync_freq, type ) 
     178    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    171179     
    172180    IMPLICIT NONE 
     
    183191      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
    184192      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq 
     193      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format 
    185194      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq 
    186195      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
     
    188197      CALL xios(get_filegroup_attr_hdl_)  & 
    189198      ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
    190       , output_level, par_access, split_freq, sync_freq, type ) 
     199      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    191200     
    192201  END SUBROUTINE xios(get_filegroup_attr_hdl) 
     
    194203  SUBROUTINE xios(get_filegroup_attr_hdl_)   & 
    195204    ( filegroup_hdl, description_, enabled_, group_ref_, min_digits_, name_, name_suffix_, output_freq_  & 
    196     , output_level_, par_access_, split_freq_, sync_freq_, type_ ) 
     205    , output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_ ) 
    197206     
    198207    IMPLICIT NONE 
     
    209218      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access_ 
    210219      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_ 
     220      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format_ 
    211221      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq_ 
    212222      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 
     
    253263      ENDIF 
    254264       
     265      IF (PRESENT(split_freq_format_)) THEN 
     266        CALL cxios_get_filegroup_split_freq_format(filegroup_hdl%daddr, split_freq_format_, len(split_freq_format_)) 
     267      ENDIF 
     268       
    255269      IF (PRESENT(sync_freq_)) THEN 
    256270        CALL cxios_get_filegroup_sync_freq(filegroup_hdl%daddr, sync_freq_, len(sync_freq_)) 
     
    265279  END SUBROUTINE xios(get_filegroup_attr_hdl_) 
    266280   
     281  SUBROUTINE xios(is_defined_filegroup_attr)  & 
     282    ( filegroup_id, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
     283    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
     284     
     285    IMPLICIT NONE 
     286      TYPE(txios(filegroup))  :: filegroup_hdl 
     287      CHARACTER(LEN=*), INTENT(IN) ::filegroup_id 
     288      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
     289      LOGICAL(KIND=C_BOOL) :: description_tmp 
     290      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled 
     291      LOGICAL(KIND=C_BOOL) :: enabled_tmp 
     292      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
     293      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     294      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits 
     295      LOGICAL(KIND=C_BOOL) :: min_digits_tmp 
     296      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
     297      LOGICAL(KIND=C_BOOL) :: name_tmp 
     298      LOGICAL, OPTIONAL, INTENT(OUT) :: name_suffix 
     299      LOGICAL(KIND=C_BOOL) :: name_suffix_tmp 
     300      LOGICAL, OPTIONAL, INTENT(OUT) :: output_freq 
     301      LOGICAL(KIND=C_BOOL) :: output_freq_tmp 
     302      LOGICAL, OPTIONAL, INTENT(OUT) :: output_level 
     303      LOGICAL(KIND=C_BOOL) :: output_level_tmp 
     304      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 
     305      LOGICAL(KIND=C_BOOL) :: par_access_tmp 
     306      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 
     307      LOGICAL(KIND=C_BOOL) :: split_freq_tmp 
     308      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 
     309      LOGICAL(KIND=C_BOOL) :: split_freq_format_tmp 
     310      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 
     311      LOGICAL(KIND=C_BOOL) :: sync_freq_tmp 
     312      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
     313      LOGICAL(KIND=C_BOOL) :: type_tmp 
     314       
     315      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
     316      CALL xios(is_defined_filegroup_attr_hdl_)   & 
     317      ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
     318      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
     319     
     320  END SUBROUTINE xios(is_defined_filegroup_attr) 
     321   
     322  SUBROUTINE xios(is_defined_filegroup_attr_hdl)  & 
     323    ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
     324    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
     325     
     326    IMPLICIT NONE 
     327      TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl 
     328      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
     329      LOGICAL(KIND=C_BOOL) :: description_tmp 
     330      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled 
     331      LOGICAL(KIND=C_BOOL) :: enabled_tmp 
     332      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
     333      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     334      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits 
     335      LOGICAL(KIND=C_BOOL) :: min_digits_tmp 
     336      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
     337      LOGICAL(KIND=C_BOOL) :: name_tmp 
     338      LOGICAL, OPTIONAL, INTENT(OUT) :: name_suffix 
     339      LOGICAL(KIND=C_BOOL) :: name_suffix_tmp 
     340      LOGICAL, OPTIONAL, INTENT(OUT) :: output_freq 
     341      LOGICAL(KIND=C_BOOL) :: output_freq_tmp 
     342      LOGICAL, OPTIONAL, INTENT(OUT) :: output_level 
     343      LOGICAL(KIND=C_BOOL) :: output_level_tmp 
     344      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 
     345      LOGICAL(KIND=C_BOOL) :: par_access_tmp 
     346      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 
     347      LOGICAL(KIND=C_BOOL) :: split_freq_tmp 
     348      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 
     349      LOGICAL(KIND=C_BOOL) :: split_freq_format_tmp 
     350      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 
     351      LOGICAL(KIND=C_BOOL) :: sync_freq_tmp 
     352      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
     353      LOGICAL(KIND=C_BOOL) :: type_tmp 
     354       
     355      CALL xios(is_defined_filegroup_attr_hdl_)  & 
     356      ( filegroup_hdl, description, enabled, group_ref, min_digits, name, name_suffix, output_freq  & 
     357      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
     358     
     359  END SUBROUTINE xios(is_defined_filegroup_attr_hdl) 
     360   
     361  SUBROUTINE xios(is_defined_filegroup_attr_hdl_)   & 
     362    ( filegroup_hdl, description_, enabled_, group_ref_, min_digits_, name_, name_suffix_, output_freq_  & 
     363    , output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_ ) 
     364     
     365    IMPLICIT NONE 
     366      TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl 
     367      LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 
     368      LOGICAL(KIND=C_BOOL) :: description__tmp 
     369      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled_ 
     370      LOGICAL(KIND=C_BOOL) :: enabled__tmp 
     371      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 
     372      LOGICAL(KIND=C_BOOL) :: group_ref__tmp 
     373      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits_ 
     374      LOGICAL(KIND=C_BOOL) :: min_digits__tmp 
     375      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
     376      LOGICAL(KIND=C_BOOL) :: name__tmp 
     377      LOGICAL, OPTIONAL, INTENT(OUT) :: name_suffix_ 
     378      LOGICAL(KIND=C_BOOL) :: name_suffix__tmp 
     379      LOGICAL, OPTIONAL, INTENT(OUT) :: output_freq_ 
     380      LOGICAL(KIND=C_BOOL) :: output_freq__tmp 
     381      LOGICAL, OPTIONAL, INTENT(OUT) :: output_level_ 
     382      LOGICAL(KIND=C_BOOL) :: output_level__tmp 
     383      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access_ 
     384      LOGICAL(KIND=C_BOOL) :: par_access__tmp 
     385      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_ 
     386      LOGICAL(KIND=C_BOOL) :: split_freq__tmp 
     387      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format_ 
     388      LOGICAL(KIND=C_BOOL) :: split_freq_format__tmp 
     389      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq_ 
     390      LOGICAL(KIND=C_BOOL) :: sync_freq__tmp 
     391      LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 
     392      LOGICAL(KIND=C_BOOL) :: type__tmp 
     393       
     394      IF (PRESENT(description_)) THEN 
     395        description__tmp=cxios_is_defined_filegroup_description(filegroup_hdl%daddr) 
     396        description_=description__tmp 
     397      ENDIF 
     398       
     399      IF (PRESENT(enabled_)) THEN 
     400        enabled__tmp=cxios_is_defined_filegroup_enabled(filegroup_hdl%daddr) 
     401        enabled_=enabled__tmp 
     402      ENDIF 
     403       
     404      IF (PRESENT(group_ref_)) THEN 
     405        group_ref__tmp=cxios_is_defined_filegroup_group_ref(filegroup_hdl%daddr) 
     406        group_ref_=group_ref__tmp 
     407      ENDIF 
     408       
     409      IF (PRESENT(min_digits_)) THEN 
     410        min_digits__tmp=cxios_is_defined_filegroup_min_digits(filegroup_hdl%daddr) 
     411        min_digits_=min_digits__tmp 
     412      ENDIF 
     413       
     414      IF (PRESENT(name_)) THEN 
     415        name__tmp=cxios_is_defined_filegroup_name(filegroup_hdl%daddr) 
     416        name_=name__tmp 
     417      ENDIF 
     418       
     419      IF (PRESENT(name_suffix_)) THEN 
     420        name_suffix__tmp=cxios_is_defined_filegroup_name_suffix(filegroup_hdl%daddr) 
     421        name_suffix_=name_suffix__tmp 
     422      ENDIF 
     423       
     424      IF (PRESENT(output_freq_)) THEN 
     425        output_freq__tmp=cxios_is_defined_filegroup_output_freq(filegroup_hdl%daddr) 
     426        output_freq_=output_freq__tmp 
     427      ENDIF 
     428       
     429      IF (PRESENT(output_level_)) THEN 
     430        output_level__tmp=cxios_is_defined_filegroup_output_level(filegroup_hdl%daddr) 
     431        output_level_=output_level__tmp 
     432      ENDIF 
     433       
     434      IF (PRESENT(par_access_)) THEN 
     435        par_access__tmp=cxios_is_defined_filegroup_par_access(filegroup_hdl%daddr) 
     436        par_access_=par_access__tmp 
     437      ENDIF 
     438       
     439      IF (PRESENT(split_freq_)) THEN 
     440        split_freq__tmp=cxios_is_defined_filegroup_split_freq(filegroup_hdl%daddr) 
     441        split_freq_=split_freq__tmp 
     442      ENDIF 
     443       
     444      IF (PRESENT(split_freq_format_)) THEN 
     445        split_freq_format__tmp=cxios_is_defined_filegroup_split_freq_format(filegroup_hdl%daddr) 
     446        split_freq_format_=split_freq_format__tmp 
     447      ENDIF 
     448       
     449      IF (PRESENT(sync_freq_)) THEN 
     450        sync_freq__tmp=cxios_is_defined_filegroup_sync_freq(filegroup_hdl%daddr) 
     451        sync_freq_=sync_freq__tmp 
     452      ENDIF 
     453       
     454      IF (PRESENT(type_)) THEN 
     455        type__tmp=cxios_is_defined_filegroup_type(filegroup_hdl%daddr) 
     456        type_=type__tmp 
     457      ENDIF 
     458       
     459       
     460     
     461  END SUBROUTINE xios(is_defined_filegroup_attr_hdl_) 
     462   
    267463END MODULE ifilegroup_attr 
Note: See TracChangeset for help on using the changeset viewer.