Changeset 2620


Ignore:
Timestamp:
03/20/24 14:48:11 (8 weeks ago)
Author:
jderouillat
Message:

Modify fortran-C interfaces to manage logical-bool conversion, the optimizations of OneAPI could produce bugs regarding the logical-bool encodings.

Location:
XIOS3/trunk/src
Files:
2 added
76 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/generate_interface_impl.hpp

    r1626 r2620  
    356356    { 
    357357      oss << "  " << name_tmp << " = " << name << "_" << iendl; 
     358      oss << "  CALL xios_logical_to_bool_0d(" << name_tmp << ")" << iendl; \ 
    358359      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; 
    359360      oss << "(" << className << "_hdl%daddr, " << name_tmp << ")" << iendl; 
     
    374375      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; 
    375376      oss << "(" << className << "_hdl%daddr, " << name_tmp << ")" << iendl; 
     377      oss << "  CALL xios_bool_to_logical_0d(" << name_tmp << ")" << iendl; \ 
    376378      oss << "  " << name << "_ = " << name_tmp << iendl; 
    377379    } 
     
    943945      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1)))" << iendl; \ 
    944946      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     947      oss << "  CALL xios_logical_to_bool_1d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    945948      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; \ 
    946949      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     
    961964      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2)))" << iendl; \ 
    962965      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     966      oss << "  CALL xios_logical_to_bool_2d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    963967      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; \ 
    964968      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     
    979983      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3)))" << iendl; \ 
    980984      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     985      oss << "  CALL xios_logical_to_bool_3d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    981986      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; \ 
    982987      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     
    9981003      oss << " SIZE(" << name << "_,4)))" << iendl; \ 
    9991004      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     1005      oss << "  CALL xios_logical_to_bool_4d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    10001006      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; \ 
    10011007      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     
    10171023      oss << " SIZE(" << name << "_,4), SIZE(" << name << "_,5)))" << iendl; \ 
    10181024      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     1025      oss << "  CALL xios_logical_to_bool_5d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    10191026      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; \ 
    10201027      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     
    10361043      oss << " SIZE(" << name << "_,4), SIZE(" << name << "_,5), SIZE(" << name << "_,6)))" << iendl; \ 
    10371044      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     1045      oss << "  CALL xios_logical_to_bool_6d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    10381046      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; \ 
    10391047      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     
    10561064      oss << " SIZE(" << name << "_,7)))" << iendl; \ 
    10571065      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     1066      oss << "  CALL xios_logical_to_bool_7d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    10581067      oss << "  CALL cxios_set_" << className << "_" << name << " &" << iendl; \ 
    10591068      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     
    10961105      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; \ 
    10971106      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1107      oss << "  CALL xios_bool_to_logical_1d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    10981108      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
    10991109    } \ 
     
    11141124      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; \ 
    11151125      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1126      oss << "  CALL xios_bool_to_logical_2d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    11161127      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
    11171128    } \ 
     
    11321143      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; \ 
    11331144      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1145      oss << "  CALL xios_bool_to_logical_3d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    11341146      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
    11351147      } \ 
     
    11511163      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; \ 
    11521164      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1165      oss << "  CALL xios_bool_to_logical_4d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    11531166      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
    11541167      } \ 
     
    11701183      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; \ 
    11711184      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1185      oss << "  CALL xios_bool_to_logical_5d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    11721186      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
    11731187      } \ 
     
    11891203      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; \ 
    11901204      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1205      oss << "  CALL xios_bool_to_logical_6d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    11911206      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
    11921207      } \ 
     
    12091224      oss << "  CALL cxios_get_" << className << "_" << name << " &" << iendl; \ 
    12101225      oss << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1226      oss << "  CALL xios_bool_to_logical_7d(" << name_tmp << ", SHAPE("<< name_tmp << "))" << iendl; \ 
    12111227      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
    12121228      } \ 
  • XIOS3/trunk/src/interface/fortran/iaxis.F90

    r501 r2620  
    55   USE AXIS_INTERFACE 
    66   USE AXISGROUP_INTERFACE 
    7     
     7   USE LOGICAL_BOOL_CONVERSION 
     8 
    89   TYPE txios(axis) 
    910      INTEGER(kind = C_INTPTR_T) :: daddr 
     
    4041       
    4142      CALL cxios_axis_valid_id(val, idt, len(idt)) 
     43      CALL xios_bool_to_logical_0d(val) 
    4244      xios(is_valid_axis) = val 
    4345 
     
    5052 
    5153      CALL cxios_axisgroup_valid_id(val, idt, len(idt)) 
     54      CALL xios_bool_to_logical_0d(val) 
    5255      xios(is_valid_axisgroup) = val 
    5356 
  • XIOS3/trunk/src/interface/fortran/icalendar_wrapper.F90

    r549 r2620  
    66   USE IDATE 
    77   USE IDURATION 
     8   USE LOGICAL_BOOL_CONVERSION 
    89 
    910   TYPE txios(calendar_wrapper) 
     
    3435 
    3536      CALL cxios_calendar_wrapper_valid_id(val, idt, len(idt)); 
     37      CALL xios_bool_to_logical_0d(val) 
    3638      xios(is_valid_calendar_wrapper) = val 
    3739   END FUNCTION  xios(is_valid_calendar_wrapper) 
  • XIOS3/trunk/src/interface/fortran/icompute_connectivity_domain.F90

    r934 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE COMPUTE_CONNECTIVITY_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(compute_connectivity_domain) 
     
    2425 
    2526      CALL cxios_compute_connectivity_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_compute_connectivity_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/icontext.F90

    r2121 r2620  
    77   USE IDURATION 
    88!   USE icontext_attr 
     9   USE LOGICAL_BOOL_CONVERSION 
    910 
    1011 
     
    6263         wswap = .FALSE. 
    6364      END IF 
     65      CALL xios_logical_to_bool_0d(wswap) 
    6466      CALL cxios_context_set_current(context%daddr, wswap) 
    6567 
     
    8385 
    8486      CALL cxios_context_valid_id(val, idt, len(idt)); 
     87      CALL xios_bool_to_logical_0d(val) 
    8588      xios(is_valid_context) = val 
    8689 
  • XIOS3/trunk/src/interface/fortran/idata.F90

    r2121 r2620  
    55   USE ICONTEXT 
    66   USE IFIELD 
     7   USE LOGICAL_BOOL_CONVERSION 
    78 
    89   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
     
    780781 
    781782      CALL cxios_context_is_initialized(context_id, LEN(context_id), is_init) 
     783      CALL xios_bool_to_logical_0d(is_init) 
    782784      xios(context_is_initialized) = is_init 
    783785 
     
    13471349      CALL cxios_get_variable_data_k8(varId, len(varId), data_k8, val) 
    13481350 
     1351      CALL xios_bool_to_logical_0d(val) 
    13491352      xios(getVar_k8) = val 
    13501353   END FUNCTION xios(getVar_k8) 
     
    13591362      CALL cxios_get_variable_data_k4(varId, len(varId), data_k4, val) 
    13601363 
     1364      CALL xios_bool_to_logical_0d(val) 
    13611365      xios(getVar_k4) = val 
    13621366   END FUNCTION xios(getVar_k4) 
     
    13711375      CALL cxios_get_variable_data_int(varId, len(varId), data_int, val) 
    13721376 
     1377      CALL xios_bool_to_logical_0d(val) 
    13731378      xios(getVar_int) = val 
    13741379   END FUNCTION xios(getVar_int) 
     
    13831388 
    13841389      CALL cxios_get_variable_data_logic(varId, len(varId), data_tmp, val) 
     1390      CALL xios_bool_to_logical_0d(val) 
    13851391      xios(getVar_logic) = val 
    1386       IF (val) data_logic = data_tmp 
     1392      IF (val) THEN 
     1393         CALL xios_bool_to_logical_0d(data_tmp) 
     1394         data_logic = data_tmp 
     1395      ENDIF 
    13871396   END FUNCTION xios(getVar_logic) 
    13881397 
     
    13961405      CALL cxios_get_variable_data_char(varId, len(varId), data_char, len(data_char), val) 
    13971406 
     1407      CALL xios_bool_to_logical_0d(val) 
    13981408      xios(getVar_char) = val 
    13991409   END FUNCTION xios(getVar_char) 
     
    14091419      CALL cxios_set_variable_data_k8(varId, len(varId), data_k8, val) 
    14101420 
     1421      CALL xios_bool_to_logical_0d(val) 
    14111422      xios(setVar_k8) = val 
    14121423   END FUNCTION xios(setVar_k8) 
     
    14211432      CALL cxios_set_variable_data_k4(varId, len(varId), data_k4, val) 
    14221433 
     1434      CALL xios_bool_to_logical_0d(val) 
    14231435      xios(setVar_k4) = val 
    14241436   END FUNCTION xios(setVar_k4) 
     
    14331445      CALL cxios_set_variable_data_int(varId, len(varId), data_int, val) 
    14341446 
     1447      CALL xios_bool_to_logical_0d(val) 
    14351448      xios(setVar_int) = val 
    14361449   END FUNCTION xios(setVar_int) 
     
    14451458 
    14461459      data_tmp = data_logic 
     1460      CALL xios_logical_to_bool_0d(data_tmp) 
    14471461      CALL cxios_set_variable_data_logic(varId, len(varId), data_tmp, val) 
    14481462 
     1463      CALL xios_bool_to_logical_0d(val) 
    14491464      xios(setVar_logic) = val 
    14501465   END FUNCTION xios(setVar_logic) 
     
    14591474      CALL cxios_set_variable_data_char(varId, len(varId), data_char, len(data_char), val) 
    14601475 
     1476      CALL xios_bool_to_logical_0d(val) 
    14611477      xios(setVar_char) = val 
    14621478   END FUNCTION xios(setVar_char) 
  • XIOS3/trunk/src/interface/fortran/idate.F90

    r801 r2620  
    33   USE, INTRINSIC :: ISO_C_BINDING 
    44   USE DATE_INTERFACE 
     5   USE LOGICAL_BOOL_CONVERSION 
    56 
    67   INTERFACE OPERATOR(+) 
     
    115116      TYPE(txios(date)), INTENT(IN) :: date1, date2 
    116117      LOGICAL :: res 
    117  
    118       res = cxios_date_eq(date1, date2) 
     118      LOGICAL (KIND=C_BOOL) :: res__tmp 
     119 
     120      res__tmp = cxios_date_eq(date1, date2) 
     121      CALL xios_bool_to_logical_0d(res__tmp) 
     122      res = res__tmp 
    119123   END FUNCTION xios(date_eq) 
    120124 
     
    124128      TYPE(txios(date)), INTENT(IN) :: date1, date2 
    125129      LOGICAL :: res 
    126  
    127       res = cxios_date_neq(date1, date2) 
     130      LOGICAL (KIND=C_BOOL) :: res__tmp 
     131 
     132      res__tmp = cxios_date_neq(date1, date2) 
     133      CALL xios_bool_to_logical_0d(res__tmp) 
     134      res = res__tmp 
    128135   END FUNCTION xios(date_neq) 
    129136 
     
    133140      TYPE(txios(date)), INTENT(IN) :: date1, date2 
    134141      LOGICAL :: res 
    135  
    136       res = cxios_date_lt(date1, date2) 
     142      LOGICAL (KIND=C_BOOL) :: res__tmp 
     143 
     144      res__tmp = cxios_date_lt(date1, date2) 
     145      CALL xios_bool_to_logical_0d(res__tmp) 
     146      res = res__tmp 
    137147   END FUNCTION xios(date_lt) 
    138148 
     
    142152      TYPE(txios(date)), INTENT(IN) :: date1, date2 
    143153      LOGICAL :: res 
    144  
    145       res = cxios_date_le(date1, date2) 
     154      LOGICAL (KIND=C_BOOL) :: res__tmp 
     155 
     156      res__tmp = cxios_date_le(date1, date2) 
     157      CALL xios_bool_to_logical_0d(res__tmp) 
     158      res = res__tmp 
    146159   END FUNCTION xios(date_le) 
    147160 
     
    151164      TYPE(txios(date)), INTENT(IN) :: date1, date2 
    152165      LOGICAL :: res 
    153  
    154       res = cxios_date_gt(date1, date2) 
     166      LOGICAL (KIND=C_BOOL) :: res__tmp 
     167 
     168      res__tmp = cxios_date_gt(date1, date2) 
     169      CALL xios_bool_to_logical_0d(res__tmp) 
     170      res = res__tmp 
    155171   END FUNCTION xios(date_gt) 
    156172 
     
    160176      TYPE(txios(date)), INTENT(IN) :: date1, date2 
    161177      LOGICAL :: res 
    162  
    163       res = cxios_date_ge(date1, date2) 
     178      LOGICAL (KIND=C_BOOL) :: res__tmp 
     179 
     180      res__tmp = cxios_date_ge(date1, date2) 
     181      CALL xios_bool_to_logical_0d(res__tmp) 
     182      res = res__tmp 
    164183   END FUNCTION xios(date_ge) 
    165184 
  • XIOS3/trunk/src/interface/fortran/idomain.F90

    r501 r2620  
    77!   USE IDOMAIN_ATTR 
    88!   USE IDOMAINGROUP_ATTR 
     9   USE LOGICAL_BOOL_CONVERSION 
    910       
    1011   TYPE txios(domain) 
     
    4243      LOGICAL  (kind = 1)                 :: val 
    4344      CALL cxios_domain_valid_id(val, idt, len(idt)); 
     45      CALL xios_bool_to_logical_0d(val) 
    4446      xios(is_valid_domain) = val 
    4547   END FUNCTION  xios(is_valid_domain) 
     
    5052      LOGICAL  (kind = 1)                 :: val 
    5153      CALL cxios_domaingroup_valid_id(val, idt, len(idt)); 
     54      CALL xios_bool_to_logical_0d(val) 
    5255      xios(is_valid_domaingroup) = val 
    5356   END FUNCTION  xios(is_valid_domaingroup) 
  • XIOS3/trunk/src/interface/fortran/iduplicate_scalar_to_axis_interface.F90

    r1492 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE DUPLICATE_SCALAR_TO_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(duplicate_scalar_to_axis) 
     
    2425 
    2526      CALL cxios_duplicate_scalar_to_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_duplicate_scalar_to_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iduration.F90

    r801 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE DURATION_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE(txios(duration)), PARAMETER :: xios(year) = txios(duration)(1, 0, 0, 0, 0, 0, 0) 
     
    176177      TYPE(txios(duration)), INTENT(IN) :: dur1, dur2 
    177178      LOGICAL :: res 
     179      LOGICAL (KIND=C_BOOL) :: res__tmp 
    178180 
    179       res = cxios_duration_eq(dur1, dur2) 
     181      res__tmp = cxios_duration_eq(dur1, dur2) 
     182      CALL xios_bool_to_logical_0d(res__tmp) 
     183      res = res__tmp 
    180184   END FUNCTION xios(duration_eq) 
    181185 
     
    185189      TYPE(txios(duration)), INTENT(IN) :: dur1, dur2 
    186190      LOGICAL :: res 
     191      LOGICAL (KIND=C_BOOL) :: res__tmp 
    187192 
    188       res = cxios_duration_neq(dur1, dur2) 
     193      res__tmp = cxios_duration_neq(dur1, dur2) 
     194      CALL xios_bool_to_logical_0d(res__tmp) 
     195      res = res__tmp 
    189196   END FUNCTION xios(duration_neq) 
    190197 
  • XIOS3/trunk/src/interface/fortran/iexpand_domain.F90

    r981 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE EXPAND_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(expand_domain) 
     
    2425 
    2526      CALL cxios_expand_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_expand_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iextract_axis_to_scalar.F90

    r981 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE EXTRACT_AXIS_TO_SCALAR_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(extract_axis_to_scalar) 
     
    2425 
    2526      CALL cxios_extract_axis_to_scalar_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_extract_axis_to_scalar) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iextract_domain.F90

    r2338 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE EXTRACT_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(extract_domain) 
     
    2425 
    2526      CALL cxios_extract_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_extract_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iextract_domain_to_axis.F90

    r981 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE EXTRACT_DOMAIN_TO_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(extract_domain_to_axis) 
     
    2425 
    2526      CALL cxios_extract_domain_to_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_extract_domain_to_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/ifield.F90

    r1158 r2620  
    1111   USE IAXIS 
    1212   USE ISCALAR 
     13   USE LOGICAL_BOOL_CONVERSION 
    1314    
    1415   TYPE txios(field) 
     
    129130       
    130131      CALL cxios_field_valid_id(val, idt, len(idt)); 
     132      CALL xios_bool_to_logical_0d(val) 
    131133      xios(is_valid_field) = val 
    132134 
     
    138140      LOGICAL  (kind = 1)                 :: val 
    139141      CALL cxios_fieldgroup_valid_id(val, idt, len(idt)); 
     142      CALL xios_bool_to_logical_0d(val) 
    140143      xios(is_valid_fieldgroup) = val 
    141144 
     
    166169      ENDIF 
    167170 
     171      CALL xios_logical_to_bool_0d(at_current_timestep) 
    168172      CALL cxios_field_is_active(field_hdl%daddr, at_current_timestep, ret); 
     173      CALL xios_bool_to_logical_0d(ret) 
    169174      xios(field_is_active_hdl) = ret 
    170175       
  • XIOS3/trunk/src/interface/fortran/ifile.F90

    r545 r2620  
    88!   USE IFILEGROUP_ATTR 
    99   USE IDURATION 
     10   USE LOGICAL_BOOL_CONVERSION 
    1011    
    1112   TYPE txios(file) 
     
    4344 
    4445      CALL cxios_file_valid_id(val, idt, len(idt)); 
     46      CALL xios_bool_to_logical_0d(val) 
    4547      xios(is_valid_file) = val 
    4648 
     
    5355 
    5456      CALL cxios_filegroup_valid_id(val, idt, len(idt)); 
     57      CALL xios_bool_to_logical_0d(val) 
    5558      xios(is_valid_filegroup) = val 
    5659 
  • XIOS3/trunk/src/interface/fortran/igenerate_rectilinear_domain.F90

    r786 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE GENERATE_RECTILINEAR_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(generate_rectilinear_domain) 
     
    2425 
    2526      CALL cxios_generate_rectilinear_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_generate_rectilinear_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/igrid.F90

    r501 r2620  
    77!   USE IGRID_ATTR 
    88!   USE IGRIDGROUP_ATTR 
     9   USE LOGICAL_BOOL_CONVERSION 
    910    
    1011   TYPE txios(grid) 
     
    4344 
    4445      CALL cxios_grid_valid_id(val, idt, len(idt)); 
     46      CALL xios_bool_to_logical_0d(val) 
    4547      xios(is_valid_grid) = val 
    4648 
     
    5355 
    5456      CALL cxios_gridgroup_valid_id(val, idt, len(idt)); 
     57      CALL xios_bool_to_logical_0d(val) 
    5558      xios(is_valid_gridgroup) = val 
    5659 
  • XIOS3/trunk/src/interface/fortran/iinterpolate_axis.F90

    r786 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE INTERPOLATE_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(interpolate_axis) 
     
    2425 
    2526      CALL cxios_interpolate_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_interpolate_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iinterpolate_domain.F90

    r786 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE INTERPOLATE_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(interpolate_domain) 
     
    2425 
    2526      CALL cxios_interpolate_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_interpolate_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iinverse_axis.F90

    r786 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE INVERSE_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(inverse_axis) 
     
    2425 
    2526      CALL cxios_inverse_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_inverse_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/imem_checker.F90

    r2418 r2620  
    33MODULE IMEM_CHECKER 
    44   USE, INTRINSIC :: ISO_C_BINDING 
     5   USE LOGICAL_BOOL_CONVERSION 
    56    
    67   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
     
    4041      finalize_=.FALSE. 
    4142      IF (PRESENT(finalize)) finalize_ = finalize 
     43      CALL xios_logical_to_bool_0d(finalize_) 
    4244      CALL cxios_mem_checker_log(mem_id, len(mem_id), finalize_) 
    4345 
  • XIOS3/trunk/src/interface/fortran/iredistribute_axis.F90

    r2616 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDISTRIBUTE_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(redistribute_axis) 
     
    2425 
    2526      CALL cxios_redistribute_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_redistribute_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iredistribute_domain.F90

    r2616 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDISTRIBUTE_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(redistribute_domain) 
     
    2425 
    2526      CALL cxios_redistribute_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_redistribute_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iredistribute_scalar.F90

    r2616 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDISTRIBUTE_SCALAR_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(redistribute_scalar) 
     
    2425 
    2526      CALL cxios_redistribute_scalar_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_redistribute_scalar) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/ireduce_axis_to_axis.F90

    r1492 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDUCE_AXIS_TO_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(reduce_axis_to_axis) 
     
    2425 
    2526      CALL cxios_reduce_axis_to_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_reduce_axis_to_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/ireduce_axis_to_scalar.F90

    r891 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDUCE_AXIS_TO_SCALAR_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(reduce_axis_to_scalar) 
     
    2425 
    2526      CALL cxios_reduce_axis_to_scalar_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_reduce_axis_to_scalar) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/ireduce_domain_to_axis.F90

    r981 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDUCE_DOMAIN_TO_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(reduce_domain_to_axis) 
     
    2425 
    2526      CALL cxios_reduce_domain_to_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_reduce_domain_to_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/ireduce_domain_to_scalar.F90

    r981 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDUCE_DOMAIN_TO_SCALAR_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(reduce_domain_to_scalar) 
     
    2425 
    2526      CALL cxios_reduce_domain_to_scalar_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_reduce_domain_to_scalar) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/ireduce_scalar_to_scalar.F90

    r1492 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REDUCE_SCALAR_TO_SCALAR_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(reduce_scalar_to_scalar) 
     
    2425 
    2526      CALL cxios_reduce_scalar_to_scalar_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_reduce_scalar_to_scalar) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/ireorder_domain.F90

    r1492 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE REORDER_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(reorder_domain) 
     
    2425 
    2526      CALL cxios_reorder_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_reorder_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/iscalar.F90

    r891 r2620  
    55   USE SCALAR_INTERFACE 
    66   USE SCALARGROUP_INTERFACE 
     7   USE LOGICAL_BOOL_CONVERSION 
    78 
    89   TYPE txios(scalar) 
     
    4041 
    4142      CALL cxios_scalar_valid_id(val, idt, len(idt)) 
     43      CALL xios_bool_to_logical_0d(val) 
    4244      xios(is_valid_scalar) = val 
    4345 
     
    5052 
    5153      CALL cxios_scalargroup_valid_id(val, idt, len(idt)) 
     54      CALL xios_bool_to_logical_0d(val) 
    5255      xios(is_valid_scalargroup) = val 
    5356 
  • XIOS3/trunk/src/interface/fortran/itemporal_splitting.F90

    r1492 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE TEMPORAL_SPLITTING_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(temporal_splitting) 
     
    2425 
    2526      CALL cxios_temporal_splitting_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_temporal_splitting) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/itimer.F90

    r1754 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE TIMER_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   CONTAINS ! Fonctions disponibles pour les utilisateurs. 
     
    1516      trace_=.TRUE. 
    1617      IF (PRESENT(trace)) trace_ = trace 
     18      CALL xios_logical_to_bool_0d(trace_) 
    1719      CALL cxios_timer_resume(timer_id, len(timer_id),trace_)             
    1820 
     
    2729      trace_=.TRUE. 
    2830      IF (PRESENT(trace)) trace_ = trace 
     31      CALL xios_logical_to_bool_0d(trace_) 
    2932      CALL cxios_timer_suspend(timer_id, len(timer_id),trace_)             
    3033 
  • XIOS3/trunk/src/interface/fortran/ivariable.F90

    r501 r2620  
    55   USE VARIABLE_INTERFACE 
    66   USE VARIABLEGROUP_INTERFACE 
     7   USE LOGICAL_BOOL_CONVERSION 
    78    
    89   TYPE txios(variable) 
     
    4041       
    4142      CALL cxios_variable_valid_id(val, idt, len(idt)) 
     43      CALL xios_bool_to_logical_0d(val) 
    4244      xios(is_valid_variable) = val 
    4345 
     
    5052 
    5153      CALL cxios_variablegroup_valid_id(val, idt, len(idt)) 
     54      CALL xios_bool_to_logical_0d(val) 
    5255      xios(is_valid_variablegroup) = val 
    5356 
  • XIOS3/trunk/src/interface/fortran/izoom_axis.F90

    r784 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE ZOOM_AXIS_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(zoom_axis) 
     
    2425 
    2526      CALL cxios_zoom_axis_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_zoom_axis) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran/izoom_domain.F90

    r784 r2620  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE ZOOM_DOMAIN_INTERFACE 
     6   USE LOGICAL_BOOL_CONVERSION 
    67 
    78   TYPE txios(zoom_domain) 
     
    2425 
    2526      CALL cxios_zoom_domain_valid_id(val, idt, len(idt)) 
     27      CALL xios_bool_to_logical_0d(val) 
    2628      xios(is_valid_zoom_domain) = val 
    2729 
  • XIOS3/trunk/src/interface/fortran_attr/iaxis_attr.F90

    r2616 r2620  
    88  USE iaxis 
    99  USE axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    237238        ALLOCATE(mask__tmp(SIZE(mask_,1))) 
    238239        mask__tmp = mask_ 
     240        CALL xios_logical_to_bool_1d(mask__tmp, SHAPE(mask__tmp)) 
    239241        CALL cxios_set_axis_mask & 
    240242      (axis_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     
    515517        CALL cxios_get_axis_mask & 
    516518      (axis_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     519        CALL xios_bool_to_logical_1d(mask__tmp, SHAPE(mask__tmp)) 
    517520        mask_ = mask__tmp 
    518521      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iaxisgroup_attr.F90

    r2616 r2620  
    88  USE iaxis 
    99  USE axisgroup_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    245246        ALLOCATE(mask__tmp(SIZE(mask_,1))) 
    246247        mask__tmp = mask_ 
     248        CALL xios_logical_to_bool_1d(mask__tmp, SHAPE(mask__tmp)) 
    247249        CALL cxios_set_axisgroup_mask & 
    248250      (axisgroup_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     
    531533        CALL cxios_get_axisgroup_mask & 
    532534      (axisgroup_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     535        CALL xios_bool_to_logical_1d(mask__tmp, SHAPE(mask__tmp)) 
    533536        mask_ = mask__tmp 
    534537      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/icalendar_wrapper_attr.F90

    r1492 r2620  
    88  USE icalendar_wrapper 
    99  USE calendar_wrapper_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/icompute_connectivity_domain_attr.F90

    r966 r2620  
    88  USE icompute_connectivity_domain 
    99  USE compute_connectivity_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/icontext_attr.F90

    r2616 r2620  
    88  USE icontext 
    99  USE context_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    8687      IF (PRESENT(attached_mode_)) THEN 
    8788        attached_mode__tmp = attached_mode_ 
     89        CALL xios_logical_to_bool_0d(attached_mode__tmp) 
    8890        CALL cxios_set_context_attached_mode & 
    8991      (context_hdl%daddr, attached_mode__tmp) 
     
    122124      IF (PRESENT(default_using_server2_)) THEN 
    123125        default_using_server2__tmp = default_using_server2_ 
     126        CALL xios_logical_to_bool_0d(default_using_server2__tmp) 
    124127        CALL cxios_set_context_default_using_server2 & 
    125128      (context_hdl%daddr, default_using_server2__tmp) 
     
    214217        CALL cxios_get_context_attached_mode & 
    215218      (context_hdl%daddr, attached_mode__tmp) 
     219        CALL xios_bool_to_logical_0d(attached_mode__tmp) 
    216220        attached_mode_ = attached_mode__tmp 
    217221      ENDIF 
     
    250254        CALL cxios_get_context_default_using_server2 & 
    251255      (context_hdl%daddr, default_using_server2__tmp) 
     256        CALL xios_bool_to_logical_0d(default_using_server2__tmp) 
    252257        default_using_server2_ = default_using_server2__tmp 
    253258      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/idomain_attr.F90

    r2616 r2620  
    88  USE idomain 
    99  USE domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    379380        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1))) 
    380381        mask_1d__tmp = mask_1d_ 
     382        CALL xios_logical_to_bool_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    381383        CALL cxios_set_domain_mask_1d & 
    382384      (domain_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     
    386388        ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2))) 
    387389        mask_2d__tmp = mask_2d_ 
     390        CALL xios_logical_to_bool_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    388391        CALL cxios_set_domain_mask_2d & 
    389392      (domain_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     
    816819        CALL cxios_get_domain_mask_1d & 
    817820      (domain_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     821        CALL xios_bool_to_logical_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    818822        mask_1d_ = mask_1d__tmp 
    819823      ENDIF 
     
    823827        CALL cxios_get_domain_mask_2d & 
    824828      (domain_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     829        CALL xios_bool_to_logical_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    825830        mask_2d_ = mask_2d__tmp 
    826831      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/idomaingroup_attr.F90

    r2616 r2620  
    88  USE idomain 
    99  USE domaingroup_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    388389        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1))) 
    389390        mask_1d__tmp = mask_1d_ 
     391        CALL xios_logical_to_bool_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    390392        CALL cxios_set_domaingroup_mask_1d & 
    391393      (domaingroup_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     
    395397        ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2))) 
    396398        mask_2d__tmp = mask_2d_ 
     399        CALL xios_logical_to_bool_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    397400        CALL cxios_set_domaingroup_mask_2d & 
    398401      (domaingroup_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     
    834837        CALL cxios_get_domaingroup_mask_1d & 
    835838      (domaingroup_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     839        CALL xios_bool_to_logical_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    836840        mask_1d_ = mask_1d__tmp 
    837841      ENDIF 
     
    841845        CALL cxios_get_domaingroup_mask_2d & 
    842846      (domaingroup_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     847        CALL xios_bool_to_logical_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    843848        mask_2d_ = mask_2d__tmp 
    844849      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iduplicate_scalar_to_axis_attr.F90

    r1492 r2620  
    88  USE iduplicate_scalar_to_axis 
    99  USE duplicate_scalar_to_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/iexpand_domain_attr.F90

    r1158 r2620  
    88  USE iexpand_domain 
    99  USE expand_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    6263      IF (PRESENT(i_periodic_)) THEN 
    6364        i_periodic__tmp = i_periodic_ 
     65        CALL xios_logical_to_bool_0d(i_periodic__tmp) 
    6466        CALL cxios_set_expand_domain_i_periodic & 
    6567      (expand_domain_hdl%daddr, i_periodic__tmp) 
     
    6870      IF (PRESENT(j_periodic_)) THEN 
    6971        j_periodic__tmp = j_periodic_ 
     72        CALL xios_logical_to_bool_0d(j_periodic__tmp) 
    7073        CALL cxios_set_expand_domain_j_periodic & 
    7174      (expand_domain_hdl%daddr, j_periodic__tmp) 
     
    136139        CALL cxios_get_expand_domain_i_periodic & 
    137140      (expand_domain_hdl%daddr, i_periodic__tmp) 
     141        CALL xios_bool_to_logical_0d(i_periodic__tmp) 
    138142        i_periodic_ = i_periodic__tmp 
    139143      ENDIF 
     
    142146        CALL cxios_get_expand_domain_j_periodic & 
    143147      (expand_domain_hdl%daddr, j_periodic__tmp) 
     148        CALL xios_bool_to_logical_0d(j_periodic__tmp) 
    144149        j_periodic_ = j_periodic__tmp 
    145150      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iextract_axis_to_scalar_attr.F90

    r981 r2620  
    88  USE iextract_axis_to_scalar 
    99  USE extract_axis_to_scalar_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/iextract_domain_attr.F90

    r2338 r2620  
    88  USE iextract_domain 
    99  USE extract_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/iextract_domain_to_axis_attr.F90

    r981 r2620  
    88  USE iextract_domain_to_axis 
    99  USE extract_domain_to_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/ifield_attr.F90

    r2617 r2620  
    88  USE ifield 
    99  USE field_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    214215      IF (PRESENT(build_workflow_graph_)) THEN 
    215216        build_workflow_graph__tmp = build_workflow_graph_ 
     217        CALL xios_logical_to_bool_0d(build_workflow_graph__tmp) 
    216218        CALL cxios_set_field_build_workflow_graph & 
    217219      (field_hdl%daddr, build_workflow_graph__tmp) 
     
    230232      IF (PRESENT(check_if_active_)) THEN 
    231233        check_if_active__tmp = check_if_active_ 
     234        CALL xios_logical_to_bool_0d(check_if_active__tmp) 
    232235        CALL cxios_set_field_check_if_active & 
    233236      (field_hdl%daddr, check_if_active__tmp) 
     
    261264      IF (PRESENT(conversion_by_netcdf_)) THEN 
    262265        conversion_by_netcdf__tmp = conversion_by_netcdf_ 
     266        CALL xios_logical_to_bool_0d(conversion_by_netcdf__tmp) 
    263267        CALL cxios_set_field_conversion_by_netcdf & 
    264268      (field_hdl%daddr, conversion_by_netcdf__tmp) 
     
    272276      IF (PRESENT(detect_missing_value_)) THEN 
    273277        detect_missing_value__tmp = detect_missing_value_ 
     278        CALL xios_logical_to_bool_0d(detect_missing_value__tmp) 
    274279        CALL cxios_set_field_detect_missing_value & 
    275280      (field_hdl%daddr, detect_missing_value__tmp) 
     
    283288      IF (PRESENT(enabled_)) THEN 
    284289        enabled__tmp = enabled_ 
     290        CALL xios_logical_to_bool_0d(enabled__tmp) 
    285291        CALL cxios_set_field_enabled & 
    286292      (field_hdl%daddr, enabled__tmp) 
     
    319325      IF (PRESENT(indexed_output_)) THEN 
    320326        indexed_output__tmp = indexed_output_ 
     327        CALL xios_logical_to_bool_0d(indexed_output__tmp) 
    321328        CALL cxios_set_field_indexed_output & 
    322329      (field_hdl%daddr, indexed_output__tmp) 
     
    350357      IF (PRESENT(read_access_)) THEN 
    351358        read_access__tmp = read_access_ 
     359        CALL xios_logical_to_bool_0d(read_access__tmp) 
    352360        CALL cxios_set_field_read_access & 
    353361      (field_hdl%daddr, read_access__tmp) 
     
    371379      IF (PRESENT(ts_enabled_)) THEN 
    372380        ts_enabled__tmp = ts_enabled_ 
     381        CALL xios_logical_to_bool_0d(ts_enabled__tmp) 
    373382        CALL cxios_set_field_ts_enabled & 
    374383      (field_hdl%daddr, ts_enabled__tmp) 
     
    601610        CALL cxios_get_field_build_workflow_graph & 
    602611      (field_hdl%daddr, build_workflow_graph__tmp) 
     612        CALL xios_bool_to_logical_0d(build_workflow_graph__tmp) 
    603613        build_workflow_graph_ = build_workflow_graph__tmp 
    604614      ENDIF 
     
    617627        CALL cxios_get_field_check_if_active & 
    618628      (field_hdl%daddr, check_if_active__tmp) 
     629        CALL xios_bool_to_logical_0d(check_if_active__tmp) 
    619630        check_if_active_ = check_if_active__tmp 
    620631      ENDIF 
     
    648659        CALL cxios_get_field_conversion_by_netcdf & 
    649660      (field_hdl%daddr, conversion_by_netcdf__tmp) 
     661        CALL xios_bool_to_logical_0d(conversion_by_netcdf__tmp) 
    650662        conversion_by_netcdf_ = conversion_by_netcdf__tmp 
    651663      ENDIF 
     
    659671        CALL cxios_get_field_detect_missing_value & 
    660672      (field_hdl%daddr, detect_missing_value__tmp) 
     673        CALL xios_bool_to_logical_0d(detect_missing_value__tmp) 
    661674        detect_missing_value_ = detect_missing_value__tmp 
    662675      ENDIF 
     
    670683        CALL cxios_get_field_enabled & 
    671684      (field_hdl%daddr, enabled__tmp) 
     685        CALL xios_bool_to_logical_0d(enabled__tmp) 
    672686        enabled_ = enabled__tmp 
    673687      ENDIF 
     
    706720        CALL cxios_get_field_indexed_output & 
    707721      (field_hdl%daddr, indexed_output__tmp) 
     722        CALL xios_bool_to_logical_0d(indexed_output__tmp) 
    708723        indexed_output_ = indexed_output__tmp 
    709724      ENDIF 
     
    737752        CALL cxios_get_field_read_access & 
    738753      (field_hdl%daddr, read_access__tmp) 
     754        CALL xios_bool_to_logical_0d(read_access__tmp) 
    739755        read_access_ = read_access__tmp 
    740756      ENDIF 
     
    758774        CALL cxios_get_field_ts_enabled & 
    759775      (field_hdl%daddr, ts_enabled__tmp) 
     776        CALL xios_bool_to_logical_0d(ts_enabled__tmp) 
    760777        ts_enabled_ = ts_enabled__tmp 
    761778      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90

    r2617 r2620  
    88  USE ifield 
    99  USE fieldgroup_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    217218      IF (PRESENT(build_workflow_graph_)) THEN 
    218219        build_workflow_graph__tmp = build_workflow_graph_ 
     220        CALL xios_logical_to_bool_0d(build_workflow_graph__tmp) 
    219221        CALL cxios_set_fieldgroup_build_workflow_graph & 
    220222      (fieldgroup_hdl%daddr, build_workflow_graph__tmp) 
     
    233235      IF (PRESENT(check_if_active_)) THEN 
    234236        check_if_active__tmp = check_if_active_ 
     237        CALL xios_logical_to_bool_0d(check_if_active__tmp) 
    235238        CALL cxios_set_fieldgroup_check_if_active & 
    236239      (fieldgroup_hdl%daddr, check_if_active__tmp) 
     
    264267      IF (PRESENT(conversion_by_netcdf_)) THEN 
    265268        conversion_by_netcdf__tmp = conversion_by_netcdf_ 
     269        CALL xios_logical_to_bool_0d(conversion_by_netcdf__tmp) 
    266270        CALL cxios_set_fieldgroup_conversion_by_netcdf & 
    267271      (fieldgroup_hdl%daddr, conversion_by_netcdf__tmp) 
     
    275279      IF (PRESENT(detect_missing_value_)) THEN 
    276280        detect_missing_value__tmp = detect_missing_value_ 
     281        CALL xios_logical_to_bool_0d(detect_missing_value__tmp) 
    277282        CALL cxios_set_fieldgroup_detect_missing_value & 
    278283      (fieldgroup_hdl%daddr, detect_missing_value__tmp) 
     
    286291      IF (PRESENT(enabled_)) THEN 
    287292        enabled__tmp = enabled_ 
     293        CALL xios_logical_to_bool_0d(enabled__tmp) 
    288294        CALL cxios_set_fieldgroup_enabled & 
    289295      (fieldgroup_hdl%daddr, enabled__tmp) 
     
    327333      IF (PRESENT(indexed_output_)) THEN 
    328334        indexed_output__tmp = indexed_output_ 
     335        CALL xios_logical_to_bool_0d(indexed_output__tmp) 
    329336        CALL cxios_set_fieldgroup_indexed_output & 
    330337      (fieldgroup_hdl%daddr, indexed_output__tmp) 
     
    358365      IF (PRESENT(read_access_)) THEN 
    359366        read_access__tmp = read_access_ 
     367        CALL xios_logical_to_bool_0d(read_access__tmp) 
    360368        CALL cxios_set_fieldgroup_read_access & 
    361369      (fieldgroup_hdl%daddr, read_access__tmp) 
     
    379387      IF (PRESENT(ts_enabled_)) THEN 
    380388        ts_enabled__tmp = ts_enabled_ 
     389        CALL xios_logical_to_bool_0d(ts_enabled__tmp) 
    381390        CALL cxios_set_fieldgroup_ts_enabled & 
    382391      (fieldgroup_hdl%daddr, ts_enabled__tmp) 
     
    612621        CALL cxios_get_fieldgroup_build_workflow_graph & 
    613622      (fieldgroup_hdl%daddr, build_workflow_graph__tmp) 
     623        CALL xios_bool_to_logical_0d(build_workflow_graph__tmp) 
    614624        build_workflow_graph_ = build_workflow_graph__tmp 
    615625      ENDIF 
     
    628638        CALL cxios_get_fieldgroup_check_if_active & 
    629639      (fieldgroup_hdl%daddr, check_if_active__tmp) 
     640        CALL xios_bool_to_logical_0d(check_if_active__tmp) 
    630641        check_if_active_ = check_if_active__tmp 
    631642      ENDIF 
     
    659670        CALL cxios_get_fieldgroup_conversion_by_netcdf & 
    660671      (fieldgroup_hdl%daddr, conversion_by_netcdf__tmp) 
     672        CALL xios_bool_to_logical_0d(conversion_by_netcdf__tmp) 
    661673        conversion_by_netcdf_ = conversion_by_netcdf__tmp 
    662674      ENDIF 
     
    670682        CALL cxios_get_fieldgroup_detect_missing_value & 
    671683      (fieldgroup_hdl%daddr, detect_missing_value__tmp) 
     684        CALL xios_bool_to_logical_0d(detect_missing_value__tmp) 
    672685        detect_missing_value_ = detect_missing_value__tmp 
    673686      ENDIF 
     
    681694        CALL cxios_get_fieldgroup_enabled & 
    682695      (fieldgroup_hdl%daddr, enabled__tmp) 
     696        CALL xios_bool_to_logical_0d(enabled__tmp) 
    683697        enabled_ = enabled__tmp 
    684698      ENDIF 
     
    722736        CALL cxios_get_fieldgroup_indexed_output & 
    723737      (fieldgroup_hdl%daddr, indexed_output__tmp) 
     738        CALL xios_bool_to_logical_0d(indexed_output__tmp) 
    724739        indexed_output_ = indexed_output__tmp 
    725740      ENDIF 
     
    753768        CALL cxios_get_fieldgroup_read_access & 
    754769      (fieldgroup_hdl%daddr, read_access__tmp) 
     770        CALL xios_bool_to_logical_0d(read_access__tmp) 
    755771        read_access_ = read_access__tmp 
    756772      ENDIF 
     
    774790        CALL cxios_get_fieldgroup_ts_enabled & 
    775791      (fieldgroup_hdl%daddr, ts_enabled__tmp) 
     792        CALL xios_bool_to_logical_0d(ts_enabled__tmp) 
    776793        ts_enabled_ = ts_enabled__tmp 
    777794      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/ifile_attr.F90

    r2616 r2620  
    88  USE ifile 
    99  USE file_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    207208      IF (PRESENT(append_)) THEN 
    208209        append__tmp = append_ 
     210        CALL xios_logical_to_bool_0d(append__tmp) 
    209211        CALL cxios_set_file_append & 
    210212      (file_hdl%daddr, append__tmp) 
     
    233235      IF (PRESENT(cyclic_)) THEN 
    234236        cyclic__tmp = cyclic_ 
     237        CALL xios_logical_to_bool_0d(cyclic__tmp) 
    235238        CALL cxios_set_file_cyclic & 
    236239      (file_hdl%daddr, cyclic__tmp) 
     
    244247      IF (PRESENT(enabled_)) THEN 
    245248        enabled__tmp = enabled_ 
     249        CALL xios_logical_to_bool_0d(enabled__tmp) 
    246250        CALL cxios_set_file_enabled & 
    247251      (file_hdl%daddr, enabled__tmp) 
     
    310314      IF (PRESENT(read_metadata_par_)) THEN 
    311315        read_metadata_par__tmp = read_metadata_par_ 
     316        CALL xios_logical_to_bool_0d(read_metadata_par__tmp) 
    312317        CALL cxios_set_file_read_metadata_par & 
    313318      (file_hdl%daddr, read_metadata_par__tmp) 
     
    396401      IF (PRESENT(using_server2_)) THEN 
    397402        using_server2__tmp = using_server2_ 
     403        CALL xios_logical_to_bool_0d(using_server2__tmp) 
    398404        CALL cxios_set_file_using_server2 & 
    399405      (file_hdl%daddr, using_server2__tmp) 
     
    614620        CALL cxios_get_file_append & 
    615621      (file_hdl%daddr, append__tmp) 
     622        CALL xios_bool_to_logical_0d(append__tmp) 
    616623        append_ = append__tmp 
    617624      ENDIF 
     
    640647        CALL cxios_get_file_cyclic & 
    641648      (file_hdl%daddr, cyclic__tmp) 
     649        CALL xios_bool_to_logical_0d(cyclic__tmp) 
    642650        cyclic_ = cyclic__tmp 
    643651      ENDIF 
     
    651659        CALL cxios_get_file_enabled & 
    652660      (file_hdl%daddr, enabled__tmp) 
     661        CALL xios_bool_to_logical_0d(enabled__tmp) 
    653662        enabled_ = enabled__tmp 
    654663      ENDIF 
     
    717726        CALL cxios_get_file_read_metadata_par & 
    718727      (file_hdl%daddr, read_metadata_par__tmp) 
     728        CALL xios_bool_to_logical_0d(read_metadata_par__tmp) 
    719729        read_metadata_par_ = read_metadata_par__tmp 
    720730      ENDIF 
     
    803813        CALL cxios_get_file_using_server2 & 
    804814      (file_hdl%daddr, using_server2__tmp) 
     815        CALL xios_bool_to_logical_0d(using_server2__tmp) 
    805816        using_server2_ = using_server2__tmp 
    806817      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/ifilegroup_attr.F90

    r2616 r2620  
    88  USE ifile 
    99  USE filegroup_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    211212      IF (PRESENT(append_)) THEN 
    212213        append__tmp = append_ 
     214        CALL xios_logical_to_bool_0d(append__tmp) 
    213215        CALL cxios_set_filegroup_append & 
    214216      (filegroup_hdl%daddr, append__tmp) 
     
    237239      IF (PRESENT(cyclic_)) THEN 
    238240        cyclic__tmp = cyclic_ 
     241        CALL xios_logical_to_bool_0d(cyclic__tmp) 
    239242        CALL cxios_set_filegroup_cyclic & 
    240243      (filegroup_hdl%daddr, cyclic__tmp) 
     
    248251      IF (PRESENT(enabled_)) THEN 
    249252        enabled__tmp = enabled_ 
     253        CALL xios_logical_to_bool_0d(enabled__tmp) 
    250254        CALL cxios_set_filegroup_enabled & 
    251255      (filegroup_hdl%daddr, enabled__tmp) 
     
    319323      IF (PRESENT(read_metadata_par_)) THEN 
    320324        read_metadata_par__tmp = read_metadata_par_ 
     325        CALL xios_logical_to_bool_0d(read_metadata_par__tmp) 
    321326        CALL cxios_set_filegroup_read_metadata_par & 
    322327      (filegroup_hdl%daddr, read_metadata_par__tmp) 
     
    405410      IF (PRESENT(using_server2_)) THEN 
    406411        using_server2__tmp = using_server2_ 
     412        CALL xios_logical_to_bool_0d(using_server2__tmp) 
    407413        CALL cxios_set_filegroup_using_server2 & 
    408414      (filegroup_hdl%daddr, using_server2__tmp) 
     
    627633        CALL cxios_get_filegroup_append & 
    628634      (filegroup_hdl%daddr, append__tmp) 
     635        CALL xios_bool_to_logical_0d(append__tmp) 
    629636        append_ = append__tmp 
    630637      ENDIF 
     
    653660        CALL cxios_get_filegroup_cyclic & 
    654661      (filegroup_hdl%daddr, cyclic__tmp) 
     662        CALL xios_bool_to_logical_0d(cyclic__tmp) 
    655663        cyclic_ = cyclic__tmp 
    656664      ENDIF 
     
    664672        CALL cxios_get_filegroup_enabled & 
    665673      (filegroup_hdl%daddr, enabled__tmp) 
     674        CALL xios_bool_to_logical_0d(enabled__tmp) 
    666675        enabled_ = enabled__tmp 
    667676      ENDIF 
     
    735744        CALL cxios_get_filegroup_read_metadata_par & 
    736745      (filegroup_hdl%daddr, read_metadata_par__tmp) 
     746        CALL xios_bool_to_logical_0d(read_metadata_par__tmp) 
    737747        read_metadata_par_ = read_metadata_par__tmp 
    738748      ENDIF 
     
    821831        CALL cxios_get_filegroup_using_server2 & 
    822832      (filegroup_hdl%daddr, using_server2__tmp) 
     833        CALL xios_bool_to_logical_0d(using_server2__tmp) 
    823834        using_server2_ = using_server2__tmp 
    824835      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/igenerate_rectilinear_domain_attr.F90

    r966 r2620  
    88  USE igenerate_rectilinear_domain 
    99  USE generate_rectilinear_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/igrid_attr.F90

    r1492 r2620  
    88  USE igrid 
    99  USE grid_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    117118        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1))) 
    118119        mask_0d__tmp = mask_0d_ 
     120        CALL xios_logical_to_bool_1d(mask_0d__tmp, SHAPE(mask_0d__tmp)) 
    119121        CALL cxios_set_grid_mask_0d & 
    120122      (grid_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
     
    124126        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1))) 
    125127        mask_1d__tmp = mask_1d_ 
     128        CALL xios_logical_to_bool_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    126129        CALL cxios_set_grid_mask_1d & 
    127130      (grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     
    131134        ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2))) 
    132135        mask_2d__tmp = mask_2d_ 
     136        CALL xios_logical_to_bool_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    133137        CALL cxios_set_grid_mask_2d & 
    134138      (grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     
    138142        ALLOCATE(mask_3d__tmp(SIZE(mask_3d_,1), SIZE(mask_3d_,2), SIZE(mask_3d_,3))) 
    139143        mask_3d__tmp = mask_3d_ 
     144        CALL xios_logical_to_bool_3d(mask_3d__tmp, SHAPE(mask_3d__tmp)) 
    140145        CALL cxios_set_grid_mask_3d & 
    141146      (grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_)) 
     
    146151       SIZE(mask_4d_,4))) 
    147152        mask_4d__tmp = mask_4d_ 
     153        CALL xios_logical_to_bool_4d(mask_4d__tmp, SHAPE(mask_4d__tmp)) 
    148154        CALL cxios_set_grid_mask_4d & 
    149155      (grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     
    154160       SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
    155161        mask_5d__tmp = mask_5d_ 
     162        CALL xios_logical_to_bool_5d(mask_5d__tmp, SHAPE(mask_5d__tmp)) 
    156163        CALL cxios_set_grid_mask_5d & 
    157164      (grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     
    162169       SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
    163170        mask_6d__tmp = mask_6d_ 
     171        CALL xios_logical_to_bool_6d(mask_6d__tmp, SHAPE(mask_6d__tmp)) 
    164172        CALL cxios_set_grid_mask_6d & 
    165173      (grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     
    171179       SIZE(mask_7d_,7))) 
    172180        mask_7d__tmp = mask_7d_ 
     181        CALL xios_logical_to_bool_7d(mask_7d__tmp, SHAPE(mask_7d__tmp)) 
    173182        CALL cxios_set_grid_mask_7d & 
    174183      (grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     
    289298        CALL cxios_get_grid_mask_0d & 
    290299      (grid_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
     300        CALL xios_bool_to_logical_1d(mask_0d__tmp, SHAPE(mask_0d__tmp)) 
    291301        mask_0d_ = mask_0d__tmp 
    292302      ENDIF 
     
    296306        CALL cxios_get_grid_mask_1d & 
    297307      (grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     308        CALL xios_bool_to_logical_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    298309        mask_1d_ = mask_1d__tmp 
    299310      ENDIF 
     
    303314        CALL cxios_get_grid_mask_2d & 
    304315      (grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     316        CALL xios_bool_to_logical_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    305317        mask_2d_ = mask_2d__tmp 
    306318      ENDIF 
     
    310322        CALL cxios_get_grid_mask_3d & 
    311323      (grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_)) 
     324        CALL xios_bool_to_logical_3d(mask_3d__tmp, SHAPE(mask_3d__tmp)) 
    312325        mask_3d_ = mask_3d__tmp 
    313326      ENDIF 
     
    318331        CALL cxios_get_grid_mask_4d & 
    319332      (grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     333        CALL xios_bool_to_logical_4d(mask_4d__tmp, SHAPE(mask_4d__tmp)) 
    320334        mask_4d_ = mask_4d__tmp 
    321335      ENDIF 
     
    326340        CALL cxios_get_grid_mask_5d & 
    327341      (grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     342        CALL xios_bool_to_logical_5d(mask_5d__tmp, SHAPE(mask_5d__tmp)) 
    328343        mask_5d_ = mask_5d__tmp 
    329344      ENDIF 
     
    334349        CALL cxios_get_grid_mask_6d & 
    335350      (grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     351        CALL xios_bool_to_logical_6d(mask_6d__tmp, SHAPE(mask_6d__tmp)) 
    336352        mask_6d_ = mask_6d__tmp 
    337353      ENDIF 
     
    343359        CALL cxios_get_grid_mask_7d & 
    344360      (grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     361        CALL xios_bool_to_logical_7d(mask_7d__tmp, SHAPE(mask_7d__tmp)) 
    345362        mask_7d_ = mask_7d__tmp 
    346363      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/igridgroup_attr.F90

    r1492 r2620  
    88  USE igrid 
    99  USE gridgroup_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    125126        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1))) 
    126127        mask_0d__tmp = mask_0d_ 
     128        CALL xios_logical_to_bool_1d(mask_0d__tmp, SHAPE(mask_0d__tmp)) 
    127129        CALL cxios_set_gridgroup_mask_0d & 
    128130      (gridgroup_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
     
    132134        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1))) 
    133135        mask_1d__tmp = mask_1d_ 
     136        CALL xios_logical_to_bool_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    134137        CALL cxios_set_gridgroup_mask_1d & 
    135138      (gridgroup_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     
    139142        ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2))) 
    140143        mask_2d__tmp = mask_2d_ 
     144        CALL xios_logical_to_bool_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    141145        CALL cxios_set_gridgroup_mask_2d & 
    142146      (gridgroup_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     
    146150        ALLOCATE(mask_3d__tmp(SIZE(mask_3d_,1), SIZE(mask_3d_,2), SIZE(mask_3d_,3))) 
    147151        mask_3d__tmp = mask_3d_ 
     152        CALL xios_logical_to_bool_3d(mask_3d__tmp, SHAPE(mask_3d__tmp)) 
    148153        CALL cxios_set_gridgroup_mask_3d & 
    149154      (gridgroup_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_)) 
     
    154159       SIZE(mask_4d_,4))) 
    155160        mask_4d__tmp = mask_4d_ 
     161        CALL xios_logical_to_bool_4d(mask_4d__tmp, SHAPE(mask_4d__tmp)) 
    156162        CALL cxios_set_gridgroup_mask_4d & 
    157163      (gridgroup_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     
    162168       SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
    163169        mask_5d__tmp = mask_5d_ 
     170        CALL xios_logical_to_bool_5d(mask_5d__tmp, SHAPE(mask_5d__tmp)) 
    164171        CALL cxios_set_gridgroup_mask_5d & 
    165172      (gridgroup_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     
    170177       SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
    171178        mask_6d__tmp = mask_6d_ 
     179        CALL xios_logical_to_bool_6d(mask_6d__tmp, SHAPE(mask_6d__tmp)) 
    172180        CALL cxios_set_gridgroup_mask_6d & 
    173181      (gridgroup_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     
    179187       SIZE(mask_7d_,7))) 
    180188        mask_7d__tmp = mask_7d_ 
     189        CALL xios_logical_to_bool_7d(mask_7d__tmp, SHAPE(mask_7d__tmp)) 
    181190        CALL cxios_set_gridgroup_mask_7d & 
    182191      (gridgroup_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     
    305314        CALL cxios_get_gridgroup_mask_0d & 
    306315      (gridgroup_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
     316        CALL xios_bool_to_logical_1d(mask_0d__tmp, SHAPE(mask_0d__tmp)) 
    307317        mask_0d_ = mask_0d__tmp 
    308318      ENDIF 
     
    312322        CALL cxios_get_gridgroup_mask_1d & 
    313323      (gridgroup_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 
     324        CALL xios_bool_to_logical_1d(mask_1d__tmp, SHAPE(mask_1d__tmp)) 
    314325        mask_1d_ = mask_1d__tmp 
    315326      ENDIF 
     
    319330        CALL cxios_get_gridgroup_mask_2d & 
    320331      (gridgroup_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 
     332        CALL xios_bool_to_logical_2d(mask_2d__tmp, SHAPE(mask_2d__tmp)) 
    321333        mask_2d_ = mask_2d__tmp 
    322334      ENDIF 
     
    326338        CALL cxios_get_gridgroup_mask_3d & 
    327339      (gridgroup_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_)) 
     340        CALL xios_bool_to_logical_3d(mask_3d__tmp, SHAPE(mask_3d__tmp)) 
    328341        mask_3d_ = mask_3d__tmp 
    329342      ENDIF 
     
    334347        CALL cxios_get_gridgroup_mask_4d & 
    335348      (gridgroup_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     349        CALL xios_bool_to_logical_4d(mask_4d__tmp, SHAPE(mask_4d__tmp)) 
    336350        mask_4d_ = mask_4d__tmp 
    337351      ENDIF 
     
    342356        CALL cxios_get_gridgroup_mask_5d & 
    343357      (gridgroup_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     358        CALL xios_bool_to_logical_5d(mask_5d__tmp, SHAPE(mask_5d__tmp)) 
    344359        mask_5d_ = mask_5d__tmp 
    345360      ENDIF 
     
    350365        CALL cxios_get_gridgroup_mask_6d & 
    351366      (gridgroup_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     367        CALL xios_bool_to_logical_6d(mask_6d__tmp, SHAPE(mask_6d__tmp)) 
    352368        mask_6d_ = mask_6d__tmp 
    353369      ENDIF 
     
    359375        CALL cxios_get_gridgroup_mask_7d & 
    360376      (gridgroup_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     377        CALL xios_bool_to_logical_7d(mask_7d__tmp, SHAPE(mask_7d__tmp)) 
    361378        mask_7d_ = mask_7d__tmp 
    362379      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iinterpolate_axis_attr.F90

    r2338 r2620  
    88  USE iinterpolate_axis 
    99  USE interpolate_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    8586      IF (PRESENT(extrapolate_)) THEN 
    8687        extrapolate__tmp = extrapolate_ 
     88        CALL xios_logical_to_bool_0d(extrapolate__tmp) 
    8789        CALL cxios_set_interpolate_axis_extrapolate & 
    8890      (interpolate_axis_hdl%daddr, extrapolate__tmp) 
     
    176178        CALL cxios_get_interpolate_axis_extrapolate & 
    177179      (interpolate_axis_hdl%daddr, extrapolate__tmp) 
     180        CALL xios_bool_to_logical_0d(extrapolate__tmp) 
    178181        extrapolate_ = extrapolate__tmp 
    179182      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90

    r1626 r2620  
    88  USE iinterpolate_domain 
    99  USE interpolate_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    9192      IF (PRESENT(detect_missing_value_)) THEN 
    9293        detect_missing_value__tmp = detect_missing_value_ 
     94        CALL xios_logical_to_bool_0d(detect_missing_value__tmp) 
    9395        CALL cxios_set_interpolate_domain_detect_missing_value & 
    9496      (interpolate_domain_hdl%daddr, detect_missing_value__tmp) 
     
    107109      IF (PRESENT(quantity_)) THEN 
    108110        quantity__tmp = quantity_ 
     111        CALL xios_logical_to_bool_0d(quantity__tmp) 
    109112        CALL cxios_set_interpolate_domain_quantity & 
    110113      (interpolate_domain_hdl%daddr, quantity__tmp) 
     
    118121      IF (PRESENT(renormalize_)) THEN 
    119122        renormalize__tmp = renormalize_ 
     123        CALL xios_logical_to_bool_0d(renormalize__tmp) 
    120124        CALL cxios_set_interpolate_domain_renormalize & 
    121125      (interpolate_domain_hdl%daddr, renormalize__tmp) 
     
    124128      IF (PRESENT(use_area_)) THEN 
    125129        use_area__tmp = use_area_ 
     130        CALL xios_logical_to_bool_0d(use_area__tmp) 
    126131        CALL cxios_set_interpolate_domain_use_area & 
    127132      (interpolate_domain_hdl%daddr, use_area__tmp) 
     
    135140      IF (PRESENT(write_weight_)) THEN 
    136141        write_weight__tmp = write_weight_ 
     142        CALL xios_logical_to_bool_0d(write_weight__tmp) 
    137143        CALL cxios_set_interpolate_domain_write_weight & 
    138144      (interpolate_domain_hdl%daddr, write_weight__tmp) 
     
    222228        CALL cxios_get_interpolate_domain_detect_missing_value & 
    223229      (interpolate_domain_hdl%daddr, detect_missing_value__tmp) 
     230        CALL xios_bool_to_logical_0d(detect_missing_value__tmp) 
    224231        detect_missing_value_ = detect_missing_value__tmp 
    225232      ENDIF 
     
    238245        CALL cxios_get_interpolate_domain_quantity & 
    239246      (interpolate_domain_hdl%daddr, quantity__tmp) 
     247        CALL xios_bool_to_logical_0d(quantity__tmp) 
    240248        quantity_ = quantity__tmp 
    241249      ENDIF 
     
    249257        CALL cxios_get_interpolate_domain_renormalize & 
    250258      (interpolate_domain_hdl%daddr, renormalize__tmp) 
     259        CALL xios_bool_to_logical_0d(renormalize__tmp) 
    251260        renormalize_ = renormalize__tmp 
    252261      ENDIF 
     
    255264        CALL cxios_get_interpolate_domain_use_area & 
    256265      (interpolate_domain_hdl%daddr, use_area__tmp) 
     266        CALL xios_bool_to_logical_0d(use_area__tmp) 
    257267        use_area_ = use_area__tmp 
    258268      ENDIF 
     
    266276        CALL cxios_get_interpolate_domain_write_weight & 
    267277      (interpolate_domain_hdl%daddr, write_weight__tmp) 
     278        CALL xios_bool_to_logical_0d(write_weight__tmp) 
    268279        write_weight_ = write_weight__tmp 
    269280      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iinverse_axis_attr.F90

    r966 r2620  
    88  USE iinverse_axis 
    99  USE inverse_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/iredistribute_axis_attr.F90

    r2616 r2620  
    88  USE iredistribute_axis 
    99  USE redistribute_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    6263        ALLOCATE(mask__tmp(SIZE(mask_,1))) 
    6364        mask__tmp = mask_ 
     65        CALL xios_logical_to_bool_1d(mask__tmp, SHAPE(mask__tmp)) 
    6466        CALL cxios_set_redistribute_axis_mask & 
    6567      (redistribute_axis_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     
    125127        CALL cxios_get_redistribute_axis_mask & 
    126128      (redistribute_axis_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     129        CALL xios_bool_to_logical_1d(mask__tmp, SHAPE(mask__tmp)) 
    127130        mask_ = mask__tmp 
    128131      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iredistribute_domain_attr.F90

    r2616 r2620  
    88  USE iredistribute_domain 
    99  USE redistribute_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    6263        ALLOCATE(mask__tmp(SIZE(mask_,1))) 
    6364        mask__tmp = mask_ 
     65        CALL xios_logical_to_bool_1d(mask__tmp, SHAPE(mask__tmp)) 
    6466        CALL cxios_set_redistribute_domain_mask & 
    6567      (redistribute_domain_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     
    125127        CALL cxios_get_redistribute_domain_mask & 
    126128      (redistribute_domain_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     129        CALL xios_bool_to_logical_1d(mask__tmp, SHAPE(mask__tmp)) 
    127130        mask_ = mask__tmp 
    128131      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iredistribute_scalar_attr.F90

    r2616 r2620  
    88  USE iredistribute_scalar 
    99  USE redistribute_scalar_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    6263        ALLOCATE(mask__tmp(SIZE(mask_,1))) 
    6364        mask__tmp = mask_ 
     65        CALL xios_logical_to_bool_1d(mask__tmp, SHAPE(mask__tmp)) 
    6466        CALL cxios_set_redistribute_scalar_mask & 
    6567      (redistribute_scalar_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     
    125127        CALL cxios_get_redistribute_scalar_mask & 
    126128      (redistribute_scalar_hdl%daddr, mask__tmp, SHAPE(mask_)) 
     129        CALL xios_bool_to_logical_1d(mask__tmp, SHAPE(mask__tmp)) 
    127130        mask_ = mask__tmp 
    128131      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/ireduce_axis_to_axis_attr.F90

    r1492 r2620  
    88  USE ireduce_axis_to_axis 
    99  USE reduce_axis_to_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/ireduce_axis_to_scalar_attr.F90

    r2338 r2620  
    88  USE ireduce_axis_to_scalar 
    99  USE reduce_axis_to_scalar_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    5354      IF (PRESENT(local_)) THEN 
    5455        local__tmp = local_ 
     56        CALL xios_logical_to_bool_0d(local__tmp) 
    5557        CALL cxios_set_reduce_axis_to_scalar_local & 
    5658      (reduce_axis_to_scalar_hdl%daddr, local__tmp) 
     
    107109        CALL cxios_get_reduce_axis_to_scalar_local & 
    108110      (reduce_axis_to_scalar_hdl%daddr, local__tmp) 
     111        CALL xios_bool_to_logical_0d(local__tmp) 
    109112        local_ = local__tmp 
    110113      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/ireduce_domain_to_axis_attr.F90

    r1492 r2620  
    88  USE ireduce_domain_to_axis 
    99  USE reduce_domain_to_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    6162      IF (PRESENT(local_)) THEN 
    6263        local__tmp = local_ 
     64        CALL xios_logical_to_bool_0d(local__tmp) 
    6365        CALL cxios_set_reduce_domain_to_axis_local & 
    6466      (reduce_domain_to_axis_hdl%daddr, local__tmp) 
     
    123125        CALL cxios_get_reduce_domain_to_axis_local & 
    124126      (reduce_domain_to_axis_hdl%daddr, local__tmp) 
     127        CALL xios_bool_to_logical_0d(local__tmp) 
    125128        local_ = local__tmp 
    126129      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/ireduce_domain_to_scalar_attr.F90

    r1492 r2620  
    88  USE ireduce_domain_to_scalar 
    99  USE reduce_domain_to_scalar_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    5354      IF (PRESENT(local_)) THEN 
    5455        local__tmp = local_ 
     56        CALL xios_logical_to_bool_0d(local__tmp) 
    5557        CALL cxios_set_reduce_domain_to_scalar_local & 
    5658      (reduce_domain_to_scalar_hdl%daddr, local__tmp) 
     
    107109        CALL cxios_get_reduce_domain_to_scalar_local & 
    108110      (reduce_domain_to_scalar_hdl%daddr, local__tmp) 
     111        CALL xios_bool_to_logical_0d(local__tmp) 
    109112        local_ = local__tmp 
    110113      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/ireduce_scalar_to_scalar_attr.F90

    r1492 r2620  
    88  USE ireduce_scalar_to_scalar 
    99  USE reduce_scalar_to_scalar_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/ireorder_domain_attr.F90

    r1492 r2620  
    88  USE ireorder_domain 
    99  USE reorder_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    5960      IF (PRESENT(invert_lat_)) THEN 
    6061        invert_lat__tmp = invert_lat_ 
     62        CALL xios_logical_to_bool_0d(invert_lat__tmp) 
    6163        CALL cxios_set_reorder_domain_invert_lat & 
    6264      (reorder_domain_hdl%daddr, invert_lat__tmp) 
     
    129131        CALL cxios_get_reorder_domain_invert_lat & 
    130132      (reorder_domain_hdl%daddr, invert_lat__tmp) 
     133        CALL xios_bool_to_logical_0d(invert_lat__tmp) 
    131134        invert_lat_ = invert_lat__tmp 
    132135      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iscalar_attr.F90

    r2338 r2620  
    88  USE iscalar 
    99  USE scalar_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    127128      IF (PRESENT(mask_)) THEN 
    128129        mask__tmp = mask_ 
     130        CALL xios_logical_to_bool_0d(mask__tmp) 
    129131        CALL cxios_set_scalar_mask & 
    130132      (scalar_hdl%daddr, mask__tmp) 
     
    290292        CALL cxios_get_scalar_mask & 
    291293      (scalar_hdl%daddr, mask__tmp) 
     294        CALL xios_bool_to_logical_0d(mask__tmp) 
    292295        mask_ = mask__tmp 
    293296      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/iscalargroup_attr.F90

    r2338 r2620  
    88  USE iscalar 
    99  USE scalargroup_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
     
    135136      IF (PRESENT(mask_)) THEN 
    136137        mask__tmp = mask_ 
     138        CALL xios_logical_to_bool_0d(mask__tmp) 
    137139        CALL cxios_set_scalargroup_mask & 
    138140      (scalargroup_hdl%daddr, mask__tmp) 
     
    306308        CALL cxios_get_scalargroup_mask & 
    307309      (scalargroup_hdl%daddr, mask__tmp) 
     310        CALL xios_bool_to_logical_0d(mask__tmp) 
    308311        mask_ = mask__tmp 
    309312      ENDIF 
  • XIOS3/trunk/src/interface/fortran_attr/itemporal_splitting_attr.F90

    r1492 r2620  
    88  USE itemporal_splitting 
    99  USE temporal_splitting_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/ivariable_attr.F90

    r1158 r2620  
    88  USE ivariable 
    99  USE variable_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/ivariablegroup_attr.F90

    r1158 r2620  
    88  USE ivariable 
    99  USE variablegroup_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/izoom_axis_attr.F90

    r1201 r2620  
    88  USE izoom_axis 
    99  USE zoom_axis_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/interface/fortran_attr/izoom_domain_attr.F90

    r966 r2620  
    88  USE izoom_domain 
    99  USE zoom_domain_interface_attr 
     10  USE LOGICAL_BOOL_CONVERSION 
    1011 
    1112CONTAINS 
  • XIOS3/trunk/src/object_template_impl.hpp

    r2243 r2620  
    569569     oss << "USE, INTRINSIC :: ISO_C_BINDING" << iendl; 
    570570     oss << "USE i" << superClassName << iendl; 
    571      oss << "USE " << className << "_interface_attr" << iendl--; 
     571     oss << "USE " << className << "_interface_attr" << iendl; 
     572     oss << "USE LOGICAL_BOOL_CONVERSION" << iendl--; 
    572573//   oss << "TYPE txios(" << className << ")" << iendl; 
    573574//   oss << "  INTEGER(kind = C_INTPTR_T) :: daddr" << iendl; 
Note: See TracChangeset for help on using the changeset viewer.