Changeset 1941 for XIOS


Ignore:
Timestamp:
09/24/20 12:16:22 (4 years ago)
Author:
ymipsl
Message:

XIOS coupling : Update fortran interface
YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src/interface
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/iccontext_attr.cpp

    r1626 r1941  
    1616{ 
    1717  typedef xios::CContext* context_Ptr; 
     18 
     19  void cxios_set_context_attached_mode(context_Ptr context_hdl, bool attached_mode) 
     20  { 
     21    CTimer::get("XIOS").resume(); 
     22    context_hdl->attached_mode.setValue(attached_mode); 
     23    CTimer::get("XIOS").suspend(); 
     24  } 
     25 
     26  void cxios_get_context_attached_mode(context_Ptr context_hdl, bool* attached_mode) 
     27  { 
     28    CTimer::get("XIOS").resume(); 
     29    *attached_mode = context_hdl->attached_mode.getInheritedValue(); 
     30    CTimer::get("XIOS").suspend(); 
     31  } 
     32 
     33  bool cxios_is_defined_context_attached_mode(context_Ptr context_hdl) 
     34  { 
     35     CTimer::get("XIOS").resume(); 
     36     bool isDefined = context_hdl->attached_mode.hasInheritedValue(); 
     37     CTimer::get("XIOS").suspend(); 
     38     return isDefined; 
     39  } 
     40 
    1841 
    1942  void cxios_set_context_output_dir(context_Ptr context_hdl, const char * output_dir, int output_dir_size) 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalar_attr.cpp

    r1626 r1941  
    172172 
    173173 
     174  void cxios_set_scalar_mask(scalar_Ptr scalar_hdl, bool mask) 
     175  { 
     176    CTimer::get("XIOS").resume(); 
     177    scalar_hdl->mask.setValue(mask); 
     178    CTimer::get("XIOS").suspend(); 
     179  } 
     180 
     181  void cxios_get_scalar_mask(scalar_Ptr scalar_hdl, bool* mask) 
     182  { 
     183    CTimer::get("XIOS").resume(); 
     184    *mask = scalar_hdl->mask.getInheritedValue(); 
     185    CTimer::get("XIOS").suspend(); 
     186  } 
     187 
     188  bool cxios_is_defined_scalar_mask(scalar_Ptr scalar_hdl) 
     189  { 
     190     CTimer::get("XIOS").resume(); 
     191     bool isDefined = scalar_hdl->mask.hasInheritedValue(); 
     192     CTimer::get("XIOS").suspend(); 
     193     return isDefined; 
     194  } 
     195 
     196 
    174197  void cxios_set_scalar_name(scalar_Ptr scalar_hdl, const char * name, int name_size) 
    175198  { 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalargroup_attr.cpp

    r1626 r1941  
    198198 
    199199 
     200  void cxios_set_scalargroup_mask(scalargroup_Ptr scalargroup_hdl, bool mask) 
     201  { 
     202    CTimer::get("XIOS").resume(); 
     203    scalargroup_hdl->mask.setValue(mask); 
     204    CTimer::get("XIOS").suspend(); 
     205  } 
     206 
     207  void cxios_get_scalargroup_mask(scalargroup_Ptr scalargroup_hdl, bool* mask) 
     208  { 
     209    CTimer::get("XIOS").resume(); 
     210    *mask = scalargroup_hdl->mask.getInheritedValue(); 
     211    CTimer::get("XIOS").suspend(); 
     212  } 
     213 
     214  bool cxios_is_defined_scalargroup_mask(scalargroup_Ptr scalargroup_hdl) 
     215  { 
     216     CTimer::get("XIOS").resume(); 
     217     bool isDefined = scalargroup_hdl->mask.hasInheritedValue(); 
     218     CTimer::get("XIOS").suspend(); 
     219     return isDefined; 
     220  } 
     221 
     222 
    200223  void cxios_set_scalargroup_name(scalargroup_Ptr scalargroup_hdl, const char * name, int name_size) 
    201224  { 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/context_interface_attr.F90

    r581 r1941  
    99  INTERFACE 
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
     11 
     12    SUBROUTINE cxios_set_context_attached_mode(context_hdl, attached_mode) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl 
     15      LOGICAL (KIND=C_BOOL)      , VALUE :: attached_mode 
     16    END SUBROUTINE cxios_set_context_attached_mode 
     17 
     18    SUBROUTINE cxios_get_context_attached_mode(context_hdl, attached_mode) BIND(C) 
     19      USE ISO_C_BINDING 
     20      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl 
     21      LOGICAL (KIND=C_BOOL)             :: attached_mode 
     22    END SUBROUTINE cxios_get_context_attached_mode 
     23 
     24    FUNCTION cxios_is_defined_context_attached_mode(context_hdl) BIND(C) 
     25      USE ISO_C_BINDING 
     26      LOGICAL(kind=C_BOOL) :: cxios_is_defined_context_attached_mode 
     27      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl 
     28    END FUNCTION cxios_is_defined_context_attached_mode 
     29 
    1130 
    1231    SUBROUTINE cxios_set_context_output_dir(context_hdl, output_dir, output_dir_size) BIND(C) 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/icontext_attr.F90

    r966 r1941  
    1212 
    1313  SUBROUTINE xios(set_context_attr)  & 
    14     ( context_id, output_dir ) 
     14    ( context_id, attached_mode, output_dir ) 
    1515 
    1616    IMPLICIT NONE 
    1717      TYPE(txios(context))  :: context_hdl 
    1818      CHARACTER(LEN=*), INTENT(IN) ::context_id 
     19      LOGICAL  , OPTIONAL, INTENT(IN) :: attached_mode 
     20      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp 
    1921      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir 
    2022 
     
    2224      (context_id,context_hdl) 
    2325      CALL xios(set_context_attr_hdl_)   & 
    24       ( context_hdl, output_dir ) 
     26      ( context_hdl, attached_mode, output_dir ) 
    2527 
    2628  END SUBROUTINE xios(set_context_attr) 
    2729 
    2830  SUBROUTINE xios(set_context_attr_hdl)  & 
    29     ( context_hdl, output_dir ) 
     31    ( context_hdl, attached_mode, output_dir ) 
    3032 
    3133    IMPLICIT NONE 
    3234      TYPE(txios(context)) , INTENT(IN) :: context_hdl 
     35      LOGICAL  , OPTIONAL, INTENT(IN) :: attached_mode 
     36      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp 
    3337      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir 
    3438 
    3539      CALL xios(set_context_attr_hdl_)  & 
    36       ( context_hdl, output_dir ) 
     40      ( context_hdl, attached_mode, output_dir ) 
    3741 
    3842  END SUBROUTINE xios(set_context_attr_hdl) 
    3943 
    4044  SUBROUTINE xios(set_context_attr_hdl_)   & 
    41     ( context_hdl, output_dir_ ) 
     45    ( context_hdl, attached_mode_, output_dir_ ) 
    4246 
    4347    IMPLICIT NONE 
    4448      TYPE(txios(context)) , INTENT(IN) :: context_hdl 
     49      LOGICAL  , OPTIONAL, INTENT(IN) :: attached_mode_ 
     50      LOGICAL (KIND=C_BOOL) :: attached_mode__tmp 
    4551      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_ 
     52 
     53      IF (PRESENT(attached_mode_)) THEN 
     54        attached_mode__tmp = attached_mode_ 
     55        CALL cxios_set_context_attached_mode & 
     56      (context_hdl%daddr, attached_mode__tmp) 
     57      ENDIF 
    4658 
    4759      IF (PRESENT(output_dir_)) THEN 
     
    5365 
    5466  SUBROUTINE xios(get_context_attr)  & 
    55     ( context_id, output_dir ) 
     67    ( context_id, attached_mode, output_dir ) 
    5668 
    5769    IMPLICIT NONE 
    5870      TYPE(txios(context))  :: context_hdl 
    5971      CHARACTER(LEN=*), INTENT(IN) ::context_id 
     72      LOGICAL  , OPTIONAL, INTENT(OUT) :: attached_mode 
     73      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp 
    6074      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir 
    6175 
     
    6377      (context_id,context_hdl) 
    6478      CALL xios(get_context_attr_hdl_)   & 
    65       ( context_hdl, output_dir ) 
     79      ( context_hdl, attached_mode, output_dir ) 
    6680 
    6781  END SUBROUTINE xios(get_context_attr) 
    6882 
    6983  SUBROUTINE xios(get_context_attr_hdl)  & 
    70     ( context_hdl, output_dir ) 
     84    ( context_hdl, attached_mode, output_dir ) 
    7185 
    7286    IMPLICIT NONE 
    7387      TYPE(txios(context)) , INTENT(IN) :: context_hdl 
     88      LOGICAL  , OPTIONAL, INTENT(OUT) :: attached_mode 
     89      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp 
    7490      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir 
    7591 
    7692      CALL xios(get_context_attr_hdl_)  & 
    77       ( context_hdl, output_dir ) 
     93      ( context_hdl, attached_mode, output_dir ) 
    7894 
    7995  END SUBROUTINE xios(get_context_attr_hdl) 
    8096 
    8197  SUBROUTINE xios(get_context_attr_hdl_)   & 
    82     ( context_hdl, output_dir_ ) 
     98    ( context_hdl, attached_mode_, output_dir_ ) 
    8399 
    84100    IMPLICIT NONE 
    85101      TYPE(txios(context)) , INTENT(IN) :: context_hdl 
     102      LOGICAL  , OPTIONAL, INTENT(OUT) :: attached_mode_ 
     103      LOGICAL (KIND=C_BOOL) :: attached_mode__tmp 
    86104      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir_ 
     105 
     106      IF (PRESENT(attached_mode_)) THEN 
     107        CALL cxios_get_context_attached_mode & 
     108      (context_hdl%daddr, attached_mode__tmp) 
     109        attached_mode_ = attached_mode__tmp 
     110      ENDIF 
    87111 
    88112      IF (PRESENT(output_dir_)) THEN 
     
    94118 
    95119  SUBROUTINE xios(is_defined_context_attr)  & 
    96     ( context_id, output_dir ) 
     120    ( context_id, attached_mode, output_dir ) 
    97121 
    98122    IMPLICIT NONE 
    99123      TYPE(txios(context))  :: context_hdl 
    100124      CHARACTER(LEN=*), INTENT(IN) ::context_id 
     125      LOGICAL, OPTIONAL, INTENT(OUT) :: attached_mode 
     126      LOGICAL(KIND=C_BOOL) :: attached_mode_tmp 
    101127      LOGICAL, OPTIONAL, INTENT(OUT) :: output_dir 
    102128      LOGICAL(KIND=C_BOOL) :: output_dir_tmp 
     
    105131      (context_id,context_hdl) 
    106132      CALL xios(is_defined_context_attr_hdl_)   & 
    107       ( context_hdl, output_dir ) 
     133      ( context_hdl, attached_mode, output_dir ) 
    108134 
    109135  END SUBROUTINE xios(is_defined_context_attr) 
    110136 
    111137  SUBROUTINE xios(is_defined_context_attr_hdl)  & 
    112     ( context_hdl, output_dir ) 
     138    ( context_hdl, attached_mode, output_dir ) 
    113139 
    114140    IMPLICIT NONE 
    115141      TYPE(txios(context)) , INTENT(IN) :: context_hdl 
     142      LOGICAL, OPTIONAL, INTENT(OUT) :: attached_mode 
     143      LOGICAL(KIND=C_BOOL) :: attached_mode_tmp 
    116144      LOGICAL, OPTIONAL, INTENT(OUT) :: output_dir 
    117145      LOGICAL(KIND=C_BOOL) :: output_dir_tmp 
    118146 
    119147      CALL xios(is_defined_context_attr_hdl_)  & 
    120       ( context_hdl, output_dir ) 
     148      ( context_hdl, attached_mode, output_dir ) 
    121149 
    122150  END SUBROUTINE xios(is_defined_context_attr_hdl) 
    123151 
    124152  SUBROUTINE xios(is_defined_context_attr_hdl_)   & 
    125     ( context_hdl, output_dir_ ) 
     153    ( context_hdl, attached_mode_, output_dir_ ) 
    126154 
    127155    IMPLICIT NONE 
    128156      TYPE(txios(context)) , INTENT(IN) :: context_hdl 
     157      LOGICAL, OPTIONAL, INTENT(OUT) :: attached_mode_ 
     158      LOGICAL(KIND=C_BOOL) :: attached_mode__tmp 
    129159      LOGICAL, OPTIONAL, INTENT(OUT) :: output_dir_ 
    130160      LOGICAL(KIND=C_BOOL) :: output_dir__tmp 
     161 
     162      IF (PRESENT(attached_mode_)) THEN 
     163        attached_mode__tmp = cxios_is_defined_context_attached_mode & 
     164      (context_hdl%daddr) 
     165        attached_mode_ = attached_mode__tmp 
     166      ENDIF 
    131167 
    132168      IF (PRESENT(output_dir_)) THEN 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalar_attr.F90

    r1492 r1941  
    1212 
    1313  SUBROUTINE xios(set_scalar_attr)  & 
    14     ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    15     , scalar_ref, standard_name, unit, value ) 
     14    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     15    , prec, scalar_ref, standard_name, unit, value ) 
    1616 
    1717    IMPLICIT NONE 
     
    2424      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    2525      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     26      LOGICAL  , OPTIONAL, INTENT(IN) :: mask 
     27      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    2628      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2729      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
     
    3537      (scalar_id,scalar_hdl) 
    3638      CALL xios(set_scalar_attr_hdl_)   & 
    37       ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    38       , scalar_ref, standard_name, unit, value ) 
     39      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     40      , prec, scalar_ref, standard_name, unit, value ) 
    3941 
    4042  END SUBROUTINE xios(set_scalar_attr) 
    4143 
    4244  SUBROUTINE xios(set_scalar_attr_hdl)  & 
    43     ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    44     , scalar_ref, standard_name, unit, value ) 
     45    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     46    , prec, scalar_ref, standard_name, unit, value ) 
    4547 
    4648    IMPLICIT NONE 
     
    5254      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    5355      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     56      LOGICAL  , OPTIONAL, INTENT(IN) :: mask 
     57      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    5458      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    5559      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
     
    6165 
    6266      CALL xios(set_scalar_attr_hdl_)  & 
    63       ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    64       , scalar_ref, standard_name, unit, value ) 
     67      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     68      , prec, scalar_ref, standard_name, unit, value ) 
    6569 
    6670  END SUBROUTINE xios(set_scalar_attr_hdl) 
    6771 
    6872  SUBROUTINE xios(set_scalar_attr_hdl_)   & 
    69     ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  & 
    70     , prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     73    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  & 
     74    , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    7175 
    7276    IMPLICIT NONE 
     
    7882      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label_ 
    7983      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
     84      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_ 
     85      LOGICAL (KIND=C_BOOL) :: mask__tmp 
    8086      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    8187      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_ 
     
    116122      ENDIF 
    117123 
     124      IF (PRESENT(mask_)) THEN 
     125        mask__tmp = mask_ 
     126        CALL cxios_set_scalar_mask & 
     127      (scalar_hdl%daddr, mask__tmp) 
     128      ENDIF 
     129 
    118130      IF (PRESENT(name_)) THEN 
    119131        CALL cxios_set_scalar_name & 
     
    154166 
    155167  SUBROUTINE xios(get_scalar_attr)  & 
    156     ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    157     , scalar_ref, standard_name, unit, value ) 
     168    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     169    , prec, scalar_ref, standard_name, unit, value ) 
    158170 
    159171    IMPLICIT NONE 
     
    166178      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    167179      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     180      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask 
     181      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    168182      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    169183      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
     
    177191      (scalar_id,scalar_hdl) 
    178192      CALL xios(get_scalar_attr_hdl_)   & 
    179       ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    180       , scalar_ref, standard_name, unit, value ) 
     193      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     194      , prec, scalar_ref, standard_name, unit, value ) 
    181195 
    182196  END SUBROUTINE xios(get_scalar_attr) 
    183197 
    184198  SUBROUTINE xios(get_scalar_attr_hdl)  & 
    185     ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    186     , scalar_ref, standard_name, unit, value ) 
     199    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     200    , prec, scalar_ref, standard_name, unit, value ) 
    187201 
    188202    IMPLICIT NONE 
     
    194208      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    195209      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     210      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask 
     211      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    196212      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    197213      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
     
    203219 
    204220      CALL xios(get_scalar_attr_hdl_)  & 
    205       ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    206       , scalar_ref, standard_name, unit, value ) 
     221      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     222      , prec, scalar_ref, standard_name, unit, value ) 
    207223 
    208224  END SUBROUTINE xios(get_scalar_attr_hdl) 
    209225 
    210226  SUBROUTINE xios(get_scalar_attr_hdl_)   & 
    211     ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  & 
    212     , prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     227    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  & 
     228    , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    213229 
    214230    IMPLICIT NONE 
     
    220236      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label_ 
    221237      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
     238      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_ 
     239      LOGICAL (KIND=C_BOOL) :: mask__tmp 
    222240      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    223241      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_ 
     
    258276      ENDIF 
    259277 
     278      IF (PRESENT(mask_)) THEN 
     279        CALL cxios_get_scalar_mask & 
     280      (scalar_hdl%daddr, mask__tmp) 
     281        mask_ = mask__tmp 
     282      ENDIF 
     283 
    260284      IF (PRESENT(name_)) THEN 
    261285        CALL cxios_get_scalar_name & 
     
    296320 
    297321  SUBROUTINE xios(is_defined_scalar_attr)  & 
    298     ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    299     , scalar_ref, standard_name, unit, value ) 
     322    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     323    , prec, scalar_ref, standard_name, unit, value ) 
    300324 
    301325    IMPLICIT NONE 
     
    314338      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    315339      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     340      LOGICAL, OPTIONAL, INTENT(OUT) :: mask 
     341      LOGICAL(KIND=C_BOOL) :: mask_tmp 
    316342      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    317343      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    332358      (scalar_id,scalar_hdl) 
    333359      CALL xios(is_defined_scalar_attr_hdl_)   & 
    334       ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    335       , scalar_ref, standard_name, unit, value ) 
     360      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     361      , prec, scalar_ref, standard_name, unit, value ) 
    336362 
    337363  END SUBROUTINE xios(is_defined_scalar_attr) 
    338364 
    339365  SUBROUTINE xios(is_defined_scalar_attr_hdl)  & 
    340     ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    341     , scalar_ref, standard_name, unit, value ) 
     366    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     367    , prec, scalar_ref, standard_name, unit, value ) 
    342368 
    343369    IMPLICIT NONE 
     
    355381      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    356382      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     383      LOGICAL, OPTIONAL, INTENT(OUT) :: mask 
     384      LOGICAL(KIND=C_BOOL) :: mask_tmp 
    357385      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    358386      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    371399 
    372400      CALL xios(is_defined_scalar_attr_hdl_)  & 
    373       ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
    374       , scalar_ref, standard_name, unit, value ) 
     401      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  & 
     402      , prec, scalar_ref, standard_name, unit, value ) 
    375403 
    376404  END SUBROUTINE xios(is_defined_scalar_attr_hdl) 
    377405 
    378406  SUBROUTINE xios(is_defined_scalar_attr_hdl_)   & 
    379     ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  & 
    380     , prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     407    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  & 
     408    , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    381409 
    382410    IMPLICIT NONE 
     
    394422      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
    395423      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
     424      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_ 
     425      LOGICAL(KIND=C_BOOL) :: mask__tmp 
    396426      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    397427      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    445475      ENDIF 
    446476 
     477      IF (PRESENT(mask_)) THEN 
     478        mask__tmp = cxios_is_defined_scalar_mask & 
     479      (scalar_hdl%daddr) 
     480        mask_ = mask__tmp 
     481      ENDIF 
     482 
    447483      IF (PRESENT(name_)) THEN 
    448484        name__tmp = cxios_is_defined_scalar_name & 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalargroup_attr.F90

    r1492 r1941  
    1212 
    1313  SUBROUTINE xios(set_scalargroup_attr)  & 
    14     ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    15     , positive, prec, scalar_ref, standard_name, unit, value ) 
     14    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     15    , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    1616 
    1717    IMPLICIT NONE 
     
    2525      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    2626      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     27      LOGICAL  , OPTIONAL, INTENT(IN) :: mask 
     28      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    2729      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2830      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
     
    3638      (scalargroup_id,scalargroup_hdl) 
    3739      CALL xios(set_scalargroup_attr_hdl_)   & 
    38       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    39       , positive, prec, scalar_ref, standard_name, unit, value ) 
     40      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     41      , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    4042 
    4143  END SUBROUTINE xios(set_scalargroup_attr) 
    4244 
    4345  SUBROUTINE xios(set_scalargroup_attr_hdl)  & 
    44     ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    45     , positive, prec, scalar_ref, standard_name, unit, value ) 
     46    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     47    , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    4648 
    4749    IMPLICIT NONE 
     
    5456      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    5557      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     58      LOGICAL  , OPTIONAL, INTENT(IN) :: mask 
     59      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    5660      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    5761      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
     
    6367 
    6468      CALL xios(set_scalargroup_attr_hdl_)  & 
    65       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    66       , positive, prec, scalar_ref, standard_name, unit, value ) 
     69      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     70      , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    6771 
    6872  END SUBROUTINE xios(set_scalargroup_attr_hdl) 
     
    7074  SUBROUTINE xios(set_scalargroup_attr_hdl_)   & 
    7175    ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  & 
    72     , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     76    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    7377 
    7478    IMPLICIT NONE 
     
    8185      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label_ 
    8286      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
     87      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_ 
     88      LOGICAL (KIND=C_BOOL) :: mask__tmp 
    8389      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    8490      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_ 
     
    124130      ENDIF 
    125131 
     132      IF (PRESENT(mask_)) THEN 
     133        mask__tmp = mask_ 
     134        CALL cxios_set_scalargroup_mask & 
     135      (scalargroup_hdl%daddr, mask__tmp) 
     136      ENDIF 
     137 
    126138      IF (PRESENT(name_)) THEN 
    127139        CALL cxios_set_scalargroup_name & 
     
    162174 
    163175  SUBROUTINE xios(get_scalargroup_attr)  & 
    164     ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    165     , positive, prec, scalar_ref, standard_name, unit, value ) 
     176    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     177    , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    166178 
    167179    IMPLICIT NONE 
     
    175187      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    176188      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     189      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask 
     190      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    177191      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    178192      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
     
    186200      (scalargroup_id,scalargroup_hdl) 
    187201      CALL xios(get_scalargroup_attr_hdl_)   & 
    188       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    189       , positive, prec, scalar_ref, standard_name, unit, value ) 
     202      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     203      , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    190204 
    191205  END SUBROUTINE xios(get_scalargroup_attr) 
    192206 
    193207  SUBROUTINE xios(get_scalargroup_attr_hdl)  & 
    194     ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    195     , positive, prec, scalar_ref, standard_name, unit, value ) 
     208    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     209    , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    196210 
    197211    IMPLICIT NONE 
     
    204218      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    205219      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     220      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask 
     221      LOGICAL (KIND=C_BOOL) :: mask_tmp 
    206222      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    207223      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
     
    213229 
    214230      CALL xios(get_scalargroup_attr_hdl_)  & 
    215       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    216       , positive, prec, scalar_ref, standard_name, unit, value ) 
     231      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     232      , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    217233 
    218234  END SUBROUTINE xios(get_scalargroup_attr_hdl) 
     
    220236  SUBROUTINE xios(get_scalargroup_attr_hdl_)   & 
    221237    ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  & 
    222     , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     238    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    223239 
    224240    IMPLICIT NONE 
     
    231247      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label_ 
    232248      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
     249      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_ 
     250      LOGICAL (KIND=C_BOOL) :: mask__tmp 
    233251      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    234252      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_ 
     
    274292      ENDIF 
    275293 
     294      IF (PRESENT(mask_)) THEN 
     295        CALL cxios_get_scalargroup_mask & 
     296      (scalargroup_hdl%daddr, mask__tmp) 
     297        mask_ = mask__tmp 
     298      ENDIF 
     299 
    276300      IF (PRESENT(name_)) THEN 
    277301        CALL cxios_get_scalargroup_name & 
     
    312336 
    313337  SUBROUTINE xios(is_defined_scalargroup_attr)  & 
    314     ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    315     , positive, prec, scalar_ref, standard_name, unit, value ) 
     338    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     339    , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    316340 
    317341    IMPLICIT NONE 
     
    332356      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    333357      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     358      LOGICAL, OPTIONAL, INTENT(OUT) :: mask 
     359      LOGICAL(KIND=C_BOOL) :: mask_tmp 
    334360      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    335361      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    350376      (scalargroup_id,scalargroup_hdl) 
    351377      CALL xios(is_defined_scalargroup_attr_hdl_)   & 
    352       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    353       , positive, prec, scalar_ref, standard_name, unit, value ) 
     378      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     379      , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    354380 
    355381  END SUBROUTINE xios(is_defined_scalargroup_attr) 
    356382 
    357383  SUBROUTINE xios(is_defined_scalargroup_attr_hdl)  & 
    358     ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    359     , positive, prec, scalar_ref, standard_name, unit, value ) 
     384    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     385    , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    360386 
    361387    IMPLICIT NONE 
     
    375401      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    376402      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     403      LOGICAL, OPTIONAL, INTENT(OUT) :: mask 
     404      LOGICAL(KIND=C_BOOL) :: mask_tmp 
    377405      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    378406      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    391419 
    392420      CALL xios(is_defined_scalargroup_attr_hdl_)  & 
    393       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
    394       , positive, prec, scalar_ref, standard_name, unit, value ) 
     421      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  & 
     422      , name, positive, prec, scalar_ref, standard_name, unit, value ) 
    395423 
    396424  END SUBROUTINE xios(is_defined_scalargroup_attr_hdl) 
     
    398426  SUBROUTINE xios(is_defined_scalargroup_attr_hdl_)   & 
    399427    ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  & 
    400     , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     428    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    401429 
    402430    IMPLICIT NONE 
     
    416444      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
    417445      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
     446      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_ 
     447      LOGICAL(KIND=C_BOOL) :: mask__tmp 
    418448      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    419449      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    473503      ENDIF 
    474504 
     505      IF (PRESENT(mask_)) THEN 
     506        mask__tmp = cxios_is_defined_scalargroup_mask & 
     507      (scalargroup_hdl%daddr) 
     508        mask_ = mask__tmp 
     509      ENDIF 
     510 
    475511      IF (PRESENT(name_)) THEN 
    476512        name__tmp = cxios_is_defined_scalargroup_name & 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalar_interface_attr.F90

    r1492 r1941  
    136136 
    137137 
     138    SUBROUTINE cxios_set_scalar_mask(scalar_hdl, mask) BIND(C) 
     139      USE ISO_C_BINDING 
     140      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     141      LOGICAL (KIND=C_BOOL)      , VALUE :: mask 
     142    END SUBROUTINE cxios_set_scalar_mask 
     143 
     144    SUBROUTINE cxios_get_scalar_mask(scalar_hdl, mask) BIND(C) 
     145      USE ISO_C_BINDING 
     146      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     147      LOGICAL (KIND=C_BOOL)             :: mask 
     148    END SUBROUTINE cxios_get_scalar_mask 
     149 
     150    FUNCTION cxios_is_defined_scalar_mask(scalar_hdl) BIND(C) 
     151      USE ISO_C_BINDING 
     152      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_mask 
     153      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     154    END FUNCTION cxios_is_defined_scalar_mask 
     155 
     156 
    138157    SUBROUTINE cxios_set_scalar_name(scalar_hdl, name, name_size) BIND(C) 
    139158      USE ISO_C_BINDING 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalargroup_interface_attr.F90

    r1492 r1941  
    157157 
    158158 
     159    SUBROUTINE cxios_set_scalargroup_mask(scalargroup_hdl, mask) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     162      LOGICAL (KIND=C_BOOL)      , VALUE :: mask 
     163    END SUBROUTINE cxios_set_scalargroup_mask 
     164 
     165    SUBROUTINE cxios_get_scalargroup_mask(scalargroup_hdl, mask) BIND(C) 
     166      USE ISO_C_BINDING 
     167      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     168      LOGICAL (KIND=C_BOOL)             :: mask 
     169    END SUBROUTINE cxios_get_scalargroup_mask 
     170 
     171    FUNCTION cxios_is_defined_scalargroup_mask(scalargroup_hdl) BIND(C) 
     172      USE ISO_C_BINDING 
     173      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_mask 
     174      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     175    END FUNCTION cxios_is_defined_scalargroup_mask 
     176 
     177 
    159178    SUBROUTINE cxios_set_scalargroup_name(scalargroup_hdl, name, name_size) BIND(C) 
    160179      USE ISO_C_BINDING 
Note: See TracChangeset for help on using the changeset viewer.