Changeset 1851
- Timestamp:
- 01/20/20 15:14:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/test/generic_testcase.f90
r1674 r1851 192 192 LOGICAL :: ok_field_XW, ok_field_YW, ok_field_XYW, ok_field_ZW, ok_field_XYZW, ok_field_XZW, ok_field_YZW 193 193 194 LOGICAL :: ok_other_field2D, ok_other_field3D, ok_other_pressure, ok_other_field2D_sub, ok_other_field3D_sub,ok_other_field3D_recv, ok_other_field3D_send 195 LOGICAL :: ok_other_field_X, ok_other_field_Y, ok_other_field_XY, ok_other_field_Z, ok_other_field_XYZ, ok_other_field_XZ, ok_other_field_YZ 196 LOGICAL :: ok_other_field2D_W, ok_other_field3D_W, ok_other_pressure_W, ok_other_field2D_sub_W, ok_other_field3D_sub_W,ok_other_field3D_recv_W, ok_other_field3D_send_W 197 LOGICAL :: ok_other_field_XW, ok_other_field_YW, ok_other_field_XYW, ok_other_field_ZW, ok_other_field_XYZW, ok_other_field_XZW, ok_other_field_YZW 194 LOGICAL :: ok_other_field2D, ok_other_field3D, ok_other_pressure, ok_other_field2D_sub, ok_other_field3D_sub, & 195 ok_other_field3D_recv, ok_other_field3D_send 196 LOGICAL :: ok_other_field_X, ok_other_field_Y, ok_other_field_XY, ok_other_field_Z, ok_other_field_XYZ, & 197 ok_other_field_XZ, ok_other_field_YZ 198 LOGICAL :: ok_other_field2D_W, ok_other_field3D_W, ok_other_pressure_W, ok_other_field2D_sub_W, ok_other_field3D_sub_W, & 199 ok_other_field3D_recv_W, ok_other_field3D_send_W 200 LOGICAL :: ok_other_field_XW, ok_other_field_YW, ok_other_field_XYW, ok_other_field_ZW, ok_other_field_XYZW, & 201 ok_other_field_XZW, ok_other_field_YZW 198 202 199 203 !! XIOS Initialization (get the local communicator) … … 900 904 INTEGER :: ensemble_proc_size, ensemble_proc_rank 901 905 902 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 906 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 907 ensemble_proc_size, ensemble_proc_rank) 903 908 ALLOCATE(return_value(0:0)) 904 909 return_value(0)=ensemble_proc_rank 905 910 906 911 IF (xios_is_valid_axis(TRIM(ensemble_id))) THEN 907 CALL xios_set_axis_attr(ensemble_id, n_glo=ensemble_proc_size, begin=ensemble_proc_rank, n=1, value=return_value(:), unit='-') 912 CALL xios_set_axis_attr(ensemble_id, n_glo=ensemble_proc_size, begin=ensemble_proc_rank, n=1, value=return_value(:), & 913 unit='-') 908 914 ENDIF 909 915 … … 997 1003 CALL MPI_COMM_SIZE(comm,mpi_size,ierr) 998 1004 999 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 1005 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 1006 ensemble_proc_size, ensemble_proc_rank) 1000 1007 1001 1008 mpi_rank=domain_proc_rank … … 1192 1199 CALL xios_set_domain_attr(TRIM(domain_id), type="unstructured", ni_glo=ncell_glo, ni=ncell, ibegin=0, i_index=i_index) 1193 1200 CALL xios_set_domain_attr(TRIM(domain_id), data_dim=1, data_ni=data_n_index, data_i_index=data_i_index, mask_1d=return_mask) 1194 CALL xios_set_domain_attr(TRIM(domain_id), lonvalue_1D=lon, latvalue_1D=lat, nvertex=4, bounds_lon_1D=bounds_lon, bounds_lat_1D=bounds_lat) 1201 CALL xios_set_domain_attr(TRIM(domain_id), lonvalue_1D=lon, latvalue_1D=lat, nvertex=4, bounds_lon_1D=bounds_lon, & 1202 bounds_lat_1D=bounds_lat) 1195 1203 ENDIF 1196 1204 … … 1210 1218 1211 1219 1212 SUBROUTINE init_domain_dynamico(domain_id, comm, params, return_ni, return_nj, 1220 SUBROUTINE init_domain_dynamico(domain_id, comm, params, return_ni, return_nj, & 1213 1221 return_lon,return_lat,return_mask, return_index, & 1214 1222 return_X_lon,return_X_lat, return_X_mask, return_X_index, & … … 1252 1260 CALL MPI_COMM_SIZE(comm,mpi_size,ierr) 1253 1261 1254 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 1262 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 1263 ensemble_proc_size, ensemble_proc_rank) 1255 1264 1256 1265 CALL xios_get_current_context(ctx_hdl) … … 1258 1267 CALL xios_context_initialize("grid_dynamico",comm) 1259 1268 CALL xios_close_context_definition() 1260 CALL xios_get_domain_attr("domain_dynamico",ni_glo=ni_glo,nj_glo=nj_glo,ni=ni,nj=nj, ibegin=ibegin, jbegin=jbegin ,nvertex=nvertex) 1269 CALL xios_get_domain_attr("domain_dynamico",ni_glo=ni_glo,nj_glo=nj_glo,ni=ni,nj=nj, ibegin=ibegin, jbegin=jbegin , & 1270 nvertex=nvertex) 1261 1271 ALLOCATE(lon(ni),lat(ni),bounds_lon(nvertex,ni),bounds_lat(nvertex,ni)) 1262 CALL xios_get_domain_attr("domain_dynamico", lonvalue_1d=lon, latvalue_1d=lat, bounds_lon_1d=bounds_lon, bounds_lat_1d=bounds_lat) 1272 CALL xios_get_domain_attr("domain_dynamico", lonvalue_1d=lon, latvalue_1d=lat, bounds_lon_1d=bounds_lon, & 1273 bounds_lat_1d=bounds_lat) 1263 1274 CALL xios_context_finalize 1264 1275 … … 1278 1289 CALL MPI_AllgatherV(lon, ni, MPI_REAL8, lon_glo, ni_all, ibegin_all, MPI_REAL8, comm, ierr) 1279 1290 CALL MPI_AllgatherV(lat, ni, MPI_REAL8, lat_glo, ni_all, ibegin_all, MPI_REAL8, comm, ierr) 1280 CALL MPI_AllgatherV(bounds_lon, ni*nvertex, MPI_REAL8, bounds_lon_glo, ni_all*nvertex, ibegin_all*nvertex, MPI_REAL8, comm, ierr) 1281 CALL MPI_AllgatherV(bounds_lat, ni*nvertex, MPI_REAL8, bounds_lat_glo, ni_all*nvertex, ibegin_all*nvertex, MPI_REAL8, comm, ierr) 1291 CALL MPI_AllgatherV(bounds_lon, ni*nvertex, MPI_REAL8, bounds_lon_glo, ni_all*nvertex, ibegin_all*nvertex, & 1292 MPI_REAL8, comm, ierr) 1293 CALL MPI_AllgatherV(bounds_lat, ni*nvertex, MPI_REAL8, bounds_lat_glo, ni_all*nvertex, ibegin_all*nvertex, & 1294 MPI_REAL8, comm, ierr) 1282 1295 1283 1296 … … 1345 1358 IF (xios_is_valid_domain(TRIM(domain_id))) THEN 1346 1359 CALL xios_set_domain_attr(TRIM(domain_id), type="unstructured", ni_glo=ni_glo, ibegin=offset, ni=nbp, nvertex=nvertex) 1347 CALL xios_set_domain_attr(TRIM(domain_id), data_dim=1, lonvalue_1d=lon, latvalue_1d=lat, bounds_lon_1d=bounds_lon, bounds_lat_1d=bounds_lat, mask_1d=return_mask) 1360 CALL xios_set_domain_attr(TRIM(domain_id), data_dim=1, lonvalue_1d=lon, latvalue_1d=lat, bounds_lon_1d=bounds_lon, & 1361 bounds_lat_1d=bounds_lat, mask_1d=return_mask) 1348 1362 ENDIF 1349 1363 … … 1401 1415 CALL MPI_COMM_SIZE(comm,mpi_size,ierr) 1402 1416 1403 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 1417 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 1418 ensemble_proc_size, ensemble_proc_rank) 1404 1419 ni_glo=params%ni 1405 1420 nj_glo=params%nj … … 1484 1499 1485 1500 IF (xios_is_valid_domain(TRIM(domain_id))) THEN 1486 CALL xios_set_domain_attr(TRIM(domain_id), type="rectilinear", ni_glo=ni_glo, ibegin=ibegin, ni=ni, nj_glo=nj_glo, jbegin=jbegin, nj=nj) 1501 CALL xios_set_domain_attr(TRIM(domain_id), type="rectilinear", ni_glo=ni_glo, ibegin=ibegin, ni=ni, nj_glo=nj_glo, & 1502 jbegin=jbegin, nj=nj) 1487 1503 CALL xios_set_domain_attr(TRIM(domain_id), data_dim=2, lonvalue_1d=lon, latvalue_1d=lat, mask_1d=return_mask) 1488 1504 ENDIF … … 1538 1554 CALL MPI_COMM_SIZE(comm,mpi_size,ierr) 1539 1555 1540 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 1556 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 1557 ensemble_proc_size, ensemble_proc_rank) 1541 1558 ni_glo=params%ni 1542 1559 nj_glo=params%nj … … 1683 1700 1684 1701 IF (xios_is_valid_domain(TRIM(domain_id))) THEN 1685 CALL xios_set_domain_attr(TRIM(domain_id), type="rectilinear", ni_glo=ni_glo, ibegin=ibegin, ni=ni, nj_glo=nj_glo, jbegin=jbegin, nj=nj) 1702 CALL xios_set_domain_attr(TRIM(domain_id), type="rectilinear", ni_glo=ni_glo, ibegin=ibegin, ni=ni, nj_glo=nj_glo, & 1703 jbegin=jbegin, nj=nj) 1686 1704 CALL xios_set_domain_attr(TRIM(domain_id), data_dim=1, data_ni=size(return_index), data_i_index=return_index) 1687 1705 CALL xios_set_domain_attr(TRIM(domain_id), lonvalue_1d=lon, latvalue_1d=lat, mask_1d=mask) … … 1689 1707 1690 1708 IF (xios_is_valid_axis(TRIM(domain_id)//"_X")) THEN 1691 CALL xios_set_axis_attr(TRIM(domain_id)//"_X", n_glo=ni_glo, begin=ibegin, n=ni, value=return_X_lon, data_n=size(return_X_index), data_index=return_X_index) 1709 CALL xios_set_axis_attr(TRIM(domain_id)//"_X", n_glo=ni_glo, begin=ibegin, n=ni, value=return_X_lon, & 1710 data_n=size(return_X_index), data_index=return_X_index) 1692 1711 ENDIF 1693 1712 1694 1713 IF (xios_is_valid_axis(TRIM(domain_id)//"_Y")) THEN 1695 CALL xios_set_axis_attr(TRIM(domain_id)//"_Y", n_glo=nj_glo, begin=jbegin, n=nj, value=return_Y_lat, data_n=size(return_Y_index), data_index=return_Y_index) 1714 CALL xios_set_axis_attr(TRIM(domain_id)//"_Y", n_glo=nj_glo, begin=jbegin, n=nj, value=return_Y_lat, & 1715 data_n=size(return_Y_index), data_index=return_Y_index) 1696 1716 ENDIF 1697 1717 … … 1742 1762 CALL MPI_COMM_SIZE(comm,mpi_size,ierr) 1743 1763 1744 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 1764 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 1765 ensemble_proc_size, ensemble_proc_rank) 1745 1766 ni_glo=params%ni 1746 1767 nj_glo=params%nj … … 1911 1932 1912 1933 IF (xios_is_valid_axis(TRIM(domain_id)//"_X")) THEN 1913 CALL xios_set_axis_attr(TRIM(domain_id)//"_X", n_glo=ni_glo, begin=ibegin, n=ni, data_begin=-offset_i, data_n=ni+2*offset_i, value=return_X_lon) 1914 ! CALL xios_set_axis_attr(TRIM(domain_id)//"_X", n_glo=ni_glo, begin=ibegin, n=ni, data_index=return_X_index, data_n=ni+2*offset_i, value=return_X_lon) 1934 CALL xios_set_axis_attr(TRIM(domain_id)//"_X", n_glo=ni_glo, begin=ibegin, n=ni, data_begin=-offset_i, & 1935 data_n=ni+2*offset_i, value=return_X_lon) 1936 ! CALL xios_set_axis_attr(TRIM(domain_id)//"_X", n_glo=ni_glo, begin=ibegin, n=ni, data_index=return_X_index,& 1937 ! data_n=ni+2*offset_i, value=return_X_lon) 1915 1938 ENDIF 1916 1939 1917 1940 IF (xios_is_valid_axis(TRIM(domain_id)//"_Y")) THEN 1918 CALL xios_set_axis_attr(TRIM(domain_id)//"_Y", n_glo=nj_glo, begin=jbegin, n=nj, data_begin=-offset_j, data_n=nj+2*offset_j, value=return_Y_lat) 1919 ! CALL xios_set_axis_attr(TRIM(domain_id)//"_Y", n_glo=nj_glo, begin=jbegin, n=nj, data_index=return_Y_index, data_n=nj+2*offset_j, value=return_Y_lat) 1941 CALL xios_set_axis_attr(TRIM(domain_id)//"_Y", n_glo=nj_glo, begin=jbegin, n=nj, data_begin=-offset_j, & 1942 data_n=nj+2*offset_j, value=return_Y_lat) 1943 ! CALL xios_set_axis_attr(TRIM(domain_id)//"_Y", n_glo=nj_glo, begin=jbegin, n=nj, data_index=return_Y_index, & 1944 ! data_n=nj+2*offset_j, value=return_Y_lat) 1920 1945 ENDIF 1921 1946 … … 2003 2028 INTEGER :: ensemble_proc_size, ensemble_proc_rank 2004 2029 2005 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 2030 CALL get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 2031 ensemble_proc_size, ensemble_proc_rank) 2006 2032 2007 2033 nlev_glo=params%nlev … … 2043 2069 return_mask=.TRUE. 2044 2070 CALL set_axis_mask(params,value,return_mask) 2045 CALL xios_set_axis_attr(axis_id, n_glo=nlev_glo, begin=begin, n=nlev, value=value*100000, mask=return_mask, bounds=bounds_value*100000, unit='Pa', positive='up') 2071 CALL xios_set_axis_attr(axis_id, n_glo=nlev_glo, begin=begin, n=nlev, value=value*100000, mask=return_mask, & 2072 bounds=bounds_value*100000, unit='Pa', positive='up') 2046 2073 2047 2074 … … 2239 2266 2240 2267 2241 SUBROUTINE get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, ensemble_proc_size, ensemble_proc_rank) 2268 SUBROUTINE get_decomposition(comm, params, domain_proc_size, domain_proc_rank, axis_proc_size, axis_proc_rank, & 2269 ensemble_proc_size, ensemble_proc_rank) 2242 2270 IMPLICIT NONE 2243 2271 INTEGER,INTENT(IN) :: comm
Note: See TracChangeset
for help on using the changeset viewer.