Changeset 567 for XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
- Timestamp:
- 03/10/15 10:49:02 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
r556 r567 12 12 13 13 SUBROUTINE xios(set_grid_attr) & 14 ( grid_id, axisDomainOrder, description, mask , name )14 ( grid_id, axisDomainOrder, description, mask1, mask2, mask3, name ) 15 15 16 16 IMPLICIT NONE … … 20 20 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axisDomainOrder_tmp(:) 21 21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 22 LOGICAL , OPTIONAL, INTENT(IN) :: mask(:,:,:) 23 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 22 LOGICAL , OPTIONAL, INTENT(IN) :: mask1(:) 23 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask1_tmp(:) 24 LOGICAL , OPTIONAL, INTENT(IN) :: mask2(:,:) 25 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask2_tmp(:,:) 26 LOGICAL , OPTIONAL, INTENT(IN) :: mask3(:,:,:) 27 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 24 28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 25 29 26 30 CALL xios(get_grid_handle)(grid_id,grid_hdl) 27 31 CALL xios(set_grid_attr_hdl_) & 28 ( grid_hdl, axisDomainOrder, description, mask , name )32 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 29 33 30 34 END SUBROUTINE xios(set_grid_attr) 31 35 32 36 SUBROUTINE xios(set_grid_attr_hdl) & 33 ( grid_hdl, axisDomainOrder, description, mask , name )37 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 34 38 35 39 IMPLICIT NONE … … 38 42 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axisDomainOrder_tmp(:) 39 43 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 40 LOGICAL , OPTIONAL, INTENT(IN) :: mask(:,:,:) 41 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 44 LOGICAL , OPTIONAL, INTENT(IN) :: mask1(:) 45 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask1_tmp(:) 46 LOGICAL , OPTIONAL, INTENT(IN) :: mask2(:,:) 47 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask2_tmp(:,:) 48 LOGICAL , OPTIONAL, INTENT(IN) :: mask3(:,:,:) 49 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 42 50 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 43 51 44 52 CALL xios(set_grid_attr_hdl_) & 45 ( grid_hdl, axisDomainOrder, description, mask , name )53 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 46 54 47 55 END SUBROUTINE xios(set_grid_attr_hdl) 48 56 49 57 SUBROUTINE xios(set_grid_attr_hdl_) & 50 ( grid_hdl, axisDomainOrder_, description_, mask _, name_ )58 ( grid_hdl, axisDomainOrder_, description_, mask1_, mask2_, mask3_, name_ ) 51 59 52 60 IMPLICIT NONE … … 55 63 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axisDomainOrder__tmp(:) 56 64 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 57 LOGICAL , OPTIONAL, INTENT(IN) :: mask_(:,:,:) 58 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:,:) 65 LOGICAL , OPTIONAL, INTENT(IN) :: mask1_(:) 66 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask1__tmp(:) 67 LOGICAL , OPTIONAL, INTENT(IN) :: mask2_(:,:) 68 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask2__tmp(:,:) 69 LOGICAL , OPTIONAL, INTENT(IN) :: mask3_(:,:,:) 70 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3__tmp(:,:,:) 59 71 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 60 72 … … 69 81 ENDIF 70 82 71 IF (PRESENT(mask_)) THEN 72 ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2),size(mask_,3))) 73 mask__tmp=mask_ 74 CALL cxios_set_grid_mask(grid_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2),size(mask_,3)) 83 IF (PRESENT(mask1_)) THEN 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 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 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)) 75 99 ENDIF 76 100 … … 84 108 85 109 SUBROUTINE xios(get_grid_attr) & 86 ( grid_id, axisDomainOrder, description, mask , name )110 ( grid_id, axisDomainOrder, description, mask1, mask2, mask3, name ) 87 111 88 112 IMPLICIT NONE … … 92 116 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axisDomainOrder_tmp(:) 93 117 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 94 LOGICAL , OPTIONAL, INTENT(OUT) :: mask(:,:,:) 95 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 118 LOGICAL , OPTIONAL, INTENT(OUT) :: mask1(:) 119 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask1_tmp(:) 120 LOGICAL , OPTIONAL, INTENT(OUT) :: mask2(:,:) 121 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask2_tmp(:,:) 122 LOGICAL , OPTIONAL, INTENT(OUT) :: mask3(:,:,:) 123 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 96 124 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 97 125 98 126 CALL xios(get_grid_handle)(grid_id,grid_hdl) 99 127 CALL xios(get_grid_attr_hdl_) & 100 ( grid_hdl, axisDomainOrder, description, mask , name )128 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 101 129 102 130 END SUBROUTINE xios(get_grid_attr) 103 131 104 132 SUBROUTINE xios(get_grid_attr_hdl) & 105 ( grid_hdl, axisDomainOrder, description, mask , name )133 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 106 134 107 135 IMPLICIT NONE … … 110 138 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axisDomainOrder_tmp(:) 111 139 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 112 LOGICAL , OPTIONAL, INTENT(OUT) :: mask(:,:,:) 113 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 140 LOGICAL , OPTIONAL, INTENT(OUT) :: mask1(:) 141 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask1_tmp(:) 142 LOGICAL , OPTIONAL, INTENT(OUT) :: mask2(:,:) 143 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask2_tmp(:,:) 144 LOGICAL , OPTIONAL, INTENT(OUT) :: mask3(:,:,:) 145 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3_tmp(:,:,:) 114 146 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 115 147 116 148 CALL xios(get_grid_attr_hdl_) & 117 ( grid_hdl, axisDomainOrder, description, mask , name )149 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 118 150 119 151 END SUBROUTINE xios(get_grid_attr_hdl) 120 152 121 153 SUBROUTINE xios(get_grid_attr_hdl_) & 122 ( grid_hdl, axisDomainOrder_, description_, mask _, name_ )154 ( grid_hdl, axisDomainOrder_, description_, mask1_, mask2_, mask3_, name_ ) 123 155 124 156 IMPLICIT NONE … … 127 159 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: axisDomainOrder__tmp(:) 128 160 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 129 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_(:,:,:) 130 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:,:) 161 LOGICAL , OPTIONAL, INTENT(OUT) :: mask1_(:) 162 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask1__tmp(:) 163 LOGICAL , OPTIONAL, INTENT(OUT) :: mask2_(:,:) 164 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask2__tmp(:,:) 165 LOGICAL , OPTIONAL, INTENT(OUT) :: mask3_(:,:,:) 166 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask3__tmp(:,:,:) 131 167 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 132 168 … … 141 177 ENDIF 142 178 143 IF (PRESENT(mask_)) THEN 144 ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2),size(mask_,3))) 145 CALL cxios_get_grid_mask(grid_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2),size(mask_,3)) 146 mask_=mask__tmp 179 IF (PRESENT(mask1_)) THEN 180 ALLOCATE(mask1__tmp(size(mask1_,1))) 181 CALL cxios_get_grid_mask1(grid_hdl%daddr, mask1__tmp,size(mask1_,1)) 182 mask1_=mask1__tmp 183 ENDIF 184 185 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__tmp 189 ENDIF 190 191 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__tmp 147 195 ENDIF 148 196 … … 156 204 157 205 SUBROUTINE xios(is_defined_grid_attr) & 158 ( grid_id, axisDomainOrder, description, mask , name )206 ( grid_id, axisDomainOrder, description, mask1, mask2, mask3, name ) 159 207 160 208 IMPLICIT NONE … … 165 213 LOGICAL, OPTIONAL, INTENT(OUT) :: description 166 214 LOGICAL(KIND=C_BOOL) :: description_tmp 167 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 168 LOGICAL(KIND=C_BOOL) :: mask_tmp 215 LOGICAL, OPTIONAL, INTENT(OUT) :: mask1 216 LOGICAL(KIND=C_BOOL) :: mask1_tmp 217 LOGICAL, OPTIONAL, INTENT(OUT) :: mask2 218 LOGICAL(KIND=C_BOOL) :: mask2_tmp 219 LOGICAL, OPTIONAL, INTENT(OUT) :: mask3 220 LOGICAL(KIND=C_BOOL) :: mask3_tmp 169 221 LOGICAL, OPTIONAL, INTENT(OUT) :: name 170 222 LOGICAL(KIND=C_BOOL) :: name_tmp … … 172 224 CALL xios(get_grid_handle)(grid_id,grid_hdl) 173 225 CALL xios(is_defined_grid_attr_hdl_) & 174 ( grid_hdl, axisDomainOrder, description, mask , name )226 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 175 227 176 228 END SUBROUTINE xios(is_defined_grid_attr) 177 229 178 230 SUBROUTINE xios(is_defined_grid_attr_hdl) & 179 ( grid_hdl, axisDomainOrder, description, mask , name )231 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 180 232 181 233 IMPLICIT NONE … … 185 237 LOGICAL, OPTIONAL, INTENT(OUT) :: description 186 238 LOGICAL(KIND=C_BOOL) :: description_tmp 187 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 188 LOGICAL(KIND=C_BOOL) :: mask_tmp 239 LOGICAL, OPTIONAL, INTENT(OUT) :: mask1 240 LOGICAL(KIND=C_BOOL) :: mask1_tmp 241 LOGICAL, OPTIONAL, INTENT(OUT) :: mask2 242 LOGICAL(KIND=C_BOOL) :: mask2_tmp 243 LOGICAL, OPTIONAL, INTENT(OUT) :: mask3 244 LOGICAL(KIND=C_BOOL) :: mask3_tmp 189 245 LOGICAL, OPTIONAL, INTENT(OUT) :: name 190 246 LOGICAL(KIND=C_BOOL) :: name_tmp 191 247 192 248 CALL xios(is_defined_grid_attr_hdl_) & 193 ( grid_hdl, axisDomainOrder, description, mask , name )249 ( grid_hdl, axisDomainOrder, description, mask1, mask2, mask3, name ) 194 250 195 251 END SUBROUTINE xios(is_defined_grid_attr_hdl) 196 252 197 253 SUBROUTINE xios(is_defined_grid_attr_hdl_) & 198 ( grid_hdl, axisDomainOrder_, description_, mask _, name_ )254 ( grid_hdl, axisDomainOrder_, description_, mask1_, mask2_, mask3_, name_ ) 199 255 200 256 IMPLICIT NONE … … 204 260 LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 205 261 LOGICAL(KIND=C_BOOL) :: description__tmp 206 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_ 207 LOGICAL(KIND=C_BOOL) :: mask__tmp 262 LOGICAL, OPTIONAL, INTENT(OUT) :: mask1_ 263 LOGICAL(KIND=C_BOOL) :: mask1__tmp 264 LOGICAL, OPTIONAL, INTENT(OUT) :: mask2_ 265 LOGICAL(KIND=C_BOOL) :: mask2__tmp 266 LOGICAL, OPTIONAL, INTENT(OUT) :: mask3_ 267 LOGICAL(KIND=C_BOOL) :: mask3__tmp 208 268 LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 209 269 LOGICAL(KIND=C_BOOL) :: name__tmp … … 219 279 ENDIF 220 280 221 IF (PRESENT(mask_)) THEN 222 mask__tmp=cxios_is_defined_grid_mask(grid_hdl%daddr) 223 mask_=mask__tmp 281 IF (PRESENT(mask1_)) THEN 282 mask1__tmp=cxios_is_defined_grid_mask1(grid_hdl%daddr) 283 mask1_=mask1__tmp 284 ENDIF 285 286 IF (PRESENT(mask2_)) THEN 287 mask2__tmp=cxios_is_defined_grid_mask2(grid_hdl%daddr) 288 mask2_=mask2__tmp 289 ENDIF 290 291 IF (PRESENT(mask3_)) THEN 292 mask3__tmp=cxios_is_defined_grid_mask3(grid_hdl%daddr) 293 mask3_=mask3__tmp 224 294 ENDIF 225 295
Note: See TracChangeset
for help on using the changeset viewer.