Changeset 791
- Timestamp:
- 11/19/15 16:55:16 (7 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/config/grid_attribute.conf
r575 r791 2 2 DECLARE_ATTRIBUTE(StdString, description) 3 3 4 DECLARE_ARRAY(bool, 1 5 DECLARE_ARRAY(bool, 2 6 DECLARE_ARRAY(bool, 3 7 //DECLARE_ARRAY(bool, 4 8 //DECLARE_ARRAY(bool, 5 9 //DECLARE_ARRAY(bool, 6 10 //DECLARE_ARRAY(bool, 7 4 DECLARE_ARRAY(bool, 1, mask1) 5 DECLARE_ARRAY(bool, 2, mask2) 6 DECLARE_ARRAY(bool, 3, mask3) 7 //DECLARE_ARRAY(bool, 4, mask4) 8 //DECLARE_ARRAY(bool, 5, mask5) 9 //DECLARE_ARRAY(bool, 6, mask6) 10 //DECLARE_ARRAY(bool, 7, mask7) 11 11 12 12 13 // These attributes should be used privately14 13 // An array contains order of axis and domains composing of the grid 15 DECLARE_ARRAY (bool, 1, axis_domain_order)14 DECLARE_ARRAY_PRIVATE(bool, 1, axis_domain_order) -
XIOS/trunk/src/interface/c_attr/icgrid_attr.cpp
r674 r791 17 17 { 18 18 typedef xios::CGrid* grid_Ptr; 19 20 void cxios_set_grid_axis_domain_order(grid_Ptr grid_hdl, bool* axis_domain_order, int* extent)21 {22 CTimer::get("XIOS").resume();23 CArray<bool,1> tmp(axis_domain_order, shape(extent[0]), neverDeleteData);24 grid_hdl->axis_domain_order.reference(tmp.copy());25 CTimer::get("XIOS").suspend();26 }27 28 void cxios_get_grid_axis_domain_order(grid_Ptr grid_hdl, bool* axis_domain_order, int* extent)29 {30 CTimer::get("XIOS").resume();31 CArray<bool,1> tmp(axis_domain_order, shape(extent[0]), neverDeleteData);32 tmp=grid_hdl->axis_domain_order.getInheritedValue();33 CTimer::get("XIOS").suspend();34 }35 36 bool cxios_is_defined_grid_axis_domain_order(grid_Ptr grid_hdl)37 {38 CTimer::get("XIOS").resume();39 bool isDefined = grid_hdl->axis_domain_order.hasInheritedValue();40 CTimer::get("XIOS").suspend();41 return isDefined;42 }43 44 19 45 20 void cxios_set_grid_description(grid_Ptr grid_hdl, const char * description, int description_size) -
XIOS/trunk/src/interface/c_attr/icgridgroup_attr.cpp
r674 r791 17 17 { 18 18 typedef xios::CGridGroup* gridgroup_Ptr; 19 20 void cxios_set_gridgroup_axis_domain_order(gridgroup_Ptr gridgroup_hdl, bool* axis_domain_order, int* extent)21 {22 CTimer::get("XIOS").resume();23 CArray<bool,1> tmp(axis_domain_order, shape(extent[0]), neverDeleteData);24 gridgroup_hdl->axis_domain_order.reference(tmp.copy());25 CTimer::get("XIOS").suspend();26 }27 28 void cxios_get_gridgroup_axis_domain_order(gridgroup_Ptr gridgroup_hdl, bool* axis_domain_order, int* extent)29 {30 CTimer::get("XIOS").resume();31 CArray<bool,1> tmp(axis_domain_order, shape(extent[0]), neverDeleteData);32 tmp=gridgroup_hdl->axis_domain_order.getInheritedValue();33 CTimer::get("XIOS").suspend();34 }35 36 bool cxios_is_defined_gridgroup_axis_domain_order(gridgroup_Ptr gridgroup_hdl)37 {38 CTimer::get("XIOS").resume();39 bool isDefined = gridgroup_hdl->axis_domain_order.hasInheritedValue();40 CTimer::get("XIOS").suspend();41 return isDefined;42 }43 44 19 45 20 void cxios_set_gridgroup_description(gridgroup_Ptr gridgroup_hdl, const char * description, int description_size) -
XIOS/trunk/src/interface/fortran_attr/grid_interface_attr.F90
r674 r791 9 9 INTERFACE 10 10 ! Do not call directly / interface FORTRAN 2003 <-> C99 11 12 SUBROUTINE cxios_set_grid_axis_domain_order(grid_hdl, axis_domain_order, extent) BIND(C)13 USE ISO_C_BINDING14 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl15 LOGICAL (KIND=C_BOOL) , DIMENSION(*) :: axis_domain_order16 INTEGER (kind = C_INT), DIMENSION(*) :: extent17 END SUBROUTINE cxios_set_grid_axis_domain_order18 19 SUBROUTINE cxios_get_grid_axis_domain_order(grid_hdl, axis_domain_order, extent) BIND(C)20 USE ISO_C_BINDING21 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl22 LOGICAL (KIND=C_BOOL) , DIMENSION(*) :: axis_domain_order23 INTEGER (kind = C_INT), DIMENSION(*) :: extent24 END SUBROUTINE cxios_get_grid_axis_domain_order25 26 FUNCTION cxios_is_defined_grid_axis_domain_order(grid_hdl) BIND(C)27 USE ISO_C_BINDING28 LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_axis_domain_order29 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl30 END FUNCTION cxios_is_defined_grid_axis_domain_order31 32 11 33 12 SUBROUTINE cxios_set_grid_description(grid_hdl, description, description_size) BIND(C) -
XIOS/trunk/src/interface/fortran_attr/gridgroup_interface_attr.F90
r674 r791 9 9 INTERFACE 10 10 ! Do not call directly / interface FORTRAN 2003 <-> C99 11 12 SUBROUTINE cxios_set_gridgroup_axis_domain_order(gridgroup_hdl, axis_domain_order, extent) BIND(C)13 USE ISO_C_BINDING14 INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl15 LOGICAL (KIND=C_BOOL) , DIMENSION(*) :: axis_domain_order16 INTEGER (kind = C_INT), DIMENSION(*) :: extent17 END SUBROUTINE cxios_set_gridgroup_axis_domain_order18 19 SUBROUTINE cxios_get_gridgroup_axis_domain_order(gridgroup_hdl, axis_domain_order, extent) BIND(C)20 USE ISO_C_BINDING21 INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl22 LOGICAL (KIND=C_BOOL) , DIMENSION(*) :: axis_domain_order23 INTEGER (kind = C_INT), DIMENSION(*) :: extent24 END SUBROUTINE cxios_get_gridgroup_axis_domain_order25 26 FUNCTION cxios_is_defined_gridgroup_axis_domain_order(gridgroup_hdl) BIND(C)27 USE ISO_C_BINDING28 LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_axis_domain_order29 INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl30 END FUNCTION cxios_is_defined_gridgroup_axis_domain_order31 32 11 33 12 SUBROUTINE cxios_set_gridgroup_description(gridgroup_hdl, description, description_size) BIND(C) -
XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
r674 r791 12 12 13 13 SUBROUTINE xios(set_grid_attr) & 14 ( grid_id, axis_domain_order,description, mask1, mask2, mask3, name )14 ( grid_id, description, mask1, mask2, mask3, name ) 15 15 16 16 IMPLICIT NONE 17 17 TYPE(txios(grid)) :: grid_hdl 18 18 CHARACTER(LEN=*), INTENT(IN) ::grid_id 19 LOGICAL , OPTIONAL, INTENT(IN) :: axis_domain_order(:)20 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:)21 19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 22 20 LOGICAL , OPTIONAL, INTENT(IN) :: mask1(:) … … 30 28 CALL xios(get_grid_handle)(grid_id,grid_hdl) 31 29 CALL xios(set_grid_attr_hdl_) & 32 ( grid_hdl, axis_domain_order,description, mask1, mask2, mask3, name )30 ( grid_hdl, description, mask1, mask2, mask3, name ) 33 31 34 32 END SUBROUTINE xios(set_grid_attr) 35 33 36 34 SUBROUTINE xios(set_grid_attr_hdl) & 37 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 38 39 IMPLICIT NONE 40 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 41 LOGICAL , OPTIONAL, INTENT(IN) :: axis_domain_order(:) 42 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:) 35 ( grid_hdl, description, mask1, mask2, mask3, name ) 36 37 IMPLICIT NONE 38 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 43 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 44 40 LOGICAL , OPTIONAL, INTENT(IN) :: mask1(:) … … 51 47 52 48 CALL xios(set_grid_attr_hdl_) & 53 ( grid_hdl, axis_domain_order,description, mask1, mask2, mask3, name )49 ( grid_hdl, description, mask1, mask2, mask3, name ) 54 50 55 51 END SUBROUTINE xios(set_grid_attr_hdl) 56 52 57 53 SUBROUTINE xios(set_grid_attr_hdl_) & 58 ( grid_hdl, axis_domain_order_, description_, mask1_, mask2_, mask3_, name_ ) 59 60 IMPLICIT NONE 61 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 62 LOGICAL , OPTIONAL, INTENT(IN) :: axis_domain_order_(:) 63 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order__tmp(:) 54 ( grid_hdl, description_, mask1_, mask2_, mask3_, name_ ) 55 56 IMPLICIT NONE 57 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 64 58 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 65 59 LOGICAL , OPTIONAL, INTENT(IN) :: mask1_(:) … … 71 65 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 72 66 73 IF (PRESENT(axis_domain_order_)) THEN74 ALLOCATE(axis_domain_order__tmp(SIZE(axis_domain_order_,1)))75 axis_domain_order__tmp = axis_domain_order_76 CALL cxios_set_grid_axis_domain_order(grid_hdl%daddr, axis_domain_order__tmp, SHAPE(axis_domain_order_))77 ENDIF78 79 67 IF (PRESENT(description_)) THEN 80 68 CALL cxios_set_grid_description(grid_hdl%daddr, description_, len(description_)) … … 106 94 107 95 SUBROUTINE xios(get_grid_attr) & 108 ( grid_id, axis_domain_order,description, mask1, mask2, mask3, name )96 ( grid_id, description, mask1, mask2, mask3, name ) 109 97 110 98 IMPLICIT NONE 111 99 TYPE(txios(grid)) :: grid_hdl 112 100 CHARACTER(LEN=*), INTENT(IN) ::grid_id 113 LOGICAL , OPTIONAL, INTENT(OUT) :: axis_domain_order(:)114 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:)115 101 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 116 102 LOGICAL , OPTIONAL, INTENT(OUT) :: mask1(:) … … 124 110 CALL xios(get_grid_handle)(grid_id,grid_hdl) 125 111 CALL xios(get_grid_attr_hdl_) & 126 ( grid_hdl, axis_domain_order,description, mask1, mask2, mask3, name )112 ( grid_hdl, description, mask1, mask2, mask3, name ) 127 113 128 114 END SUBROUTINE xios(get_grid_attr) 129 115 130 116 SUBROUTINE xios(get_grid_attr_hdl) & 131 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 132 133 IMPLICIT NONE 134 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 135 LOGICAL , OPTIONAL, INTENT(OUT) :: axis_domain_order(:) 136 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:) 117 ( grid_hdl, description, mask1, mask2, mask3, name ) 118 119 IMPLICIT NONE 120 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 137 121 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 138 122 LOGICAL , OPTIONAL, INTENT(OUT) :: mask1(:) … … 145 129 146 130 CALL xios(get_grid_attr_hdl_) & 147 ( grid_hdl, axis_domain_order,description, mask1, mask2, mask3, name )131 ( grid_hdl, description, mask1, mask2, mask3, name ) 148 132 149 133 END SUBROUTINE xios(get_grid_attr_hdl) 150 134 151 135 SUBROUTINE xios(get_grid_attr_hdl_) & 152 ( grid_hdl, axis_domain_order_, description_, mask1_, mask2_, mask3_, name_ ) 153 154 IMPLICIT NONE 155 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 156 LOGICAL , OPTIONAL, INTENT(OUT) :: axis_domain_order_(:) 157 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order__tmp(:) 136 ( grid_hdl, description_, mask1_, mask2_, mask3_, name_ ) 137 138 IMPLICIT NONE 139 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 158 140 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 159 141 LOGICAL , OPTIONAL, INTENT(OUT) :: mask1_(:) … … 165 147 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 166 148 167 IF (PRESENT(axis_domain_order_)) THEN168 ALLOCATE(axis_domain_order__tmp(SIZE(axis_domain_order_,1)))169 CALL cxios_get_grid_axis_domain_order(grid_hdl%daddr, axis_domain_order__tmp, SHAPE(axis_domain_order_))170 axis_domain_order_ = axis_domain_order__tmp171 ENDIF172 173 149 IF (PRESENT(description_)) THEN 174 150 CALL cxios_get_grid_description(grid_hdl%daddr, description_, len(description_)) … … 200 176 201 177 SUBROUTINE xios(is_defined_grid_attr) & 202 ( grid_id, axis_domain_order,description, mask1, mask2, mask3, name )178 ( grid_id, description, mask1, mask2, mask3, name ) 203 179 204 180 IMPLICIT NONE 205 181 TYPE(txios(grid)) :: grid_hdl 206 182 CHARACTER(LEN=*), INTENT(IN) ::grid_id 207 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_domain_order208 LOGICAL(KIND=C_BOOL) :: axis_domain_order_tmp209 183 LOGICAL, OPTIONAL, INTENT(OUT) :: description 210 184 LOGICAL(KIND=C_BOOL) :: description_tmp … … 220 194 CALL xios(get_grid_handle)(grid_id,grid_hdl) 221 195 CALL xios(is_defined_grid_attr_hdl_) & 222 ( grid_hdl, axis_domain_order,description, mask1, mask2, mask3, name )196 ( grid_hdl, description, mask1, mask2, mask3, name ) 223 197 224 198 END SUBROUTINE xios(is_defined_grid_attr) 225 199 226 200 SUBROUTINE xios(is_defined_grid_attr_hdl) & 227 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 228 229 IMPLICIT NONE 230 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 231 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_domain_order 232 LOGICAL(KIND=C_BOOL) :: axis_domain_order_tmp 201 ( grid_hdl, description, mask1, mask2, mask3, name ) 202 203 IMPLICIT NONE 204 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 233 205 LOGICAL, OPTIONAL, INTENT(OUT) :: description 234 206 LOGICAL(KIND=C_BOOL) :: description_tmp … … 243 215 244 216 CALL xios(is_defined_grid_attr_hdl_) & 245 ( grid_hdl, axis_domain_order,description, mask1, mask2, mask3, name )217 ( grid_hdl, description, mask1, mask2, mask3, name ) 246 218 247 219 END SUBROUTINE xios(is_defined_grid_attr_hdl) 248 220 249 221 SUBROUTINE xios(is_defined_grid_attr_hdl_) & 250 ( grid_hdl, axis_domain_order_, description_, mask1_, mask2_, mask3_, name_ ) 251 252 IMPLICIT NONE 253 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 254 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_domain_order_ 255 LOGICAL(KIND=C_BOOL) :: axis_domain_order__tmp 222 ( grid_hdl, description_, mask1_, mask2_, mask3_, name_ ) 223 224 IMPLICIT NONE 225 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 256 226 LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 257 227 LOGICAL(KIND=C_BOOL) :: description__tmp … … 265 235 LOGICAL(KIND=C_BOOL) :: name__tmp 266 236 267 IF (PRESENT(axis_domain_order_)) THEN268 axis_domain_order__tmp = cxios_is_defined_grid_axis_domain_order(grid_hdl%daddr)269 axis_domain_order_ = axis_domain_order__tmp270 ENDIF271 272 237 IF (PRESENT(description_)) THEN 273 238 description__tmp = cxios_is_defined_grid_description(grid_hdl%daddr) -
XIOS/trunk/src/interface/fortran_attr/igridgroup_attr.F90
r674 r791 12 12 13 13 SUBROUTINE xios(set_gridgroup_attr) & 14 ( gridgroup_id, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )14 ( gridgroup_id, description, group_ref, mask1, mask2, mask3, name ) 15 15 16 16 IMPLICIT NONE 17 17 TYPE(txios(gridgroup)) :: gridgroup_hdl 18 18 CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 19 LOGICAL , OPTIONAL, INTENT(IN) :: axis_domain_order(:)20 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:)21 19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 22 20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref … … 31 29 CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 32 30 CALL xios(set_gridgroup_attr_hdl_) & 33 ( gridgroup_hdl, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )31 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 34 32 35 33 END SUBROUTINE xios(set_gridgroup_attr) 36 34 37 35 SUBROUTINE xios(set_gridgroup_attr_hdl) & 38 ( gridgroup_hdl, axis_domain_order, description, group_ref, mask1, mask2, mask3, name ) 39 40 IMPLICIT NONE 41 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 42 LOGICAL , OPTIONAL, INTENT(IN) :: axis_domain_order(:) 43 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:) 36 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 37 38 IMPLICIT NONE 39 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 44 40 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 45 41 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref … … 53 49 54 50 CALL xios(set_gridgroup_attr_hdl_) & 55 ( gridgroup_hdl, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )51 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 56 52 57 53 END SUBROUTINE xios(set_gridgroup_attr_hdl) 58 54 59 55 SUBROUTINE xios(set_gridgroup_attr_hdl_) & 60 ( gridgroup_hdl, axis_domain_order_, description_, group_ref_, mask1_, mask2_, mask3_, name_ & 61 ) 62 63 IMPLICIT NONE 64 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 65 LOGICAL , OPTIONAL, INTENT(IN) :: axis_domain_order_(:) 66 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order__tmp(:) 56 ( gridgroup_hdl, description_, group_ref_, mask1_, mask2_, mask3_, name_ ) 57 58 IMPLICIT NONE 59 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 67 60 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 68 61 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ … … 75 68 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 76 69 77 IF (PRESENT(axis_domain_order_)) THEN78 ALLOCATE(axis_domain_order__tmp(SIZE(axis_domain_order_,1)))79 axis_domain_order__tmp = axis_domain_order_80 CALL cxios_set_gridgroup_axis_domain_order(gridgroup_hdl%daddr, axis_domain_order__tmp, SHAPE(axis_domain_order_))81 ENDIF82 83 70 IF (PRESENT(description_)) THEN 84 71 CALL cxios_set_gridgroup_description(gridgroup_hdl%daddr, description_, len(description_)) … … 114 101 115 102 SUBROUTINE xios(get_gridgroup_attr) & 116 ( gridgroup_id, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )103 ( gridgroup_id, description, group_ref, mask1, mask2, mask3, name ) 117 104 118 105 IMPLICIT NONE 119 106 TYPE(txios(gridgroup)) :: gridgroup_hdl 120 107 CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 121 LOGICAL , OPTIONAL, INTENT(OUT) :: axis_domain_order(:)122 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:)123 108 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 124 109 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref … … 133 118 CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 134 119 CALL xios(get_gridgroup_attr_hdl_) & 135 ( gridgroup_hdl, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )120 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 136 121 137 122 END SUBROUTINE xios(get_gridgroup_attr) 138 123 139 124 SUBROUTINE xios(get_gridgroup_attr_hdl) & 140 ( gridgroup_hdl, axis_domain_order, description, group_ref, mask1, mask2, mask3, name ) 141 142 IMPLICIT NONE 143 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 144 LOGICAL , OPTIONAL, INTENT(OUT) :: axis_domain_order(:) 145 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order_tmp(:) 125 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 126 127 IMPLICIT NONE 128 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 146 129 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 147 130 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref … … 155 138 156 139 CALL xios(get_gridgroup_attr_hdl_) & 157 ( gridgroup_hdl, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )140 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 158 141 159 142 END SUBROUTINE xios(get_gridgroup_attr_hdl) 160 143 161 144 SUBROUTINE xios(get_gridgroup_attr_hdl_) & 162 ( gridgroup_hdl, axis_domain_order_, description_, group_ref_, mask1_, mask2_, mask3_, name_ & 163 ) 164 165 IMPLICIT NONE 166 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 167 LOGICAL , OPTIONAL, INTENT(OUT) :: axis_domain_order_(:) 168 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axis_domain_order__tmp(:) 145 ( gridgroup_hdl, description_, group_ref_, mask1_, mask2_, mask3_, name_ ) 146 147 IMPLICIT NONE 148 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 169 149 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 170 150 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ … … 177 157 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 178 158 179 IF (PRESENT(axis_domain_order_)) THEN180 ALLOCATE(axis_domain_order__tmp(SIZE(axis_domain_order_,1)))181 CALL cxios_get_gridgroup_axis_domain_order(gridgroup_hdl%daddr, axis_domain_order__tmp, SHAPE(axis_domain_order_))182 axis_domain_order_ = axis_domain_order__tmp183 ENDIF184 185 159 IF (PRESENT(description_)) THEN 186 160 CALL cxios_get_gridgroup_description(gridgroup_hdl%daddr, description_, len(description_)) … … 216 190 217 191 SUBROUTINE xios(is_defined_gridgroup_attr) & 218 ( gridgroup_id, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )192 ( gridgroup_id, description, group_ref, mask1, mask2, mask3, name ) 219 193 220 194 IMPLICIT NONE 221 195 TYPE(txios(gridgroup)) :: gridgroup_hdl 222 196 CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 223 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_domain_order224 LOGICAL(KIND=C_BOOL) :: axis_domain_order_tmp225 197 LOGICAL, OPTIONAL, INTENT(OUT) :: description 226 198 LOGICAL(KIND=C_BOOL) :: description_tmp … … 238 210 CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 239 211 CALL xios(is_defined_gridgroup_attr_hdl_) & 240 ( gridgroup_hdl, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )212 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 241 213 242 214 END SUBROUTINE xios(is_defined_gridgroup_attr) 243 215 244 216 SUBROUTINE xios(is_defined_gridgroup_attr_hdl) & 245 ( gridgroup_hdl, axis_domain_order, description, group_ref, mask1, mask2, mask3, name ) 246 247 IMPLICIT NONE 248 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 249 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_domain_order 250 LOGICAL(KIND=C_BOOL) :: axis_domain_order_tmp 217 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 218 219 IMPLICIT NONE 220 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 251 221 LOGICAL, OPTIONAL, INTENT(OUT) :: description 252 222 LOGICAL(KIND=C_BOOL) :: description_tmp … … 263 233 264 234 CALL xios(is_defined_gridgroup_attr_hdl_) & 265 ( gridgroup_hdl, axis_domain_order,description, group_ref, mask1, mask2, mask3, name )235 ( gridgroup_hdl, description, group_ref, mask1, mask2, mask3, name ) 266 236 267 237 END SUBROUTINE xios(is_defined_gridgroup_attr_hdl) 268 238 269 239 SUBROUTINE xios(is_defined_gridgroup_attr_hdl_) & 270 ( gridgroup_hdl, axis_domain_order_, description_, group_ref_, mask1_, mask2_, mask3_, name_ & 271 ) 272 273 IMPLICIT NONE 274 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 275 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_domain_order_ 276 LOGICAL(KIND=C_BOOL) :: axis_domain_order__tmp 240 ( gridgroup_hdl, description_, group_ref_, mask1_, mask2_, mask3_, name_ ) 241 242 IMPLICIT NONE 243 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 277 244 LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 278 245 LOGICAL(KIND=C_BOOL) :: description__tmp … … 288 255 LOGICAL(KIND=C_BOOL) :: name__tmp 289 256 290 IF (PRESENT(axis_domain_order_)) THEN291 axis_domain_order__tmp = cxios_is_defined_gridgroup_axis_domain_order(gridgroup_hdl%daddr)292 axis_domain_order_ = axis_domain_order__tmp293 ENDIF294 295 257 IF (PRESENT(description_)) THEN 296 258 description__tmp = cxios_is_defined_gridgroup_description(gridgroup_hdl%daddr)
Note: See TracChangeset
for help on using the changeset viewer.