Changeset 1064 for XIOS/trunk/src/test/test_remap.f90
- Timestamp:
- 03/02/17 10:42:39 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/test/test_remap.f90
r1018 r1064 16 16 TYPE(xios_context) :: ctx_hdl 17 17 18 DOUBLE PRECISION,ALLOCATABLE :: src_lon(:), dst_lon(:) 19 DOUBLE PRECISION,ALLOCATABLE :: src_lat(:), dst_lat(:) 18 DOUBLE PRECISION,ALLOCATABLE :: src_lon(:), dst_lon(:), src_lon_tmp(:) 19 DOUBLE PRECISION,ALLOCATABLE :: src_lat(:), dst_lat(:), src_lat_tmp(:) 20 20 DOUBLE PRECISION,ALLOCATABLE :: src_boundslon(:,:), dst_boundslon(:,:) 21 21 DOUBLE PRECISION,ALLOCATABLE :: src_boundslat(:,:), dst_boundslat(:,:) 22 DOUBLE PRECISION,ALLOCATABLE :: src_field_2D(:) 22 DOUBLE PRECISION,ALLOCATABLE :: src_field_2D(:), src_field_2D_clone(:) 23 23 DOUBLE PRECISION,ALLOCATABLE :: tmp_field_0(:), tmp_field_1(:), tmp_field_2(:) 24 24 DOUBLE PRECISION,ALLOCATABLE :: src_field_3D(:,:), src_field_4D(:,:,:), lval(:), lval1(:), lval2(:), src_field_pression(:,:) … … 36 36 INTEGER :: varid 37 37 INTEGER :: ts 38 INTEGER :: i 38 INTEGER :: i,j 39 39 INTEGER,PARAMETER :: llm=5, interpolatedLlm = 4, llm2 = 6 40 DOUBLE PRECISION, PARAMETER :: missing_value = 100000 40 41 41 42 CALL MPI_INIT(ierr) … … 64 65 ENDIF 65 66 66 ALLOCATE(src_lon(src_ni) )67 ALLOCATE(src_lat(src_ni) )67 ALLOCATE(src_lon(src_ni), src_lon_tmp(src_ni)) 68 ALLOCATE(src_lat(src_ni), src_lat_tmp(src_ni)) 68 69 ALLOCATE(src_boundslon(src_nvertex,src_ni)) 69 70 ALLOCATE(src_boundslat(src_nvertex,src_ni)) 70 ALLOCATE(src_field_2D(src_ni) )71 ALLOCATE(src_field_2D(src_ni), src_field_2D_clone(src_ni)) 71 72 ALLOCATE(src_field_3D(src_ni,llm)) 72 73 ALLOCATE(src_field_4D(src_ni,llm,llm2)) … … 89 90 DO i=1,src_ni 90 91 src_field_3D(i,:) = src_field_2D(i) 91 IF ( MOD(i,10)==0) THEN92 IF ((23.5 < src_lat(i)) .AND. (src_lat(i) < 65.5) .AND. (0 < src_lon(i)) .AND. (src_lon(i) < 30)) THEN 92 93 src_mask_2D(i)=.FALSE. 93 src_field_2D(i) = 10000094 src_field_2D(i) = missing_value 94 95 ELSE 95 96 src_mask_2D(i)=.TRUE. 96 97 ENDIF 97 ENDDO 98 src_lon_tmp(i) = src_lon(i) + 1000 99 src_lat_tmp(i) = src_lat(i) + 10000 100 ENDDO 101 src_field_2D_clone = src_field_2D 98 102 99 103 DO i=1,llm … … 101 105 src_field_pression(:,i) = i * 100 102 106 IF (MOD(i,3)==0) THEN 103 ! src_field_pression(:,i) = 100000104 src_field_3D(:,i) = 100000107 ! src_field_pression(:,i) = missing_value 108 src_field_3D(:,i) = missing_value 105 109 ELSE 106 110 ! src_field_pression(:,i) = i * 100 … … 170 174 bounds_lon_1D=dst_boundslon, bounds_lat_1D=dst_boundslat, nvertex=dst_nvertex) 171 175 176 CALL xios_set_domain_attr("src_domain_unstructured_read", ni_glo=src_ni_glo, ibegin=src_ibegin, ni=src_ni, type="unstructured") 177 CALL xios_set_domain_attr("src_domain_unstructured_read", lonvalue_1D=src_lon_tmp, latvalue_1D=src_lat_tmp, & 178 bounds_lon_1D=src_boundslon, bounds_lat_1D=src_boundslat, nvertex=src_nvertex) 179 180 172 181 dtime%second = 3600 173 182 CALL xios_set_timestep(dtime) 174 183 175 184 CALL xios_close_context_definition() 176 !CALL xios_get_domain_attr("src_domain_regular_read", ni=src_tmp_ni, nj=src_tmp_nj)177 !ALLOCATE(tmp_field_0(src_tmp_ni*src_tmp_nj))178 179 !CALL xios_get_axis_attr("src_axis_curvilinear_read", n=src_tmp_n)180 !CALL xios_get_domain_attr("src_domain_curvilinear_read", ni=src_tmp_ni, nj=src_tmp_nj)181 !ALLOCATE(tmp_field_1(src_tmp_ni*src_tmp_nj*src_tmp_n))182 183 !CALL xios_get_domain_attr("src_domain_unstructured_read", ni=src_tmp_ni, nj=src_tmp_nj)184 !ALLOCATE(tmp_field_2(src_tmp_ni*src_tmp_nj))185 186 DO ts=1, 5187 !CALL xios_recv_field("src_field_regular", tmp_field_0)188 !CALL xios_recv_field("src_field_curvilinear", tmp_field_1)189 !CALL xios_recv_field("src_field_unstructured", tmp_field_2)185 CALL xios_get_domain_attr("src_domain_regular_read", ni=src_tmp_ni, nj=src_tmp_nj) 186 ALLOCATE(tmp_field_0(src_tmp_ni*src_tmp_nj)) 187 188 CALL xios_get_axis_attr("src_axis_curvilinear_read", n=src_tmp_n) 189 CALL xios_get_domain_attr("src_domain_curvilinear_read", ni=src_tmp_ni, nj=src_tmp_nj) 190 ALLOCATE(tmp_field_1(src_tmp_ni*src_tmp_nj*src_tmp_n)) 191 192 CALL xios_get_domain_attr("src_domain_unstructured_read", ni=src_tmp_ni, nj=src_tmp_nj) 193 ALLOCATE(tmp_field_2(src_tmp_ni*src_tmp_nj)) 194 195 DO ts=1,1 196 CALL xios_recv_field("src_field_regular", tmp_field_0) 197 CALL xios_recv_field("src_field_curvilinear", tmp_field_1) 198 CALL xios_recv_field("src_field_unstructured", tmp_field_2) 190 199 CALL xios_update_calendar(ts) 191 200 CALL xios_send_field("src_field_2D",src_field_2D) 192 CALL xios_send_field("src_field_2D_clone",src_field_2D) 201 202 DO i=1,src_ni 203 src_field_2D_clone(i) = src_field_2D(i) 204 IF ((23.5 * ts < src_lat(i)) .AND. (src_lat(i) < 65.5 *ts) .AND. (0 < src_lon(i)) .AND. (src_lon(i) < 30*ts)) THEN 205 src_field_2D_clone(i) = missing_value 206 ENDIF 207 ENDDO 208 209 CALL xios_send_field("src_field_2D_clone",src_field_2D_clone) 193 210 CALL xios_send_field("src_field_3D",src_field_3D) 194 211 CALL xios_send_field("src_field_3D_clone",src_field_3D) 195 212 CALL xios_send_field("src_field_4D",src_field_4D) 196 213 CALL xios_send_field("src_field_3D_pression",src_field_pression) 197 !CALL xios_send_field("tmp_field_0",tmp_field_0)198 !CALL xios_send_field("tmp_field_1",tmp_field_1)199 !CALL xios_send_field("tmp_field_2",tmp_field_2)214 CALL xios_send_field("tmp_field_0",tmp_field_0) 215 CALL xios_send_field("tmp_field_1",tmp_field_1) 216 CALL xios_send_field("tmp_field_2",tmp_field_2) 200 217 CALL wait_us(5000) ; 201 218 ENDDO … … 205 222 DEALLOCATE(src_lon, src_lat, src_boundslon,src_boundslat, src_field_2D) 206 223 DEALLOCATE(dst_lon, dst_lat, dst_boundslon,dst_boundslat) 207 !DEALLOCATE(tmp_field_0, tmp_field_1, tmp_field_2)224 DEALLOCATE(tmp_field_0, tmp_field_1, tmp_field_2) 208 225 209 226 CALL MPI_COMM_FREE(comm, ierr)
Note: See TracChangeset
for help on using the changeset viewer.