Changeset 817 for XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
- Timestamp:
- 01/26/16 18:19:09 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
r791 r817 12 12 13 13 SUBROUTINE xios(set_grid_attr) & 14 ( grid_id, description, mask 1, mask2, mask3, name )14 ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 15 15 16 16 IMPLICIT NONE … … 18 18 CHARACTER(LEN=*), INTENT(IN) ::grid_id 19 19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 20 LOGICAL , OPTIONAL, INTENT(IN) :: mask 1(:)21 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 1_tmp(:)22 LOGICAL , OPTIONAL, INTENT(IN) :: mask 2(:,:)23 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 2_tmp(:,:)24 LOGICAL , OPTIONAL, INTENT(IN) :: mask 3(:,:,:)25 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 3_tmp(:,:,:)20 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d(:) 21 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 22 LOGICAL , OPTIONAL, INTENT(IN) :: mask_2d(:,:) 23 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:) 24 LOGICAL , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 25 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 26 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 27 27 28 28 CALL xios(get_grid_handle)(grid_id,grid_hdl) 29 29 CALL xios(set_grid_attr_hdl_) & 30 ( grid_hdl, description, mask 1, mask2, mask3, name )30 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 31 31 32 32 END SUBROUTINE xios(set_grid_attr) 33 33 34 34 SUBROUTINE xios(set_grid_attr_hdl) & 35 ( grid_hdl, description, mask 1, mask2, mask3, name )35 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 36 36 37 37 IMPLICIT NONE 38 38 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 39 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 40 LOGICAL , OPTIONAL, INTENT(IN) :: mask 1(:)41 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 1_tmp(:)42 LOGICAL , OPTIONAL, INTENT(IN) :: mask 2(:,:)43 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 2_tmp(:,:)44 LOGICAL , OPTIONAL, INTENT(IN) :: mask 3(:,:,:)45 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 3_tmp(:,:,:)40 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d(:) 41 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 42 LOGICAL , OPTIONAL, INTENT(IN) :: mask_2d(:,:) 43 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:) 44 LOGICAL , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 45 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 46 46 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 47 47 48 48 CALL xios(set_grid_attr_hdl_) & 49 ( grid_hdl, description, mask 1, mask2, mask3, name )49 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 50 50 51 51 END SUBROUTINE xios(set_grid_attr_hdl) 52 52 53 53 SUBROUTINE xios(set_grid_attr_hdl_) & 54 ( grid_hdl, description_, mask 1_, mask2_, mask3_, name_ )54 ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 55 55 56 56 IMPLICIT NONE 57 57 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 58 58 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 59 LOGICAL , OPTIONAL, INTENT(IN) :: mask 1_(:)60 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 1__tmp(:)61 LOGICAL , OPTIONAL, INTENT(IN) :: mask 2_(:,:)62 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 2__tmp(:,:)63 LOGICAL , OPTIONAL, INTENT(IN) :: mask 3_(:,:,:)64 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 3__tmp(:,:,:)59 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d_(:) 60 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) 61 LOGICAL , OPTIONAL, INTENT(IN) :: mask_2d_(:,:) 62 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d__tmp(:,:) 63 LOGICAL , OPTIONAL, INTENT(IN) :: mask_3d_(:,:,:) 64 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 65 65 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 66 66 … … 69 69 ENDIF 70 70 71 IF (PRESENT(mask 1_)) THEN72 ALLOCATE(mask 1__tmp(SIZE(mask1_,1)))73 mask 1__tmp = mask1_74 CALL cxios_set_grid_mask 1(grid_hdl%daddr, mask1__tmp, SHAPE(mask1_))75 ENDIF 76 77 IF (PRESENT(mask 2_)) THEN78 ALLOCATE(mask 2__tmp(SIZE(mask2_,1), SIZE(mask2_,2)))79 mask 2__tmp = mask2_80 CALL cxios_set_grid_mask 2(grid_hdl%daddr, mask2__tmp, SHAPE(mask2_))81 ENDIF 82 83 IF (PRESENT(mask 3_)) THEN84 ALLOCATE(mask 3__tmp(SIZE(mask3_,1), SIZE(mask3_,2), SIZE(mask3_,3)))85 mask 3__tmp = mask3_86 CALL cxios_set_grid_mask 3(grid_hdl%daddr, mask3__tmp, SHAPE(mask3_))71 IF (PRESENT(mask_1d_)) THEN 72 ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1))) 73 mask_1d__tmp = mask_1d_ 74 CALL cxios_set_grid_mask_1d(grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 75 ENDIF 76 77 IF (PRESENT(mask_2d_)) THEN 78 ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2))) 79 mask_2d__tmp = mask_2d_ 80 CALL cxios_set_grid_mask_2d(grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 81 ENDIF 82 83 IF (PRESENT(mask_3d_)) THEN 84 ALLOCATE(mask_3d__tmp(SIZE(mask_3d_,1), SIZE(mask_3d_,2), SIZE(mask_3d_,3))) 85 mask_3d__tmp = mask_3d_ 86 CALL cxios_set_grid_mask_3d(grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_)) 87 87 ENDIF 88 88 … … 94 94 95 95 SUBROUTINE xios(get_grid_attr) & 96 ( grid_id, description, mask 1, mask2, mask3, name )96 ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 97 97 98 98 IMPLICIT NONE … … 100 100 CHARACTER(LEN=*), INTENT(IN) ::grid_id 101 101 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 102 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 1(:)103 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 1_tmp(:)104 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 2(:,:)105 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 2_tmp(:,:)106 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 3(:,:,:)107 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 3_tmp(:,:,:)102 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d(:) 103 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 104 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_2d(:,:) 105 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:) 106 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 107 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 108 108 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 109 109 110 110 CALL xios(get_grid_handle)(grid_id,grid_hdl) 111 111 CALL xios(get_grid_attr_hdl_) & 112 ( grid_hdl, description, mask 1, mask2, mask3, name )112 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 113 113 114 114 END SUBROUTINE xios(get_grid_attr) 115 115 116 116 SUBROUTINE xios(get_grid_attr_hdl) & 117 ( grid_hdl, description, mask 1, mask2, mask3, name )117 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 118 118 119 119 IMPLICIT NONE 120 120 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 121 121 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 122 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 1(:)123 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 1_tmp(:)124 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 2(:,:)125 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 2_tmp(:,:)126 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 3(:,:,:)127 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 3_tmp(:,:,:)122 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d(:) 123 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 124 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_2d(:,:) 125 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:) 126 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 127 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 128 128 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 129 129 130 130 CALL xios(get_grid_attr_hdl_) & 131 ( grid_hdl, description, mask 1, mask2, mask3, name )131 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 132 132 133 133 END SUBROUTINE xios(get_grid_attr_hdl) 134 134 135 135 SUBROUTINE xios(get_grid_attr_hdl_) & 136 ( grid_hdl, description_, mask 1_, mask2_, mask3_, name_ )136 ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 137 137 138 138 IMPLICIT NONE 139 139 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 140 140 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 141 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 1_(:)142 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 1__tmp(:)143 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 2_(:,:)144 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 2__tmp(:,:)145 LOGICAL , OPTIONAL, INTENT(OUT) :: mask 3_(:,:,:)146 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask 3__tmp(:,:,:)141 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d_(:) 142 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) 143 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_2d_(:,:) 144 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d__tmp(:,:) 145 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_3d_(:,:,:) 146 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 147 147 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 148 148 … … 151 151 ENDIF 152 152 153 IF (PRESENT(mask 1_)) THEN154 ALLOCATE(mask 1__tmp(SIZE(mask1_,1)))155 CALL cxios_get_grid_mask 1(grid_hdl%daddr, mask1__tmp, SHAPE(mask1_))156 mask 1_ = mask1__tmp157 ENDIF 158 159 IF (PRESENT(mask 2_)) THEN160 ALLOCATE(mask 2__tmp(SIZE(mask2_,1), SIZE(mask2_,2)))161 CALL cxios_get_grid_mask 2(grid_hdl%daddr, mask2__tmp, SHAPE(mask2_))162 mask 2_ = mask2__tmp163 ENDIF 164 165 IF (PRESENT(mask 3_)) THEN166 ALLOCATE(mask 3__tmp(SIZE(mask3_,1), SIZE(mask3_,2), SIZE(mask3_,3)))167 CALL cxios_get_grid_mask 3(grid_hdl%daddr, mask3__tmp, SHAPE(mask3_))168 mask 3_ = mask3__tmp153 IF (PRESENT(mask_1d_)) THEN 154 ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1))) 155 CALL cxios_get_grid_mask_1d(grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_)) 156 mask_1d_ = mask_1d__tmp 157 ENDIF 158 159 IF (PRESENT(mask_2d_)) THEN 160 ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2))) 161 CALL cxios_get_grid_mask_2d(grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_)) 162 mask_2d_ = mask_2d__tmp 163 ENDIF 164 165 IF (PRESENT(mask_3d_)) THEN 166 ALLOCATE(mask_3d__tmp(SIZE(mask_3d_,1), SIZE(mask_3d_,2), SIZE(mask_3d_,3))) 167 CALL cxios_get_grid_mask_3d(grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_)) 168 mask_3d_ = mask_3d__tmp 169 169 ENDIF 170 170 … … 176 176 177 177 SUBROUTINE xios(is_defined_grid_attr) & 178 ( grid_id, description, mask 1, mask2, mask3, name )178 ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 179 179 180 180 IMPLICIT NONE … … 183 183 LOGICAL, OPTIONAL, INTENT(OUT) :: description 184 184 LOGICAL(KIND=C_BOOL) :: description_tmp 185 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 1186 LOGICAL(KIND=C_BOOL) :: mask 1_tmp187 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 2188 LOGICAL(KIND=C_BOOL) :: mask 2_tmp189 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 3190 LOGICAL(KIND=C_BOOL) :: mask 3_tmp185 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 186 LOGICAL(KIND=C_BOOL) :: mask_1d_tmp 187 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d 188 LOGICAL(KIND=C_BOOL) :: mask_2d_tmp 189 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 190 LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 191 191 LOGICAL, OPTIONAL, INTENT(OUT) :: name 192 192 LOGICAL(KIND=C_BOOL) :: name_tmp … … 194 194 CALL xios(get_grid_handle)(grid_id,grid_hdl) 195 195 CALL xios(is_defined_grid_attr_hdl_) & 196 ( grid_hdl, description, mask 1, mask2, mask3, name )196 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 197 197 198 198 END SUBROUTINE xios(is_defined_grid_attr) 199 199 200 200 SUBROUTINE xios(is_defined_grid_attr_hdl) & 201 ( grid_hdl, description, mask 1, mask2, mask3, name )201 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 202 202 203 203 IMPLICIT NONE … … 205 205 LOGICAL, OPTIONAL, INTENT(OUT) :: description 206 206 LOGICAL(KIND=C_BOOL) :: description_tmp 207 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 1208 LOGICAL(KIND=C_BOOL) :: mask 1_tmp209 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 2210 LOGICAL(KIND=C_BOOL) :: mask 2_tmp211 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 3212 LOGICAL(KIND=C_BOOL) :: mask 3_tmp207 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 208 LOGICAL(KIND=C_BOOL) :: mask_1d_tmp 209 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d 210 LOGICAL(KIND=C_BOOL) :: mask_2d_tmp 211 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 212 LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 213 213 LOGICAL, OPTIONAL, INTENT(OUT) :: name 214 214 LOGICAL(KIND=C_BOOL) :: name_tmp 215 215 216 216 CALL xios(is_defined_grid_attr_hdl_) & 217 ( grid_hdl, description, mask 1, mask2, mask3, name )217 ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 218 218 219 219 END SUBROUTINE xios(is_defined_grid_attr_hdl) 220 220 221 221 SUBROUTINE xios(is_defined_grid_attr_hdl_) & 222 ( grid_hdl, description_, mask 1_, mask2_, mask3_, name_ )222 ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 223 223 224 224 IMPLICIT NONE … … 226 226 LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 227 227 LOGICAL(KIND=C_BOOL) :: description__tmp 228 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 1_229 LOGICAL(KIND=C_BOOL) :: mask 1__tmp230 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 2_231 LOGICAL(KIND=C_BOOL) :: mask 2__tmp232 LOGICAL, OPTIONAL, INTENT(OUT) :: mask 3_233 LOGICAL(KIND=C_BOOL) :: mask 3__tmp228 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d_ 229 LOGICAL(KIND=C_BOOL) :: mask_1d__tmp 230 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d_ 231 LOGICAL(KIND=C_BOOL) :: mask_2d__tmp 232 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d_ 233 LOGICAL(KIND=C_BOOL) :: mask_3d__tmp 234 234 LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 235 235 LOGICAL(KIND=C_BOOL) :: name__tmp … … 240 240 ENDIF 241 241 242 IF (PRESENT(mask 1_)) THEN243 mask 1__tmp = cxios_is_defined_grid_mask1(grid_hdl%daddr)244 mask 1_ = mask1__tmp245 ENDIF 246 247 IF (PRESENT(mask 2_)) THEN248 mask 2__tmp = cxios_is_defined_grid_mask2(grid_hdl%daddr)249 mask 2_ = mask2__tmp250 ENDIF 251 252 IF (PRESENT(mask 3_)) THEN253 mask 3__tmp = cxios_is_defined_grid_mask3(grid_hdl%daddr)254 mask 3_ = mask3__tmp242 IF (PRESENT(mask_1d_)) THEN 243 mask_1d__tmp = cxios_is_defined_grid_mask_1d(grid_hdl%daddr) 244 mask_1d_ = mask_1d__tmp 245 ENDIF 246 247 IF (PRESENT(mask_2d_)) THEN 248 mask_2d__tmp = cxios_is_defined_grid_mask_2d(grid_hdl%daddr) 249 mask_2d_ = mask_2d__tmp 250 ENDIF 251 252 IF (PRESENT(mask_3d_)) THEN 253 mask_3d__tmp = cxios_is_defined_grid_mask_3d(grid_hdl%daddr) 254 mask_3d_ = mask_3d__tmp 255 255 ENDIF 256 256
Note: See TracChangeset
for help on using the changeset viewer.