New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13728 for NEMO – NEMO

Changeset 13728 for NEMO


Ignore:
Timestamp:
2020-11-05T17:06:42+01:00 (3 years ago)
Author:
andmirek
Message:

Ticket #2462: merge changes 13702,13717,13718 from #2386

Location:
NEMO/branches/2020/dev_12905_xios_restart/src/OCE
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/IOM/iom.F90

    r13727 r13728  
    12811281#if defined key_iomput 
    12821282!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 
    12831290         IF( PRESENT(pv_r3d) ) THEN 
    12841291            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 
    12871296         ELSEIF( PRESENT(pv_r2d) ) THEN 
    12881297            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 
    12911302         ELSEIF( PRESENT(pv_r1d) ) THEN 
    12921303            IF(lwp) WRITE(numout,*) 'XIOS RST READ (1D): ', TRIM(cdvar) 
     
    13071318      zofs = iom_file(kiomid)%ofs(idvar)      ! offset 
    13081319      IF(     PRESENT(pv_r1d) ) THEN 
    1309          IF( zscf /= 1. )   pv_r1d(:) = pv_r1d(:) * zscf  
    1310          IF( zofs /= 0. )   pv_r1d(:) = pv_r1d(:) + zofs 
     1320         IF( zscf /= 1._wp )   pv_r1d(:) = pv_r1d(:) * zscf  
     1321         IF( zofs /= 0._wp )   pv_r1d(:) = pv_r1d(:) + zofs 
    13111322      ELSEIF( PRESENT(pv_r2d) ) THEN 
    1312          IF( zscf /= 1.)   pv_r2d(:,:) = pv_r2d(:,:) * zscf 
    1313          IF( zofs /= 0.)   pv_r2d(:,:) = pv_r2d(:,:) + zofs 
     1323         IF( zscf /= 1._wp)   pv_r2d(:,:) = pv_r2d(:,:) * zscf 
     1324         IF( zofs /= 0._wp)   pv_r2d(:,:) = pv_r2d(:,:) + zofs 
    13141325      ELSEIF( PRESENT(pv_r3d) ) THEN 
    1315          IF( zscf /= 1.)   pv_r3d(:,:,:) = pv_r3d(:,:,:) * zscf 
    1316          IF( zofs /= 0.)   pv_r3d(:,:,:) = pv_r3d(:,:,:) + zofs 
     1326         IF( zscf /= 1._wp)   pv_r3d(:,:,:) = pv_r3d(:,:,:) * zscf 
     1327         IF( zofs /= 0._wp)   pv_r3d(:,:,:) = pv_r3d(:,:,:) + zofs 
    13171328      ENDIF 
    13181329      ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/IOM/restart.F90

    r13727 r13728  
    116116                  clpname = TRIM(Agrif_CFixed())//"_"//clname    
    117117               ENDIF 
    118                CALL iom_init( cwxios_context, TRIM(clpath)//TRIM(clpname), ld_tmppatch = .false.,& 
    119                                                                            ld_closedef = .FALSE. ) 
     118               CALL iom_init( cwxios_context, TRIM(clpath)//TRIM(clpname), .false. ) 
     119               CALL xios_update_calendar(nitrst) 
    120120               CALL iom_swap(      cxios_context          ) 
    121121#else 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ISF/isfpar.F90

    r13727 r13728  
    152152      ! read par variable from restart 
    153153      IF ( ln_rstart ) CALL isfrst_read('par', risf_par_tsc, fwfisf_par, risf_par_tsc_b, fwfisf_par_b) 
     154      !define fields for restart 
     155      IF( lwxios ) THEN 
     156         CALL iom_set_rstw_var_active( 'fwfisf_'//'par'//'_b') 
     157         CALL iom_set_rstw_var_active( 'isf_hc_'//'par'//'_b') 
     158         CALL iom_set_rstw_var_active( 'isf_sc_'//'par'//'_b') 
     159      ENDIF 
     160 
    154161      ! 
    155162      SELECT CASE ( TRIM(cn_isfpar_mlt) ) 
Note: See TracChangeset for help on using the changeset viewer.