Ignore:
Timestamp:
10/16/12 13:04:44 (12 years ago)
Author:
ymipsl
Message:

Major Update

  • redesign Type and attribute manipulation
  • add enumerate type and attribute
  • use blitz class array instead of boost class array

YM

File:
1 edited

Legend:

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

    r326 r369  
    1212   
    1313  SUBROUTINE xios(set_file_attr)  & 
    14     ( file_id, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    15     , type ) 
     14    ( file_id, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     15    , sync_freq, type ) 
    1616     
    1717    IMPLICIT NONE 
     
    2525      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq 
    2626      INTEGER  , OPTIONAL, INTENT(IN) :: output_level 
     27      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
    2728      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq 
    2829      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq 
     
    3132      CALL xios(get_file_handle)(file_id,file_hdl) 
    3233      CALL xios(set_file_attr_hdl_)   & 
    33       ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    34       , type ) 
     34      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     35      , sync_freq, type ) 
    3536     
    3637  END SUBROUTINE xios(set_file_attr) 
    3738   
    3839  SUBROUTINE xios(set_file_attr_hdl)  & 
    39     ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    40     , type ) 
     40    ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     41    , sync_freq, type ) 
    4142     
    4243    IMPLICIT NONE 
     
    4950      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq 
    5051      INTEGER  , OPTIONAL, INTENT(IN) :: output_level 
     52      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
    5153      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq 
    5254      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq 
     
    5456       
    5557      CALL xios(set_file_attr_hdl_)  & 
    56       ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    57       , type ) 
     58      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     59      , sync_freq, type ) 
    5860     
    5961  END SUBROUTINE xios(set_file_attr_hdl) 
    6062   
    6163  SUBROUTINE xios(set_file_attr_hdl_)   & 
    62     ( file_hdl, description_, enabled_, name_, name_suffix_, output_freq_, output_level_, split_freq_  & 
    63     , sync_freq_, type_ ) 
     64    ( file_hdl, description_, enabled_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     65    , split_freq_, sync_freq_, type_ ) 
    6466     
    6567    IMPLICIT NONE 
     
    7274      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq_ 
    7375      INTEGER  , OPTIONAL, INTENT(IN) :: output_level_ 
     76      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access_ 
    7477      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_ 
    7578      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq_ 
     
    101104      ENDIF 
    102105       
     106      IF (PRESENT(par_access_)) THEN 
     107        CALL cxios_set_file_par_access(file_hdl%daddr, par_access_, len(par_access_)) 
     108      ENDIF 
     109       
    103110      IF (PRESENT(split_freq_)) THEN 
    104111        CALL cxios_set_file_split_freq(file_hdl%daddr, split_freq_, len(split_freq_)) 
     
    118125   
    119126  SUBROUTINE xios(get_file_attr)  & 
    120     ( file_id, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    121     , type ) 
     127    ( file_id, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     128    , sync_freq, type ) 
    122129     
    123130    IMPLICIT NONE 
     
    131138      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq 
    132139      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level 
     140      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
    133141      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq 
    134142      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq 
     
    137145      CALL xios(get_file_handle)(file_id,file_hdl) 
    138146      CALL xios(get_file_attr_hdl_)   & 
    139       ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    140       , type ) 
     147      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     148      , sync_freq, type ) 
    141149     
    142150  END SUBROUTINE xios(get_file_attr) 
    143151   
    144152  SUBROUTINE xios(get_file_attr_hdl)  & 
    145     ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    146     , type ) 
     153    ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     154    , sync_freq, type ) 
    147155     
    148156    IMPLICIT NONE 
     
    155163      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq 
    156164      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level 
     165      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
    157166      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq 
    158167      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq 
     
    160169       
    161170      CALL xios(get_file_attr_hdl_)  & 
    162       ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  & 
    163       , type ) 
     171      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, par_access, split_freq  & 
     172      , sync_freq, type ) 
    164173     
    165174  END SUBROUTINE xios(get_file_attr_hdl) 
    166175   
    167176  SUBROUTINE xios(get_file_attr_hdl_)   & 
    168     ( file_hdl, description_, enabled_, name_, name_suffix_, output_freq_, output_level_, split_freq_  & 
    169     , sync_freq_, type_ ) 
     177    ( file_hdl, description_, enabled_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     178    , split_freq_, sync_freq_, type_ ) 
    170179     
    171180    IMPLICIT NONE 
     
    178187      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq_ 
    179188      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level_ 
     189      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access_ 
    180190      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_ 
    181191      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq_ 
     
    207217      ENDIF 
    208218       
     219      IF (PRESENT(par_access_)) THEN 
     220        CALL cxios_get_file_par_access(file_hdl%daddr, par_access_, len(par_access_)) 
     221      ENDIF 
     222       
    209223      IF (PRESENT(split_freq_)) THEN 
    210224        CALL cxios_get_file_split_freq(file_hdl%daddr, split_freq_, len(split_freq_)) 
Note: See TracChangeset for help on using the changeset viewer.