- Timestamp:
- 2020-11-05T17:06:42+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/IOM/iom.F90
r13727 r13728 1281 1281 #if defined key_iomput 1282 1282 !would be good to be able to check which context is active and swap only if current is not restart 1283 idvar = iom_varid( kiomid, cdvar ) 1284 1285 zsgn = 1._wp 1286 IF( PRESENT(psgn ) ) zsgn = psgn 1287 cl_type = 'T' 1288 IF( PRESENT(cd_type) ) cl_type = cd_type 1289 1283 1290 IF( PRESENT(pv_r3d) ) THEN 1284 1291 IF(lwp) WRITE(numout,*) 'XIOS RST READ (3D): ',TRIM(cdvar) 1285 CALL xios_recv_field( trim(cdvar), pv_r3d) 1286 IF(idom /= jpdom_unknown ) CALL lbc_lnk( 'iom', pv_r3d,'Z', -999., kfillmode = jpfillnothing) 1292 CALL xios_recv_field( trim(cdvar), pv_r3d(Nis0:Nie0, Njs0:Nje0, :)) 1293 IF(idom /= jpdom_unknown .AND. cl_type /= 'Z' ) THEN 1294 CALL lbc_lnk( 'iom', pv_r3d, cl_type, zsgn, kfillmode = kfill) 1295 ENDIF 1287 1296 ELSEIF( PRESENT(pv_r2d) ) THEN 1288 1297 IF(lwp) WRITE(numout,*) 'XIOS RST READ (2D): ', TRIM(cdvar) 1289 CALL xios_recv_field( trim(cdvar), pv_r2d) 1290 IF(idom /= jpdom_unknown ) CALL lbc_lnk('iom', pv_r2d,'Z',-999., kfillmode = jpfillnothing) 1298 CALL xios_recv_field( trim(cdvar), pv_r2d(Nis0:Nie0, Njs0:Nje0)) 1299 IF(idom /= jpdom_unknown .AND. cl_type /= 'Z' ) THEN 1300 CALL lbc_lnk('iom', pv_r2d, cl_type, zsgn, kfillmode = kfill) 1301 ENDIF 1291 1302 ELSEIF( PRESENT(pv_r1d) ) THEN 1292 1303 IF(lwp) WRITE(numout,*) 'XIOS RST READ (1D): ', TRIM(cdvar) … … 1307 1318 zofs = iom_file(kiomid)%ofs(idvar) ! offset 1308 1319 IF( PRESENT(pv_r1d) ) THEN 1309 IF( zscf /= 1. ) pv_r1d(:) = pv_r1d(:) * zscf1310 IF( zofs /= 0. ) pv_r1d(:) = pv_r1d(:) + zofs1320 IF( zscf /= 1._wp ) pv_r1d(:) = pv_r1d(:) * zscf 1321 IF( zofs /= 0._wp ) pv_r1d(:) = pv_r1d(:) + zofs 1311 1322 ELSEIF( PRESENT(pv_r2d) ) THEN 1312 IF( zscf /= 1. ) pv_r2d(:,:) = pv_r2d(:,:) * zscf1313 IF( zofs /= 0. ) pv_r2d(:,:) = pv_r2d(:,:) + zofs1323 IF( zscf /= 1._wp) pv_r2d(:,:) = pv_r2d(:,:) * zscf 1324 IF( zofs /= 0._wp) pv_r2d(:,:) = pv_r2d(:,:) + zofs 1314 1325 ELSEIF( PRESENT(pv_r3d) ) THEN 1315 IF( zscf /= 1. ) pv_r3d(:,:,:) = pv_r3d(:,:,:) * zscf1316 IF( zofs /= 0. ) pv_r3d(:,:,:) = pv_r3d(:,:,:) + zofs1326 IF( zscf /= 1._wp) pv_r3d(:,:,:) = pv_r3d(:,:,:) * zscf 1327 IF( zofs /= 0._wp) pv_r3d(:,:,:) = pv_r3d(:,:,:) + zofs 1317 1328 ENDIF 1318 1329 !
Note: See TracChangeset
for help on using the changeset viewer.