Changeset 1005


Ignore:
Timestamp:
11/25/16 14:12:20 (7 years ago)
Author:
mhnguyen
Message:

Updating Fortran interfaces

Location:
XIOS/trunk/src/interface
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c_attr/icfield_attr.cpp

    r991 r1005  
    237237 
    238238 
     239  void cxios_set_field_expr(field_Ptr field_hdl, const char * expr, int expr_size) 
     240  { 
     241    std::string expr_str; 
     242    if (!cstr2string(expr, expr_size, expr_str)) return; 
     243    CTimer::get("XIOS").resume(); 
     244    field_hdl->expr.setValue(expr_str); 
     245    CTimer::get("XIOS").suspend(); 
     246  } 
     247 
     248  void cxios_get_field_expr(field_Ptr field_hdl, char * expr, int expr_size) 
     249  { 
     250    CTimer::get("XIOS").resume(); 
     251    if (!string_copy(field_hdl->expr.getInheritedValue(), expr, expr_size)) 
     252      ERROR("void cxios_get_field_expr(field_Ptr field_hdl, char * expr, int expr_size)", << "Input string is too short"); 
     253    CTimer::get("XIOS").suspend(); 
     254  } 
     255 
     256  bool cxios_is_defined_field_expr(field_Ptr field_hdl) 
     257  { 
     258     CTimer::get("XIOS").resume(); 
     259     bool isDefined = field_hdl->expr.hasInheritedValue(); 
     260     CTimer::get("XIOS").suspend(); 
     261     return isDefined; 
     262  } 
     263 
     264 
    239265  void cxios_set_field_field_ref(field_Ptr field_hdl, const char * field_ref, int field_ref_size) 
    240266  { 
  • XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp

    r991 r1005  
    237237 
    238238 
     239  void cxios_set_fieldgroup_expr(fieldgroup_Ptr fieldgroup_hdl, const char * expr, int expr_size) 
     240  { 
     241    std::string expr_str; 
     242    if (!cstr2string(expr, expr_size, expr_str)) return; 
     243    CTimer::get("XIOS").resume(); 
     244    fieldgroup_hdl->expr.setValue(expr_str); 
     245    CTimer::get("XIOS").suspend(); 
     246  } 
     247 
     248  void cxios_get_fieldgroup_expr(fieldgroup_Ptr fieldgroup_hdl, char * expr, int expr_size) 
     249  { 
     250    CTimer::get("XIOS").resume(); 
     251    if (!string_copy(fieldgroup_hdl->expr.getInheritedValue(), expr, expr_size)) 
     252      ERROR("void cxios_get_fieldgroup_expr(fieldgroup_Ptr fieldgroup_hdl, char * expr, int expr_size)", << "Input string is too short"); 
     253    CTimer::get("XIOS").suspend(); 
     254  } 
     255 
     256  bool cxios_is_defined_fieldgroup_expr(fieldgroup_Ptr fieldgroup_hdl) 
     257  { 
     258     CTimer::get("XIOS").resume(); 
     259     bool isDefined = fieldgroup_hdl->expr.hasInheritedValue(); 
     260     CTimer::get("XIOS").suspend(); 
     261     return isDefined; 
     262  } 
     263 
     264 
    239265  void cxios_set_fieldgroup_field_ref(fieldgroup_Ptr fieldgroup_hdl, const char * field_ref, int field_ref_size) 
    240266  { 
  • XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp

    r991 r1005  
    114114     return isDefined; 
    115115  } 
     116 
     117 
     118  void cxios_set_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl, const char * weight_filename, int weight_filename_size) 
     119  { 
     120    std::string weight_filename_str; 
     121    if (!cstr2string(weight_filename, weight_filename_size, weight_filename_str)) return; 
     122    CTimer::get("XIOS").resume(); 
     123    interpolate_domain_hdl->weight_filename.setValue(weight_filename_str); 
     124    CTimer::get("XIOS").suspend(); 
     125  } 
     126 
     127  void cxios_get_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl, char * weight_filename, int weight_filename_size) 
     128  { 
     129    CTimer::get("XIOS").resume(); 
     130    if (!string_copy(interpolate_domain_hdl->weight_filename.getInheritedValue(), weight_filename, weight_filename_size)) 
     131      ERROR("void cxios_get_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl, char * weight_filename, int weight_filename_size)", << "Input string is too short"); 
     132    CTimer::get("XIOS").suspend(); 
     133  } 
     134 
     135  bool cxios_is_defined_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl) 
     136  { 
     137     CTimer::get("XIOS").resume(); 
     138     bool isDefined = interpolate_domain_hdl->weight_filename.hasInheritedValue(); 
     139     CTimer::get("XIOS").suspend(); 
     140     return isDefined; 
     141  } 
     142 
     143 
     144  void cxios_set_interpolate_domain_write_weight(interpolate_domain_Ptr interpolate_domain_hdl, bool write_weight) 
     145  { 
     146    CTimer::get("XIOS").resume(); 
     147    interpolate_domain_hdl->write_weight.setValue(write_weight); 
     148    CTimer::get("XIOS").suspend(); 
     149  } 
     150 
     151  void cxios_get_interpolate_domain_write_weight(interpolate_domain_Ptr interpolate_domain_hdl, bool* write_weight) 
     152  { 
     153    CTimer::get("XIOS").resume(); 
     154    *write_weight = interpolate_domain_hdl->write_weight.getInheritedValue(); 
     155    CTimer::get("XIOS").suspend(); 
     156  } 
     157 
     158  bool cxios_is_defined_interpolate_domain_write_weight(interpolate_domain_Ptr interpolate_domain_hdl) 
     159  { 
     160     CTimer::get("XIOS").resume(); 
     161     bool isDefined = interpolate_domain_hdl->write_weight.hasInheritedValue(); 
     162     CTimer::get("XIOS").suspend(); 
     163     return isDefined; 
     164  } 
    116165} 
  • XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90

    r991 r1005  
    189189 
    190190 
     191    SUBROUTINE cxios_set_field_expr(field_hdl, expr, expr_size) BIND(C) 
     192      USE ISO_C_BINDING 
     193      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     194      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr 
     195      INTEGER  (kind = C_INT)     , VALUE        :: expr_size 
     196    END SUBROUTINE cxios_set_field_expr 
     197 
     198    SUBROUTINE cxios_get_field_expr(field_hdl, expr, expr_size) BIND(C) 
     199      USE ISO_C_BINDING 
     200      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     201      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr 
     202      INTEGER  (kind = C_INT)     , VALUE        :: expr_size 
     203    END SUBROUTINE cxios_get_field_expr 
     204 
     205    FUNCTION cxios_is_defined_field_expr(field_hdl) BIND(C) 
     206      USE ISO_C_BINDING 
     207      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_expr 
     208      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     209    END FUNCTION cxios_is_defined_field_expr 
     210 
     211 
    191212    SUBROUTINE cxios_set_field_field_ref(field_hdl, field_ref, field_ref_size) BIND(C) 
    192213      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90

    r991 r1005  
    189189 
    190190 
     191    SUBROUTINE cxios_set_fieldgroup_expr(fieldgroup_hdl, expr, expr_size) BIND(C) 
     192      USE ISO_C_BINDING 
     193      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     194      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr 
     195      INTEGER  (kind = C_INT)     , VALUE        :: expr_size 
     196    END SUBROUTINE cxios_set_fieldgroup_expr 
     197 
     198    SUBROUTINE cxios_get_fieldgroup_expr(fieldgroup_hdl, expr, expr_size) BIND(C) 
     199      USE ISO_C_BINDING 
     200      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     201      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr 
     202      INTEGER  (kind = C_INT)     , VALUE        :: expr_size 
     203    END SUBROUTINE cxios_get_fieldgroup_expr 
     204 
     205    FUNCTION cxios_is_defined_fieldgroup_expr(fieldgroup_hdl) BIND(C) 
     206      USE ISO_C_BINDING 
     207      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_expr 
     208      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     209    END FUNCTION cxios_is_defined_fieldgroup_expr 
     210 
     211 
    191212    SUBROUTINE cxios_set_fieldgroup_field_ref(fieldgroup_hdl, field_ref, field_ref_size) BIND(C) 
    192213      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90

    r991 r1005  
    1313  SUBROUTINE xios(set_field_attr)  & 
    1414    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    15     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    16     , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    17     , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     15    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     16    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     17    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    1818 
    1919    IMPLICIT NONE 
     
    3131      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
    3232      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     33      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr 
    3334      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref 
    3435      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset 
     
    5960      CALL xios(set_field_attr_hdl_)   & 
    6061      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    61       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    62       , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    63       , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     62      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     63      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     64      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    6465 
    6566  END SUBROUTINE xios(set_field_attr) 
     
    6768  SUBROUTINE xios(set_field_attr_hdl)  & 
    6869    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    69     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    70     , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    71     , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     70    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     71    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     72    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    7273 
    7374    IMPLICIT NONE 
     
    8485      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
    8586      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     87      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr 
    8688      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref 
    8789      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset 
     
    110112      CALL xios(set_field_attr_hdl_)  & 
    111113      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    112       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    113       , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    114       , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     114      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     115      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     116      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    115117 
    116118  END SUBROUTINE xios(set_field_attr_hdl) 
     
    118120  SUBROUTINE xios(set_field_attr_hdl_)   & 
    119121    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_, default_value_  & 
    120     , detect_missing_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_  & 
     122    , detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_  & 
    121123    , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_  & 
    122124    , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_  & 
     
    136138      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_ 
    137139      LOGICAL (KIND=C_BOOL) :: enabled__tmp 
     140      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr_ 
    138141      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_ 
    139142      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset_ 
     
    207210      ENDIF 
    208211 
     212      IF (PRESENT(expr_)) THEN 
     213        CALL cxios_set_field_expr & 
     214      (field_hdl%daddr, expr_, len(expr_)) 
     215      ENDIF 
     216 
    209217      IF (PRESENT(field_ref_)) THEN 
    210218        CALL cxios_set_field_field_ref & 
     
    314322  SUBROUTINE xios(get_field_attr)  & 
    315323    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    316     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    317     , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    318     , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     324    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     325    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     326    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    319327 
    320328    IMPLICIT NONE 
     
    332340      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
    333341      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     342      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr 
    334343      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref 
    335344      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset 
     
    360369      CALL xios(get_field_attr_hdl_)   & 
    361370      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    362       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    363       , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    364       , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     371      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     372      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     373      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    365374 
    366375  END SUBROUTINE xios(get_field_attr) 
     
    368377  SUBROUTINE xios(get_field_attr_hdl)  & 
    369378    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    370     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    371     , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    372     , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     379    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     380    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     381    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    373382 
    374383    IMPLICIT NONE 
     
    385394      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
    386395      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     396      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr 
    387397      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref 
    388398      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset 
     
    411421      CALL xios(get_field_attr_hdl_)  & 
    412422      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    413       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    414       , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    415       , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     423      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     424      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     425      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    416426 
    417427  END SUBROUTINE xios(get_field_attr_hdl) 
     
    419429  SUBROUTINE xios(get_field_attr_hdl_)   & 
    420430    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_, default_value_  & 
    421     , detect_missing_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_  & 
     431    , detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_  & 
    422432    , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_  & 
    423433    , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_  & 
     
    437447      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_ 
    438448      LOGICAL (KIND=C_BOOL) :: enabled__tmp 
     449      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr_ 
    439450      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref_ 
    440451      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset_ 
     
    508519      ENDIF 
    509520 
     521      IF (PRESENT(expr_)) THEN 
     522        CALL cxios_get_field_expr & 
     523      (field_hdl%daddr, expr_, len(expr_)) 
     524      ENDIF 
     525 
    510526      IF (PRESENT(field_ref_)) THEN 
    511527        CALL cxios_get_field_field_ref & 
     
    615631  SUBROUTINE xios(is_defined_field_attr)  & 
    616632    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    617     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    618     , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    619     , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     633    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     634    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     635    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    620636 
    621637    IMPLICIT NONE 
     
    640656      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled 
    641657      LOGICAL(KIND=C_BOOL) :: enabled_tmp 
     658      LOGICAL, OPTIONAL, INTENT(OUT) :: expr 
     659      LOGICAL(KIND=C_BOOL) :: expr_tmp 
    642660      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref 
    643661      LOGICAL(KIND=C_BOOL) :: field_ref_tmp 
     
    685703      CALL xios(is_defined_field_attr_hdl_)   & 
    686704      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    687       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    688       , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    689       , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     705      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     706      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     707      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    690708 
    691709  END SUBROUTINE xios(is_defined_field_attr) 
     
    693711  SUBROUTINE xios(is_defined_field_attr_hdl)  & 
    694712    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    695     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    696     , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    697     , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     713    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     714    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     715    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    698716 
    699717    IMPLICIT NONE 
     
    717735      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled 
    718736      LOGICAL(KIND=C_BOOL) :: enabled_tmp 
     737      LOGICAL, OPTIONAL, INTENT(OUT) :: expr 
     738      LOGICAL(KIND=C_BOOL) :: expr_tmp 
    719739      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref 
    720740      LOGICAL(KIND=C_BOOL) :: field_ref_tmp 
     
    760780      CALL xios(is_defined_field_attr_hdl_)  & 
    761781      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    762       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    763       , indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor  & 
    764       , standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     782      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     783      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
     784      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
    765785 
    766786  END SUBROUTINE xios(is_defined_field_attr_hdl) 
     
    768788  SUBROUTINE xios(is_defined_field_attr_hdl_)   & 
    769789    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_, default_value_  & 
    770     , detect_missing_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_  & 
     790    , detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_  & 
    771791    , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_  & 
    772792    , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_  & 
     
    793813      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled_ 
    794814      LOGICAL(KIND=C_BOOL) :: enabled__tmp 
     815      LOGICAL, OPTIONAL, INTENT(OUT) :: expr_ 
     816      LOGICAL(KIND=C_BOOL) :: expr__tmp 
    795817      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref_ 
    796818      LOGICAL(KIND=C_BOOL) :: field_ref__tmp 
     
    888910      ENDIF 
    889911 
     912      IF (PRESENT(expr_)) THEN 
     913        expr__tmp = cxios_is_defined_field_expr & 
     914      (field_hdl%daddr) 
     915        expr_ = expr__tmp 
     916      ENDIF 
     917 
    890918      IF (PRESENT(field_ref_)) THEN 
    891919        field_ref__tmp = cxios_is_defined_field_field_ref & 
  • XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90

    r991 r1005  
    1313  SUBROUTINE xios(set_fieldgroup_attr)  & 
    1414    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    15     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    16     , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    17     , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     15    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     16    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     17    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     18     ) 
    1819 
    1920    IMPLICIT NONE 
     
    3132      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
    3233      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     34      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr 
    3335      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref 
    3436      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset 
     
    6062      CALL xios(set_fieldgroup_attr_hdl_)   & 
    6163      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    62       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    63       , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    64       , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     64      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     65      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     66      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     67       ) 
    6568 
    6669  END SUBROUTINE xios(set_fieldgroup_attr) 
     
    6871  SUBROUTINE xios(set_fieldgroup_attr_hdl)  & 
    6972    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    70     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    71     , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    72     , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     73    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     74    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     75    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     76     ) 
    7377 
    7478    IMPLICIT NONE 
     
    8589      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
    8690      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     91      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr 
    8792      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref 
    8893      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset 
     
    112117      CALL xios(set_fieldgroup_attr_hdl_)  & 
    113118      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    114       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    115       , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    116       , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     119      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     120      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     121      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     122       ) 
    117123 
    118124  END SUBROUTINE xios(set_fieldgroup_attr_hdl) 
     
    120126  SUBROUTINE xios(set_fieldgroup_attr_hdl_)   & 
    121127    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_  & 
    122     , default_value_, detect_missing_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_  & 
    123     , grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  & 
     128    , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  & 
     129    , freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  & 
    124130    , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  & 
    125131    , unit_, valid_max_, valid_min_ ) 
     
    138144      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_ 
    139145      LOGICAL (KIND=C_BOOL) :: enabled__tmp 
     146      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr_ 
    140147      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_ 
    141148      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset_ 
     
    210217      ENDIF 
    211218 
     219      IF (PRESENT(expr_)) THEN 
     220        CALL cxios_set_fieldgroup_expr & 
     221      (fieldgroup_hdl%daddr, expr_, len(expr_)) 
     222      ENDIF 
     223 
    212224      IF (PRESENT(field_ref_)) THEN 
    213225        CALL cxios_set_fieldgroup_field_ref & 
     
    322334  SUBROUTINE xios(get_fieldgroup_attr)  & 
    323335    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    324     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    325     , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    326     , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     336    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     337    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     338    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     339     ) 
    327340 
    328341    IMPLICIT NONE 
     
    340353      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
    341354      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     355      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr 
    342356      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref 
    343357      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset 
     
    369383      CALL xios(get_fieldgroup_attr_hdl_)   & 
    370384      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    371       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    372       , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    373       , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     385      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     386      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     387      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     388       ) 
    374389 
    375390  END SUBROUTINE xios(get_fieldgroup_attr) 
     
    377392  SUBROUTINE xios(get_fieldgroup_attr_hdl)  & 
    378393    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    379     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    380     , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    381     , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     394    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     395    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     396    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     397     ) 
    382398 
    383399    IMPLICIT NONE 
     
    394410      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
    395411      LOGICAL (KIND=C_BOOL) :: enabled_tmp 
     412      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr 
    396413      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref 
    397414      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset 
     
    421438      CALL xios(get_fieldgroup_attr_hdl_)  & 
    422439      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    423       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    424       , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    425       , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     440      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     441      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     442      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     443       ) 
    426444 
    427445  END SUBROUTINE xios(get_fieldgroup_attr_hdl) 
     
    429447  SUBROUTINE xios(get_fieldgroup_attr_hdl_)   & 
    430448    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_  & 
    431     , default_value_, detect_missing_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_  & 
    432     , grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  & 
     449    , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  & 
     450    , freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  & 
    433451    , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  & 
    434452    , unit_, valid_max_, valid_min_ ) 
     
    447465      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_ 
    448466      LOGICAL (KIND=C_BOOL) :: enabled__tmp 
     467      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr_ 
    449468      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref_ 
    450469      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset_ 
     
    519538      ENDIF 
    520539 
     540      IF (PRESENT(expr_)) THEN 
     541        CALL cxios_get_fieldgroup_expr & 
     542      (fieldgroup_hdl%daddr, expr_, len(expr_)) 
     543      ENDIF 
     544 
    521545      IF (PRESENT(field_ref_)) THEN 
    522546        CALL cxios_get_fieldgroup_field_ref & 
     
    631655  SUBROUTINE xios(is_defined_fieldgroup_attr)  & 
    632656    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    633     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    634     , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    635     , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     657    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     658    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     659    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     660     ) 
    636661 
    637662    IMPLICIT NONE 
     
    656681      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled 
    657682      LOGICAL(KIND=C_BOOL) :: enabled_tmp 
     683      LOGICAL, OPTIONAL, INTENT(OUT) :: expr 
     684      LOGICAL(KIND=C_BOOL) :: expr_tmp 
    658685      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref 
    659686      LOGICAL(KIND=C_BOOL) :: field_ref_tmp 
     
    703730      CALL xios(is_defined_fieldgroup_attr_hdl_)   & 
    704731      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    705       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    706       , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    707       , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     732      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     733      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     734      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     735       ) 
    708736 
    709737  END SUBROUTINE xios(is_defined_fieldgroup_attr) 
     
    711739  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)  & 
    712740    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    713     , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    714     , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    715     , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     741    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     742    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     743    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     744     ) 
    716745 
    717746    IMPLICIT NONE 
     
    735764      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled 
    736765      LOGICAL(KIND=C_BOOL) :: enabled_tmp 
     766      LOGICAL, OPTIONAL, INTENT(OUT) :: expr 
     767      LOGICAL(KIND=C_BOOL) :: expr_tmp 
    737768      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref 
    738769      LOGICAL(KIND=C_BOOL) :: field_ref_tmp 
     
    780811      CALL xios(is_defined_fieldgroup_attr_hdl_)  & 
    781812      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  & 
    782       , detect_missing_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref  & 
    783       , group_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  & 
    784       , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 
     813      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  & 
     814      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
     815      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
     816       ) 
    785817 
    786818  END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) 
     
    788820  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_)   & 
    789821    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_  & 
    790     , default_value_, detect_missing_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_  & 
    791     , grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  & 
     822    , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  & 
     823    , freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  & 
    792824    , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  & 
    793825    , unit_, valid_max_, valid_min_ ) 
     
    813845      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled_ 
    814846      LOGICAL(KIND=C_BOOL) :: enabled__tmp 
     847      LOGICAL, OPTIONAL, INTENT(OUT) :: expr_ 
     848      LOGICAL(KIND=C_BOOL) :: expr__tmp 
    815849      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref_ 
    816850      LOGICAL(KIND=C_BOOL) :: field_ref__tmp 
     
    910944      ENDIF 
    911945 
     946      IF (PRESENT(expr_)) THEN 
     947        expr__tmp = cxios_is_defined_fieldgroup_expr & 
     948      (fieldgroup_hdl%daddr) 
     949        expr_ = expr__tmp 
     950      ENDIF 
     951 
    912952      IF (PRESENT(field_ref_)) THEN 
    913953        field_ref__tmp = cxios_is_defined_fieldgroup_field_ref & 
  • XIOS/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90

    r991 r1005  
    1212 
    1313  SUBROUTINE xios(set_interpolate_domain_attr)  & 
    14     ( interpolate_domain_id, file, mode, order, renormalize ) 
     14    ( interpolate_domain_id, file, mode, order, renormalize, weight_filename, write_weight ) 
    1515 
    1616    IMPLICIT NONE 
     
    2222      LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize 
    2323      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     24      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: weight_filename 
     25      LOGICAL  , OPTIONAL, INTENT(IN) :: write_weight 
     26      LOGICAL (KIND=C_BOOL) :: write_weight_tmp 
    2427 
    2528      CALL xios(get_interpolate_domain_handle) & 
    2629      (interpolate_domain_id,interpolate_domain_hdl) 
    2730      CALL xios(set_interpolate_domain_attr_hdl_)   & 
    28       ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     31      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    2932 
    3033  END SUBROUTINE xios(set_interpolate_domain_attr) 
    3134 
    3235  SUBROUTINE xios(set_interpolate_domain_attr_hdl)  & 
    33     ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     36    ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    3437 
    3538    IMPLICIT NONE 
     
    4043      LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize 
    4144      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     45      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: weight_filename 
     46      LOGICAL  , OPTIONAL, INTENT(IN) :: write_weight 
     47      LOGICAL (KIND=C_BOOL) :: write_weight_tmp 
    4248 
    4349      CALL xios(set_interpolate_domain_attr_hdl_)  & 
    44       ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     50      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    4551 
    4652  END SUBROUTINE xios(set_interpolate_domain_attr_hdl) 
    4753 
    4854  SUBROUTINE xios(set_interpolate_domain_attr_hdl_)   & 
    49     ( interpolate_domain_hdl, file_, mode_, order_, renormalize_ ) 
     55    ( interpolate_domain_hdl, file_, mode_, order_, renormalize_, weight_filename_, write_weight_  & 
     56     ) 
    5057 
    5158    IMPLICIT NONE 
     
    5663      LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize_ 
    5764      LOGICAL (KIND=C_BOOL) :: renormalize__tmp 
     65      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: weight_filename_ 
     66      LOGICAL  , OPTIONAL, INTENT(IN) :: write_weight_ 
     67      LOGICAL (KIND=C_BOOL) :: write_weight__tmp 
    5868 
    5969      IF (PRESENT(file_)) THEN 
     
    7888      ENDIF 
    7989 
     90      IF (PRESENT(weight_filename_)) THEN 
     91        CALL cxios_set_interpolate_domain_weight_filename & 
     92      (interpolate_domain_hdl%daddr, weight_filename_, len(weight_filename_)) 
     93      ENDIF 
     94 
     95      IF (PRESENT(write_weight_)) THEN 
     96        write_weight__tmp = write_weight_ 
     97        CALL cxios_set_interpolate_domain_write_weight & 
     98      (interpolate_domain_hdl%daddr, write_weight__tmp) 
     99      ENDIF 
     100 
    80101  END SUBROUTINE xios(set_interpolate_domain_attr_hdl_) 
    81102 
    82103  SUBROUTINE xios(get_interpolate_domain_attr)  & 
    83     ( interpolate_domain_id, file, mode, order, renormalize ) 
     104    ( interpolate_domain_id, file, mode, order, renormalize, weight_filename, write_weight ) 
    84105 
    85106    IMPLICIT NONE 
     
    91112      LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize 
    92113      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     114      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: weight_filename 
     115      LOGICAL  , OPTIONAL, INTENT(OUT) :: write_weight 
     116      LOGICAL (KIND=C_BOOL) :: write_weight_tmp 
    93117 
    94118      CALL xios(get_interpolate_domain_handle) & 
    95119      (interpolate_domain_id,interpolate_domain_hdl) 
    96120      CALL xios(get_interpolate_domain_attr_hdl_)   & 
    97       ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     121      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    98122 
    99123  END SUBROUTINE xios(get_interpolate_domain_attr) 
    100124 
    101125  SUBROUTINE xios(get_interpolate_domain_attr_hdl)  & 
    102     ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     126    ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    103127 
    104128    IMPLICIT NONE 
     
    109133      LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize 
    110134      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     135      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: weight_filename 
     136      LOGICAL  , OPTIONAL, INTENT(OUT) :: write_weight 
     137      LOGICAL (KIND=C_BOOL) :: write_weight_tmp 
    111138 
    112139      CALL xios(get_interpolate_domain_attr_hdl_)  & 
    113       ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     140      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    114141 
    115142  END SUBROUTINE xios(get_interpolate_domain_attr_hdl) 
    116143 
    117144  SUBROUTINE xios(get_interpolate_domain_attr_hdl_)   & 
    118     ( interpolate_domain_hdl, file_, mode_, order_, renormalize_ ) 
     145    ( interpolate_domain_hdl, file_, mode_, order_, renormalize_, weight_filename_, write_weight_  & 
     146     ) 
    119147 
    120148    IMPLICIT NONE 
     
    125153      LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize_ 
    126154      LOGICAL (KIND=C_BOOL) :: renormalize__tmp 
     155      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: weight_filename_ 
     156      LOGICAL  , OPTIONAL, INTENT(OUT) :: write_weight_ 
     157      LOGICAL (KIND=C_BOOL) :: write_weight__tmp 
    127158 
    128159      IF (PRESENT(file_)) THEN 
     
    147178      ENDIF 
    148179 
     180      IF (PRESENT(weight_filename_)) THEN 
     181        CALL cxios_get_interpolate_domain_weight_filename & 
     182      (interpolate_domain_hdl%daddr, weight_filename_, len(weight_filename_)) 
     183      ENDIF 
     184 
     185      IF (PRESENT(write_weight_)) THEN 
     186        CALL cxios_get_interpolate_domain_write_weight & 
     187      (interpolate_domain_hdl%daddr, write_weight__tmp) 
     188        write_weight_ = write_weight__tmp 
     189      ENDIF 
     190 
    149191  END SUBROUTINE xios(get_interpolate_domain_attr_hdl_) 
    150192 
    151193  SUBROUTINE xios(is_defined_interpolate_domain_attr)  & 
    152     ( interpolate_domain_id, file, mode, order, renormalize ) 
     194    ( interpolate_domain_id, file, mode, order, renormalize, weight_filename, write_weight ) 
    153195 
    154196    IMPLICIT NONE 
     
    163205      LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 
    164206      LOGICAL(KIND=C_BOOL) :: renormalize_tmp 
     207      LOGICAL, OPTIONAL, INTENT(OUT) :: weight_filename 
     208      LOGICAL(KIND=C_BOOL) :: weight_filename_tmp 
     209      LOGICAL, OPTIONAL, INTENT(OUT) :: write_weight 
     210      LOGICAL(KIND=C_BOOL) :: write_weight_tmp 
    165211 
    166212      CALL xios(get_interpolate_domain_handle) & 
    167213      (interpolate_domain_id,interpolate_domain_hdl) 
    168214      CALL xios(is_defined_interpolate_domain_attr_hdl_)   & 
    169       ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     215      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    170216 
    171217  END SUBROUTINE xios(is_defined_interpolate_domain_attr) 
    172218 
    173219  SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl)  & 
    174     ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     220    ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    175221 
    176222    IMPLICIT NONE 
     
    184230      LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 
    185231      LOGICAL(KIND=C_BOOL) :: renormalize_tmp 
     232      LOGICAL, OPTIONAL, INTENT(OUT) :: weight_filename 
     233      LOGICAL(KIND=C_BOOL) :: weight_filename_tmp 
     234      LOGICAL, OPTIONAL, INTENT(OUT) :: write_weight 
     235      LOGICAL(KIND=C_BOOL) :: write_weight_tmp 
    186236 
    187237      CALL xios(is_defined_interpolate_domain_attr_hdl_)  & 
    188       ( interpolate_domain_hdl, file, mode, order, renormalize ) 
     238      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight ) 
    189239 
    190240  END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl) 
    191241 
    192242  SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_)   & 
    193     ( interpolate_domain_hdl, file_, mode_, order_, renormalize_ ) 
     243    ( interpolate_domain_hdl, file_, mode_, order_, renormalize_, weight_filename_, write_weight_  & 
     244     ) 
    194245 
    195246    IMPLICIT NONE 
     
    203254      LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize_ 
    204255      LOGICAL(KIND=C_BOOL) :: renormalize__tmp 
     256      LOGICAL, OPTIONAL, INTENT(OUT) :: weight_filename_ 
     257      LOGICAL(KIND=C_BOOL) :: weight_filename__tmp 
     258      LOGICAL, OPTIONAL, INTENT(OUT) :: write_weight_ 
     259      LOGICAL(KIND=C_BOOL) :: write_weight__tmp 
    205260 
    206261      IF (PRESENT(file_)) THEN 
     
    228283      ENDIF 
    229284 
     285      IF (PRESENT(weight_filename_)) THEN 
     286        weight_filename__tmp = cxios_is_defined_interpolate_domain_weight_filename & 
     287      (interpolate_domain_hdl%daddr) 
     288        weight_filename_ = weight_filename__tmp 
     289      ENDIF 
     290 
     291      IF (PRESENT(write_weight_)) THEN 
     292        write_weight__tmp = cxios_is_defined_interpolate_domain_write_weight & 
     293      (interpolate_domain_hdl%daddr) 
     294        write_weight_ = write_weight__tmp 
     295      ENDIF 
     296 
    230297  END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_) 
    231298 
  • XIOS/trunk/src/interface/fortran_attr/interpolate_domain_interface_attr.F90

    r991 r1005  
    8989    END FUNCTION cxios_is_defined_interpolate_domain_renormalize 
    9090 
     91 
     92    SUBROUTINE cxios_set_interpolate_domain_weight_filename(interpolate_domain_hdl, weight_filename, weight_filename_size) BIND(C) 
     93      USE ISO_C_BINDING 
     94      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     95      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: weight_filename 
     96      INTEGER  (kind = C_INT)     , VALUE        :: weight_filename_size 
     97    END SUBROUTINE cxios_set_interpolate_domain_weight_filename 
     98 
     99    SUBROUTINE cxios_get_interpolate_domain_weight_filename(interpolate_domain_hdl, weight_filename, weight_filename_size) BIND(C) 
     100      USE ISO_C_BINDING 
     101      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     102      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: weight_filename 
     103      INTEGER  (kind = C_INT)     , VALUE        :: weight_filename_size 
     104    END SUBROUTINE cxios_get_interpolate_domain_weight_filename 
     105 
     106    FUNCTION cxios_is_defined_interpolate_domain_weight_filename(interpolate_domain_hdl) BIND(C) 
     107      USE ISO_C_BINDING 
     108      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_weight_filename 
     109      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     110    END FUNCTION cxios_is_defined_interpolate_domain_weight_filename 
     111 
     112 
     113    SUBROUTINE cxios_set_interpolate_domain_write_weight(interpolate_domain_hdl, write_weight) BIND(C) 
     114      USE ISO_C_BINDING 
     115      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     116      LOGICAL (KIND=C_BOOL)      , VALUE :: write_weight 
     117    END SUBROUTINE cxios_set_interpolate_domain_write_weight 
     118 
     119    SUBROUTINE cxios_get_interpolate_domain_write_weight(interpolate_domain_hdl, write_weight) BIND(C) 
     120      USE ISO_C_BINDING 
     121      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     122      LOGICAL (KIND=C_BOOL)             :: write_weight 
     123    END SUBROUTINE cxios_get_interpolate_domain_write_weight 
     124 
     125    FUNCTION cxios_is_defined_interpolate_domain_write_weight(interpolate_domain_hdl) BIND(C) 
     126      USE ISO_C_BINDING 
     127      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_write_weight 
     128      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     129    END FUNCTION cxios_is_defined_interpolate_domain_write_weight 
     130 
    91131  END INTERFACE 
    92132 
Note: See TracChangeset for help on using the changeset viewer.