Changeset 581 for XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
- Timestamp:
- 03/24/15 11:21:45 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
r575 r581 8 8 USE igrid 9 9 USE grid_interface_attr 10 10 11 11 CONTAINS 12 12 13 13 SUBROUTINE xios(set_grid_attr) & 14 14 ( grid_id, axis_domain_order, description, mask1, mask2, mask3, name ) 15 15 16 16 IMPLICIT NONE 17 17 TYPE(txios(grid)) :: grid_hdl … … 27 27 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 28 28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 29 29 30 30 CALL xios(get_grid_handle)(grid_id,grid_hdl) 31 31 CALL xios(set_grid_attr_hdl_) & 32 32 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 33 33 34 34 END SUBROUTINE xios(set_grid_attr) 35 35 36 36 SUBROUTINE xios(set_grid_attr_hdl) & 37 37 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 38 38 39 39 IMPLICIT NONE 40 40 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl … … 49 49 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 50 50 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 51 51 52 52 CALL xios(set_grid_attr_hdl_) & 53 53 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 54 54 55 55 END SUBROUTINE xios(set_grid_attr_hdl) 56 56 57 57 SUBROUTINE xios(set_grid_attr_hdl_) & 58 58 ( grid_hdl, axis_domain_order_, description_, mask1_, mask2_, mask3_, name_ ) 59 59 60 60 IMPLICIT NONE 61 61 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl … … 70 70 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3__tmp(:,:,:) 71 71 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 72 72 73 73 IF (PRESENT(axis_domain_order_)) THEN 74 74 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, size(axis_domain_order_,1))77 ENDIF 78 75 axis_domain_order__tmp = axis_domain_order_ 76 CALL cxios_set_grid_axis_domain_order(grid_hdl%daddr, axis_domain_order__tmp, size(axis_domain_order_,1)) 77 ENDIF 78 79 79 IF (PRESENT(description_)) THEN 80 80 CALL cxios_set_grid_description(grid_hdl%daddr, description_, len(description_)) 81 81 ENDIF 82 82 83 83 IF (PRESENT(mask1_)) THEN 84 84 ALLOCATE(mask1__tmp(size(mask1_,1))) 85 mask1__tmp =mask1_86 CALL cxios_set_grid_mask1(grid_hdl%daddr, mask1__tmp, size(mask1_,1))87 ENDIF 88 85 mask1__tmp = mask1_ 86 CALL cxios_set_grid_mask1(grid_hdl%daddr, mask1__tmp, size(mask1_,1)) 87 ENDIF 88 89 89 IF (PRESENT(mask2_)) THEN 90 ALLOCATE(mask2__tmp(size(mask2_,1), size(mask2_,2)))91 mask2__tmp =mask2_92 CALL cxios_set_grid_mask2(grid_hdl%daddr, mask2__tmp, size(mask2_,1),size(mask2_,2))93 ENDIF 94 90 ALLOCATE(mask2__tmp(size(mask2_,1), size(mask2_,2))) 91 mask2__tmp = mask2_ 92 CALL cxios_set_grid_mask2(grid_hdl%daddr, mask2__tmp, size(mask2_,1), size(mask2_,2)) 93 ENDIF 94 95 95 IF (PRESENT(mask3_)) THEN 96 ALLOCATE(mask3__tmp(size(mask3_,1), size(mask3_,2),size(mask3_,3)))97 mask3__tmp =mask3_98 CALL cxios_set_grid_mask3(grid_hdl%daddr, mask3__tmp, size(mask3_,1),size(mask3_,2),size(mask3_,3))99 ENDIF 100 96 ALLOCATE(mask3__tmp(size(mask3_,1), size(mask3_,2), size(mask3_,3))) 97 mask3__tmp = mask3_ 98 CALL cxios_set_grid_mask3(grid_hdl%daddr, mask3__tmp, size(mask3_,1), size(mask3_,2), size(mask3_,3)) 99 ENDIF 100 101 101 IF (PRESENT(name_)) THEN 102 102 CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_)) 103 103 ENDIF 104 105 106 104 107 105 END SUBROUTINE xios(set_grid_attr_hdl_) 108 106 109 107 SUBROUTINE xios(get_grid_attr) & 110 108 ( grid_id, axis_domain_order, description, mask1, mask2, mask3, name ) 111 109 112 110 IMPLICIT NONE 113 111 TYPE(txios(grid)) :: grid_hdl … … 123 121 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 124 122 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 125 123 126 124 CALL xios(get_grid_handle)(grid_id,grid_hdl) 127 125 CALL xios(get_grid_attr_hdl_) & 128 126 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 129 127 130 128 END SUBROUTINE xios(get_grid_attr) 131 129 132 130 SUBROUTINE xios(get_grid_attr_hdl) & 133 131 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 134 132 135 133 IMPLICIT NONE 136 134 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl … … 145 143 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 146 144 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 147 145 148 146 CALL xios(get_grid_attr_hdl_) & 149 147 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 150 148 151 149 END SUBROUTINE xios(get_grid_attr_hdl) 152 150 153 151 SUBROUTINE xios(get_grid_attr_hdl_) & 154 152 ( grid_hdl, axis_domain_order_, description_, mask1_, mask2_, mask3_, name_ ) 155 153 156 154 IMPLICIT NONE 157 155 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl … … 166 164 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3__tmp(:,:,:) 167 165 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 168 166 169 167 IF (PRESENT(axis_domain_order_)) THEN 170 168 ALLOCATE(axis_domain_order__tmp(size(axis_domain_order_,1))) 171 CALL cxios_get_grid_axis_domain_order(grid_hdl%daddr, axis_domain_order__tmp, size(axis_domain_order_,1))172 axis_domain_order_ =axis_domain_order__tmp173 ENDIF 174 169 CALL cxios_get_grid_axis_domain_order(grid_hdl%daddr, axis_domain_order__tmp, size(axis_domain_order_,1)) 170 axis_domain_order_ = axis_domain_order__tmp 171 ENDIF 172 175 173 IF (PRESENT(description_)) THEN 176 174 CALL cxios_get_grid_description(grid_hdl%daddr, description_, len(description_)) 177 175 ENDIF 178 176 179 177 IF (PRESENT(mask1_)) THEN 180 178 ALLOCATE(mask1__tmp(size(mask1_,1))) 181 CALL cxios_get_grid_mask1(grid_hdl%daddr, mask1__tmp, size(mask1_,1))182 mask1_ =mask1__tmp183 ENDIF 184 179 CALL cxios_get_grid_mask1(grid_hdl%daddr, mask1__tmp, size(mask1_,1)) 180 mask1_ = mask1__tmp 181 ENDIF 182 185 183 IF (PRESENT(mask2_)) THEN 186 ALLOCATE(mask2__tmp(size(mask2_,1), size(mask2_,2)))187 CALL cxios_get_grid_mask2(grid_hdl%daddr, mask2__tmp, size(mask2_,1),size(mask2_,2))188 mask2_ =mask2__tmp189 ENDIF 190 184 ALLOCATE(mask2__tmp(size(mask2_,1), size(mask2_,2))) 185 CALL cxios_get_grid_mask2(grid_hdl%daddr, mask2__tmp, size(mask2_,1), size(mask2_,2)) 186 mask2_ = mask2__tmp 187 ENDIF 188 191 189 IF (PRESENT(mask3_)) THEN 192 ALLOCATE(mask3__tmp(size(mask3_,1), size(mask3_,2),size(mask3_,3)))193 CALL cxios_get_grid_mask3(grid_hdl%daddr, mask3__tmp, size(mask3_,1),size(mask3_,2),size(mask3_,3))194 mask3_ =mask3__tmp195 ENDIF 196 190 ALLOCATE(mask3__tmp(size(mask3_,1), size(mask3_,2), size(mask3_,3))) 191 CALL cxios_get_grid_mask3(grid_hdl%daddr, mask3__tmp, size(mask3_,1), size(mask3_,2), size(mask3_,3)) 192 mask3_ = mask3__tmp 193 ENDIF 194 197 195 IF (PRESENT(name_)) THEN 198 196 CALL cxios_get_grid_name(grid_hdl%daddr, name_, len(name_)) 199 197 ENDIF 200 201 202 198 203 199 END SUBROUTINE xios(get_grid_attr_hdl_) 204 200 205 201 SUBROUTINE xios(is_defined_grid_attr) & 206 202 ( grid_id, axis_domain_order, description, mask1, mask2, mask3, name ) 207 203 208 204 IMPLICIT NONE 209 205 TYPE(txios(grid)) :: grid_hdl … … 221 217 LOGICAL, OPTIONAL, INTENT(OUT) :: name 222 218 LOGICAL(KIND=C_BOOL) :: name_tmp 223 219 224 220 CALL xios(get_grid_handle)(grid_id,grid_hdl) 225 221 CALL xios(is_defined_grid_attr_hdl_) & 226 222 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 227 223 228 224 END SUBROUTINE xios(is_defined_grid_attr) 229 225 230 226 SUBROUTINE xios(is_defined_grid_attr_hdl) & 231 227 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 232 228 233 229 IMPLICIT NONE 234 230 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl … … 245 241 LOGICAL, OPTIONAL, INTENT(OUT) :: name 246 242 LOGICAL(KIND=C_BOOL) :: name_tmp 247 243 248 244 CALL xios(is_defined_grid_attr_hdl_) & 249 245 ( grid_hdl, axis_domain_order, description, mask1, mask2, mask3, name ) 250 246 251 247 END SUBROUTINE xios(is_defined_grid_attr_hdl) 252 248 253 249 SUBROUTINE xios(is_defined_grid_attr_hdl_) & 254 250 ( grid_hdl, axis_domain_order_, description_, mask1_, mask2_, mask3_, name_ ) 255 251 256 252 IMPLICIT NONE 257 253 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl … … 268 264 LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 269 265 LOGICAL(KIND=C_BOOL) :: name__tmp 270 266 271 267 IF (PRESENT(axis_domain_order_)) THEN 272 axis_domain_order__tmp =cxios_is_defined_grid_axis_domain_order(grid_hdl%daddr)273 axis_domain_order_ =axis_domain_order__tmp274 ENDIF 275 268 axis_domain_order__tmp = cxios_is_defined_grid_axis_domain_order(grid_hdl%daddr) 269 axis_domain_order_ = axis_domain_order__tmp 270 ENDIF 271 276 272 IF (PRESENT(description_)) THEN 277 description__tmp =cxios_is_defined_grid_description(grid_hdl%daddr)278 description_ =description__tmp279 ENDIF 280 273 description__tmp = cxios_is_defined_grid_description(grid_hdl%daddr) 274 description_ = description__tmp 275 ENDIF 276 281 277 IF (PRESENT(mask1_)) THEN 282 mask1__tmp =cxios_is_defined_grid_mask1(grid_hdl%daddr)283 mask1_ =mask1__tmp284 ENDIF 285 278 mask1__tmp = cxios_is_defined_grid_mask1(grid_hdl%daddr) 279 mask1_ = mask1__tmp 280 ENDIF 281 286 282 IF (PRESENT(mask2_)) THEN 287 mask2__tmp =cxios_is_defined_grid_mask2(grid_hdl%daddr)288 mask2_ =mask2__tmp289 ENDIF 290 283 mask2__tmp = cxios_is_defined_grid_mask2(grid_hdl%daddr) 284 mask2_ = mask2__tmp 285 ENDIF 286 291 287 IF (PRESENT(mask3_)) THEN 292 mask3__tmp =cxios_is_defined_grid_mask3(grid_hdl%daddr)293 mask3_ =mask3__tmp294 ENDIF 295 288 mask3__tmp = cxios_is_defined_grid_mask3(grid_hdl%daddr) 289 mask3_ = mask3__tmp 290 ENDIF 291 296 292 IF (PRESENT(name_)) THEN 297 name__tmp=cxios_is_defined_grid_name(grid_hdl%daddr) 298 name_=name__tmp 299 ENDIF 300 301 302 293 name__tmp = cxios_is_defined_grid_name(grid_hdl%daddr) 294 name_ = name__tmp 295 ENDIF 296 303 297 END SUBROUTINE xios(is_defined_grid_attr_hdl_) 304 298 305 299 END MODULE igrid_attr
Note: See TracChangeset
for help on using the changeset viewer.