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 13727 for NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX – NEMO

Ignore:
Timestamp:
2020-11-05T15:18:53+01:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2462: Upate to trunk rev 13688

Location:
NEMO/branches/2020/dev_12905_xios_restart
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_12905_xios_restart

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
        88 
        99# SETTE 
        10 ^/utils/CI/sette@HEAD         sette 
         10^/utils/CI/sette@13559        sette 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/EXPREF/1_context_nemo.xml

    r12276 r13727  
    1111       <variable id="ref_month" type="int"> 01 </variable> 
    1212       <variable id="ref_day"   type="int"> 01 </variable> 
    13        <variable id="rau0"      type="float" > 1026.0 </variable> 
     13       <variable id="rho0"      type="float" > 1026.0 </variable> 
    1414       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
    1515       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/EXPREF/1_namelist_cfg

    r12489 r13727  
    9898&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    9999!----------------------------------------------------------------------- 
    100    ln_spc_dyn    = .true.  !  use 0 as special value for dynamics 
    101    rn_sponge_tra =  800.   !  coefficient for tracer   sponge layer [m2/s] 
    102    rn_sponge_dyn =  800.   !  coefficient for dynamics sponge layer [m2/s] 
    103    ln_chk_bathy  = .FALSE. ! 
     100   rn_sponge_tra =  0.00768   !  coefficient for tracer   sponge layer [] 
     101   rn_sponge_dyn =  0.00768   !  coefficient for dynamics sponge layer [] 
    104102/ 
    105103!!====================================================================== 
     
    107105!!                                                                    !! 
    108106!!   namdrg        top/bottom drag coefficient                          (default: NO selection) 
    109 !!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T) 
    110 !!   namdrg_bot    bottom friction                                      (ln_OFF=F) 
     107!!   namdrg_top    top    friction                                      (ln_drg_OFF=F & ln_isfcav=T) 
     108!!   namdrg_bot    bottom friction                                      (ln_drg_OFF=F) 
    111109!!   nambbc        bottom temperature boundary condition                (default: OFF) 
    112110!!   nambbl        bottom boundary layer scheme                         (default: OFF) 
     
    116114&namdrg        !   top/bottom drag coefficient                          (default: NO selection) 
    117115!----------------------------------------------------------------------- 
    118    ln_OFF     = .true.    !  free-slip       : Cd = 0 
     116   ln_drg_OFF = .true.     !  free-slip       : Cd = 0                  (F => fill namdrg_bot 
    119117/ 
    120118!!====================================================================== 
     
    133131!----------------------------------------------------------------------- 
    134132   ln_seos     = .true.         !  = Use simplified equation of state (S-EOS) 
    135       !                            !  rd(T,S,Z)*rau0 = -a0*(1+.5*lambda*dT+mu*Z+nu*dS)*dT+b0*dS 
     133      !                            !  rd(T,S,Z)*rho0 = -a0*(1+.5*lambda*dT+mu*Z+nu*dS)*dT+b0*dS 
    136134      rn_a0       =  0.28        !  thermal expension coefficient (for simplified equation of state) 
    137135      rn_b0       =  0.          !  saline  expension coefficient (for simplified equation of state) 
     
    268266!!                                                                    !! 
    269267!!   namtrd       dynamics and/or tracer trends                         (default: OFF) 
    270 !!   namptr       Poleward Transport Diagnostics                        (default: OFF) 
    271268!!   namhsb       Heat and salt budgets                                 (default: OFF) 
    272269!!   namdiu       Cool skin and warm layer models                       (default: OFF) 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/EXPREF/context_nemo.xml

    r12276 r13727  
    1111       <variable id="ref_month" type="int"> 01 </variable> 
    1212       <variable id="ref_day"   type="int"> 01 </variable> 
    13        <variable id="rau0"      type="float" > 1026.0 </variable> 
     13       <variable id="rho0"      type="float" > 1026.0 </variable> 
    1414       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
    1515       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/EXPREF/namelist_cfg

    r12489 r13727  
    9999!!                                                                    !! 
    100100!!   namdrg        top/bottom drag coefficient                          (default: NO selection) 
    101 !!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T) 
    102 !!   namdrg_bot    bottom friction                                      (ln_OFF=F) 
     101!!   namdrg_top    top    friction                                      (ln_drg_OFF=F & ln_isfcav=T) 
     102!!   namdrg_bot    bottom friction                                      (ln_drg_OFF=F) 
    103103!!   nambbc        bottom temperature boundary condition                (default: OFF) 
    104104!!   nambbl        bottom boundary layer scheme                         (default: OFF) 
     
    108108&namdrg        !   top/bottom drag coefficient                          (default: NO selection) 
    109109!----------------------------------------------------------------------- 
    110    ln_OFF     = .true.    !  free-slip       : Cd = 0 
     110   ln_drg_OFF  = .true.   !  free-slip       : Cd = 0                  (F => fill namdrg_bot 
    111111/ 
    112112!!====================================================================== 
     
    125125!----------------------------------------------------------------------- 
    126126   ln_seos     = .true.         !  = Use simplified equation of state (S-EOS) 
    127    !                            !  rd(T,S,Z)*rau0 = -a0*(1+.5*lambda*dT+mu*Z+nu*dS)*dT+b0*dS 
     127   !                            !  rd(T,S,Z)*rho0 = -a0*(1+.5*lambda*dT+mu*Z+nu*dS)*dT+b0*dS 
    128128   rn_a0       =  0.28        !  thermal expension coefficient (for simplified equation of state) 
    129129   rn_b0       =  0.          !  saline  expension coefficient (for simplified equation of state) 
     
    259259!!                                                                    !! 
    260260!!   namtrd       dynamics and/or tracer trends                         (default: OFF) 
    261 !!   namptr       Poleward Transport Diagnostics                        (default: OFF) 
    262261!!   namhsb       Heat and salt budgets                                 (default: OFF) 
    263262!!   namdiu       Cool skin and warm layer models                       (default: OFF) 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/MY_SRC/domvvl.F90

    r12950 r13727  
    99   !!            3.6  !  2014-11  (P. Mathiot) add ice shelf capability 
    1010   !!            4.1  !  2019-08  (A. Coward, D. Storkey) rename dom_vvl_sf_swp -> dom_vvl_sf_update for new timestepping 
     11   !!            4.x  ! 2020-02  (G. Madec, S. Techene) introduce ssh to h0 ratio 
    1112   !!---------------------------------------------------------------------- 
    1213 
    13    !!---------------------------------------------------------------------- 
    14    !!   dom_vvl_init     : define initial vertical scale factors, depths and column thickness 
    15    !!   dom_vvl_sf_nxt   : Compute next vertical scale factors 
    16    !!   dom_vvl_sf_update   : Swap vertical scale factors and update the vertical grid 
    17    !!   dom_vvl_interpol : Interpolate vertical scale factors from one grid point to another 
    18    !!   dom_vvl_rst      : read/write restart file 
    19    !!   dom_vvl_ctl      : Check the vvl options 
    20    !!---------------------------------------------------------------------- 
    2114   USE oce             ! ocean dynamics and tracers 
    2215   USE phycst          ! physical constant 
     
    3629   PRIVATE 
    3730 
    38    PUBLIC  dom_vvl_init       ! called by domain.F90 
    39    PUBLIC  dom_vvl_zgr        ! called by isfcpl.F90 
    40    PUBLIC  dom_vvl_sf_nxt     ! called by step.F90 
    41    PUBLIC  dom_vvl_sf_update  ! called by step.F90 
    42    PUBLIC  dom_vvl_interpol   ! called by dynnxt.F90 
    43  
    4431   !                                                      !!* Namelist nam_vvl 
    4532   LOGICAL , PUBLIC :: ln_vvl_zstar           = .FALSE.    ! zstar  vertical coordinate 
     
    6350   REAL(wp)        , ALLOCATABLE, SAVE, DIMENSION(:,:)   :: frq_rst_hdv                 ! retoring period for low freq. divergence 
    6451 
     52#if defined key_qco 
     53   !!---------------------------------------------------------------------- 
     54   !!   'key_qco'      EMPTY MODULE      Quasi-Eulerian vertical coordonate 
     55   !!---------------------------------------------------------------------- 
     56#else 
     57   !!---------------------------------------------------------------------- 
     58   !!   Default key      Old management of time varying vertical coordinate 
     59   !!---------------------------------------------------------------------- 
     60    
     61   !!---------------------------------------------------------------------- 
     62   !!   dom_vvl_init     : define initial vertical scale factors, depths and column thickness 
     63   !!   dom_vvl_sf_nxt   : Compute next vertical scale factors 
     64   !!   dom_vvl_sf_update   : Swap vertical scale factors and update the vertical grid 
     65   !!   dom_vvl_interpol : Interpolate vertical scale factors from one grid point to another 
     66   !!   dom_vvl_rst      : read/write restart file 
     67   !!   dom_vvl_ctl      : Check the vvl options 
     68   !!---------------------------------------------------------------------- 
     69 
     70   PUBLIC  dom_vvl_init       ! called by domain.F90 
     71   PUBLIC  dom_vvl_zgr        ! called by isfcpl.F90 
     72   PUBLIC  dom_vvl_sf_nxt     ! called by step.F90 
     73   PUBLIC  dom_vvl_sf_update  ! called by step.F90 
     74   PUBLIC  dom_vvl_interpol   ! called by dynnxt.F90 
     75    
    6576   !! * Substitutions 
    6677#  include "do_loop_substitute.h90" 
     
    135146      ! 
    136147   END SUBROUTINE dom_vvl_init 
    137    ! 
     148 
     149 
    138150   SUBROUTINE dom_vvl_zgr(Kbb, Kmm, Kaa) 
    139151      !!---------------------------------------------------------------------- 
     
    190202      gdept(:,:,1,Kbb) = 0.5_wp * e3w(:,:,1,Kbb) 
    191203      gdepw(:,:,1,Kbb) = 0.0_wp 
    192       DO_3D_11_11( 2, jpk ) 
     204      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    193205         !    zcoef = tmask - wmask    ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 
    194206         !                             ! 1 everywhere from mbkt to mikt + 1 or 1 (if no isf) 
     
    238250         ENDIF 
    239251         IF ( ln_vvl_zstar_at_eqtor ) THEN   ! use z-star in vicinity of the Equator 
    240             DO_2D_11_11 
     252            DO_2D( 1, 1, 1, 1 ) 
    241253!!gm  case |gphi| >= 6 degrees is useless   initialized just above by default 
    242254               IF( ABS(gphit(ji,jj)) >= 6.) THEN 
     
    261273            IF( cn_cfg == "orca" .OR. cn_cfg == "ORCA" ) THEN 
    262274               IF( nn_cfg == 3 ) THEN   ! ORCA2: Suppress ztilde in the Foxe Basin for ORCA2 
    263                   ii0 = 103   ;   ii1 = 111        
    264                   ij0 = 128   ;   ij1 = 135   ;    
     275                  ii0 = 103 + nn_hls - 1   ;   ii1 = 111 + nn_hls - 1       
     276                  ij0 = 128 + nn_hls       ;   ij1 = 135 + nn_hls 
    265277                  frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  0.0_wp 
    266278                  frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  1.e0_wp / rn_Dt 
     
    304316      LOGICAL                ::   ll_do_bclinic         ! local logical 
    305317      REAL(wp), DIMENSION(jpi,jpj)     ::   zht, z_scale, zwu, zwv, zhdiv 
    306       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze3t 
     318      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ze3t 
     319      LOGICAL , DIMENSION(:,:,:), ALLOCATABLE ::   llmsk 
    307320      !!---------------------------------------------------------------------- 
    308321      ! 
     
    389402         zwu(:,:) = 0._wp 
    390403         zwv(:,:) = 0._wp 
    391          DO_3D_10_10( 1, jpkm1 ) 
     404         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    392405            un_td(ji,jj,jk) = rn_ahe3 * umask(ji,jj,jk) * e2_e1u(ji,jj)           & 
    393406               &            * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji+1,jj  ,jk) ) 
     
    397410            zwv(ji,jj) = zwv(ji,jj) + vn_td(ji,jj,jk) 
    398411         END_3D 
    399          DO_2D_11_11 
     412         DO_2D( 1, 1, 1, 1 ) 
    400413            un_td(ji,jj,mbku(ji,jj)) = un_td(ji,jj,mbku(ji,jj)) - zwu(ji,jj) 
    401414            vn_td(ji,jj,mbkv(ji,jj)) = vn_td(ji,jj,mbkv(ji,jj)) - zwv(ji,jj) 
    402415         END_2D 
    403          DO_3D_00_00( 1, jpkm1 ) 
     416         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    404417            tilde_e3t_a(ji,jj,jk) = tilde_e3t_a(ji,jj,jk) + (   un_td(ji-1,jj  ,jk) - un_td(ji,jj,jk)    & 
    405418               &                                          +     vn_td(ji  ,jj-1,jk) - vn_td(ji,jj,jk)    & 
     
    417430         ! Maximum deformation control 
    418431         ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    419          ze3t(:,:,jpk) = 0._wp 
    420          DO jk = 1, jpkm1 
    421             ze3t(:,:,jk) = tilde_e3t_a(:,:,jk) / e3t_0(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) 
    422          END DO 
    423          z_tmax = MAXVAL( ze3t(:,:,:) ) 
    424          CALL mpp_max( 'domvvl', z_tmax )                 ! max over the global domain 
    425          z_tmin = MINVAL( ze3t(:,:,:) ) 
    426          CALL mpp_min( 'domvvl', z_tmin )                 ! min over the global domain 
     432         ALLOCATE( ze3t(jpi,jpj,jpk), llmsk(jpi,jpj,jpk) ) 
     433         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     434            ze3t(ji,jj,jk) = tilde_e3t_a(ji,jj,jk) / e3t_0(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
     435         END_3D 
     436         ! 
     437         llmsk(   1:Nis1,:,:) = .FALSE.   ! exclude halos from the checked region 
     438         llmsk(Nie1: jpi,:,:) = .FALSE. 
     439         llmsk(:,   1:Njs1,:) = .FALSE. 
     440         llmsk(:,Nje1: jpj,:) = .FALSE. 
     441         ! 
     442         llmsk(Nis0:Nie0,Njs0:Nje0,:) = tmask(Nis0:Nie0,Njs0:Nje0,:) == 1._wp                  ! define only the inner domain 
     443         z_tmax = MAXVAL( ze3t(:,:,:), mask = llmsk )   ;   CALL mpp_max( 'domvvl', z_tmax )   ! max over the global domain 
     444         z_tmin = MINVAL( ze3t(:,:,:), mask = llmsk )   ;   CALL mpp_min( 'domvvl', z_tmin )   ! min over the global domain 
    427445         ! - ML - test: for the moment, stop simulation for too large e3_t variations 
    428446         IF( ( z_tmax >  rn_zdef_max ) .OR. ( z_tmin < - rn_zdef_max ) ) THEN 
    429             IF( lk_mpp ) THEN 
    430                CALL mpp_maxloc( 'domvvl', ze3t, tmask, z_tmax, ijk_max ) 
    431                CALL mpp_minloc( 'domvvl', ze3t, tmask, z_tmin, ijk_min ) 
    432             ELSE 
    433                ijk_max = MAXLOC( ze3t(:,:,:) ) 
    434                ijk_max(1) = ijk_max(1) + nimpp - 1 
    435                ijk_max(2) = ijk_max(2) + njmpp - 1 
    436                ijk_min = MINLOC( ze3t(:,:,:) ) 
    437                ijk_min(1) = ijk_min(1) + nimpp - 1 
    438                ijk_min(2) = ijk_min(2) + njmpp - 1 
    439             ENDIF 
     447            CALL mpp_maxloc( 'domvvl', ze3t, llmsk, z_tmax, ijk_max ) 
     448            CALL mpp_minloc( 'domvvl', ze3t, llmsk, z_tmin, ijk_min ) 
    440449            IF (lwp) THEN 
    441450               WRITE(numout, *) 'MAX( tilde_e3t_a(:,:,:) / e3t_0(:,:,:) ) =', z_tmax 
     
    446455            ENDIF 
    447456         ENDIF 
     457         DEALLOCATE( ze3t, llmsk ) 
    448458         ! - ML - end test 
    449459         ! - ML - Imposing these limits will cause a baroclinicity error which is corrected for below 
     
    629639      gdepw(:,:,1,Kmm) = 0.0_wp 
    630640      gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 
    631       DO_3D_11_11( 2, jpk ) 
     641      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    632642        !    zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk))   ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 
    633643                                                           ! 1 for jk = mikt 
     
    684694         ! 
    685695      CASE( 'U' )                   !* from T- to U-point : hor. surface weighted mean 
    686          DO_3D_10_10( 1, jpk ) 
     696         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    687697            pe3_out(ji,jj,jk) = 0.5_wp * (  umask(ji,jj,jk) * (1.0_wp - zlnwd) + zlnwd ) * r1_e1e2u(ji,jj)   & 
    688698               &                       * (   e1e2t(ji  ,jj) * ( pe3_in(ji  ,jj,jk) - e3t_0(ji  ,jj,jk) )     & 
     
    693703         ! 
    694704      CASE( 'V' )                   !* from T- to V-point : hor. surface weighted mean 
    695          DO_3D_10_10( 1, jpk ) 
     705         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    696706            pe3_out(ji,jj,jk) = 0.5_wp * ( vmask(ji,jj,jk)  * (1.0_wp - zlnwd) + zlnwd ) * r1_e1e2v(ji,jj)   & 
    697707               &                       * (   e1e2t(ji,jj  ) * ( pe3_in(ji,jj  ,jk) - e3t_0(ji,jj  ,jk) )     & 
     
    702712         ! 
    703713      CASE( 'F' )                   !* from U-point to F-point : hor. surface weighted mean 
    704          DO_3D_10_10( 1, jpk ) 
     714         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    705715            pe3_out(ji,jj,jk) = 0.5_wp * (  umask(ji,jj,jk) * umask(ji,jj+1,jk) * (1.0_wp - zlnwd) + zlnwd ) & 
    706716               &                       *    r1_e1e2f(ji,jj)                                                  & 
     
    775785         IF( ln_rstart ) THEN                   !* Read the restart file 
    776786            CALL rst_read_open                  !  open the restart file if necessary 
    777             IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    778             CALL iom_get( numror, jpdom_autoglo, 'sshn'   , ssh(:,:,Kmm), ldxios = lrxios    ) 
     787            IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     788            CALL iom_get( numror, jpdom_autoglo, 'sshn'   , ssh(:,:,Kmm), ldxios = lroxios    ) 
    779789            ! 
    780790            id1 = iom_varid( numror, 'e3t_b', ldstop = .FALSE. ) 
     
    789799            ! 
    790800            IF( MIN( id1, id2 ) > 0 ) THEN       ! all required arrays exist 
    791                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lrxios ) 
    792                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lrxios ) 
     801               CALL iom_get( numror, jpdom_auto, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lroxios ) 
     802               CALL iom_get( numror, jpdom_auto, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lroxios ) 
    793803               ! needed to restart if land processor not computed  
    794804               IF(lwp) write(numout,*) 'dom_vvl_rst : e3t(:,:,:,Kbb) and e3t(:,:,:,Kmm) found in restart files' 
     
    804814               IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 
    805815               IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 
    806                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lrxios ) 
     816               CALL iom_get( numror, jpdom_auto, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lroxios ) 
    807817               e3t(:,:,:,Kmm) = e3t(:,:,:,Kbb) 
    808818               l_1st_euler = .true. 
     
    811821               IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 
    812822               IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 
    813                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lrxios ) 
     823               CALL iom_get( numror, jpdom_auto, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lroxios ) 
    814824               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    815825               l_1st_euler = .true. 
     
    836846               !                          ! ----------------------- ! 
    837847               IF( MIN( id3, id4 ) > 0 ) THEN  ! all required arrays exist 
    838                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lrxios ) 
    839                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lrxios ) 
     848                  CALL iom_get( numror, jpdom_auto, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lroxios ) 
     849                  CALL iom_get( numror, jpdom_auto, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lroxios ) 
    840850               ELSE                            ! one at least array is missing 
    841851                  tilde_e3t_b(:,:,:) = 0.0_wp 
     
    846856                  !                       ! ------------ ! 
    847857                  IF( id5 > 0 ) THEN  ! required array exists 
    848                      CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lrxios ) 
     858                     CALL iom_get( numror, jpdom_auto, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lroxios ) 
    849859                  ELSE                ! array is missing 
    850860                     hdiv_lf(:,:,:) = 0.0_wp 
     
    852862               ENDIF 
    853863            ENDIF 
    854             IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     864            IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    855865            ! 
    856866         ELSE                                   !* Initialize at "rest" 
     
    871881                  ssh(:,:,Kbb) = -ssh_ref 
    872882 
    873                   DO_2D_11_11 
     883                  DO_2D( 1, 1, 1, 1 ) 
    874884                     IF( ht_0(ji,jj)-ssh_ref <  rn_wdmin1 ) THEN ! if total depth is less than min depth 
    875885                        ssh(ji,jj,Kbb) = rn_wdmin1 - (ht_0(ji,jj) ) 
     
    887897               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    888898 
    889                DO_2D_11_11 
     899               DO_2D( 1, 1, 1, 1 ) 
    890900                  IF ( ht_0(ji,jj) .LE. 0.0 .AND. NINT( ssmask(ji,jj) ) .EQ. 1) THEN 
    891901                     CALL ctl_stop( 'dom_vvl_rst: ht_0 must be positive at potentially wet points' ) 
     
    10141024   END SUBROUTINE dom_vvl_ctl 
    10151025 
     1026#endif 
     1027 
    10161028   !!====================================================================== 
    10171029END MODULE domvvl 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/MY_SRC/usrdef_hgr.F90

    r12740 r13727  
    6363      REAL(wp), DIMENSION(:,:), INTENT(out) ::   pe1e2u, pe1e2v               ! u- & v-surfaces (if reduction in strait)   [m2] 
    6464      ! 
    65       INTEGER  ::   ji, jj   ! dummy loop indices 
     65      INTEGER  ::   ji, jj     ! dummy loop indices 
    6666      REAL(wp) ::   zphi0, zlam0, zbeta, zf0 
    67       REAL(wp) ::   zti, zui, ztj, zvj   ! local scalars 
     67      REAL(wp) ::   zti, ztj   ! local scalars 
    6868      !!------------------------------------------------------------------------------- 
    6969      ! 
     
    7777      ! Position coordinates (in kilometers) 
    7878      !                          ========== 
    79       zlam0 = -(jpiglo-1)/2 * 1.e-3 * rn_dx 
    80       zphi0 = -(jpjglo-1)/2 * 1.e-3 * rn_dy  
    81  
     79#if defined key_agrif  
     80      IF( Agrif_Root() ) THEN 
     81#endif 
     82         ! Compatibility WITH old version:  
     83         ! jperio = 0 =>  Ni0glo = jpigo_old_version 
     84         !            =>  jpiglo-1 replaced by Ni0glo-1 
     85         zlam0 = -REAL( (Ni0glo-1)/2, wp) * 1.e-3 * rn_dx 
     86         zphi0 = -REAL( (Nj0glo-1)/2, wp) * 1.e-3 * rn_dy  
    8287#if defined key_agrif 
    83       ! ! let lower left longitude and latitude from parent 
    84       IF (.NOT.Agrif_root()) THEN 
    85           zlam0 = (0.5_wp-(Agrif_parent(jpiglo)-1)/2)*1.e-3*Agrif_irhox()*rn_dx & 
    86              &+(Agrif_Ix()+nbghostcells-1)*Agrif_irhox()*rn_dx*1.e-3-(0.5_wp+nbghostcells)*rn_dx*1.e-3 
    87           zphi0 = (0.5_wp-(Agrif_parent(jpjglo)-1)/2)*1.e-3*Agrif_irhoy()*rn_dy & 
    88              &+(Agrif_Iy()+nbghostcells-1)*Agrif_irhoy()*rn_dy*1.e-3-(0.5_wp+nbghostcells)*rn_dy*1.e-3 
     88      ELSE 
     89         ! ! let lower left longitude and latitude from parent 
     90         ! Compatibility WITH old version:  
     91         ! jperio = 0 =>  Ni0glo = jpigo_old_version 
     92         !            =>  Agrif_parent(jpiglo)-1 replaced by  Agrif_parent(Ni0glo)-1 
     93         zlam0 = ( 0.5_wp - REAL( ( Agrif_parent(Ni0glo)-1 ) / 2, wp) ) * 1.e-3 * Agrif_irhox() * rn_dx  & 
     94            &  + ( Agrif_Ix() + nbghostcells - 1 ) * Agrif_irhox() * rn_dx * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dx * 1.e-3 
     95         zphi0 = ( 0.5_wp - REAL( ( Agrif_parent(Nj0glo)-1 ) / 2, wp) ) * 1.e-3 * Agrif_irhoy() * rn_dy  & 
     96            &  + ( Agrif_Iy() + nbghostcells - 1 ) * Agrif_irhoy() * rn_dy * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dy * 1.e-3 
    8997      ENDIF  
    9098#endif 
    9199          
    92       DO_2D_11_11 
    93          zti = FLOAT( ji - 1 + nimpp - 1 )          ;  ztj = FLOAT( jj - 1 + njmpp - 1 ) 
    94          zui = FLOAT( ji - 1 + nimpp - 1 ) + 0.5_wp ;  zvj = FLOAT( jj - 1 + njmpp - 1 ) + 0.5_wp 
     100      DO_2D( 1, 1, 1, 1 ) 
     101         zti = REAL( mig0_oldcmp(ji) - 1, wp )   ! start at i=0 in the global grid without halos 
     102         ztj = REAL( mjg0_oldcmp(jj) - 1, wp )   ! start at j=0 in the global grid without halos 
    95103          
    96          plamt(ji,jj) = zlam0 + rn_dx * 1.e-3 * zti 
    97          plamu(ji,jj) = zlam0 + rn_dx * 1.e-3 * zui 
     104         plamt(ji,jj) = zlam0 + rn_dx * 1.e-3 *   zti 
     105         plamu(ji,jj) = zlam0 + rn_dx * 1.e-3 * ( zti + 0.5_wp ) 
    98106         plamv(ji,jj) = plamt(ji,jj)  
    99107         plamf(ji,jj) = plamu(ji,jj)  
    100108          
    101          pphit(ji,jj) = zphi0 + rn_dy * 1.e-3 * ztj 
    102          pphiv(ji,jj) = zphi0 + rn_dy * 1.e-3 * zvj 
     109         pphit(ji,jj) = zphi0 + rn_dy * 1.e-3 *   ztj 
     110         pphiv(ji,jj) = zphi0 + rn_dy * 1.e-3 * ( ztj + 0.5_wp ) 
    103111         pphiu(ji,jj) = pphit(ji,jj)  
    104112         pphif(ji,jj) = pphiv(ji,jj)  
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/MY_SRC/usrdef_istate.F90

    r12740 r13727  
    7575      ! Sea level: 
    7676      za = -zP0 * (1._wp-EXP(-zH)) / (grav*(zH-1._wp + EXP(-zH))) 
    77       DO_2D_11_11 
     77      DO_2D( 1, 1, 1, 1 ) 
    7878         zx = glamt(ji,jj) * 1.e3 
    7979         zy = gphit(ji,jj) * 1.e3 
     
    8383      ! 
    8484      ! temperature:          
    85       DO_2D_11_11 
     85      DO_2D( 1, 1, 1, 1 ) 
    8686         zx = glamt(ji,jj) * 1.e3 
    8787         zy = gphit(ji,jj) * 1.e3 
     
    102102      ! velocities: 
    103103      za = 2._wp * zP0 / (zf0 * rho0 * zlambda**2) 
    104       DO_2D_00_00 
     104      DO_2D( 0, 0, 0, 0 ) 
    105105         zx = glamu(ji,jj) * 1.e3 
    106106         zy = gphiu(ji,jj) * 1.e3 
     
    116116      END_2D 
    117117      ! 
    118       DO_2D_00_00 
     118      DO_2D( 0, 0, 0, 0 ) 
    119119         zx = glamv(ji,jj) * 1.e3 
    120120         zy = gphiv(ji,jj) * 1.e3 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/VORTEX/MY_SRC/usrdef_nam.F90

    r12377 r13727  
    1414   !!   usr_def_hgr   : initialize the horizontal mesh  
    1515   !!---------------------------------------------------------------------- 
    16    USE dom_oce  , ONLY: nimpp , njmpp            ! i- & j-indices of the local domain 
     16   USE dom_oce 
    1717   USE par_oce        ! ocean space and time domain 
    1818   USE phycst         ! physical constants 
     
    8484         kpi = NINT( 1800.e3  / rn_dx ) + 3   
    8585         kpj = NINT( 1800.e3  / rn_dy ) + 3  
    86       ELSE 
    87          kpi  = nbcellsx + 2 + 2*nbghostcells 
    88          kpj  = nbcellsy + 2 + 2*nbghostcells 
     86      ELSE                          ! Global Domain size: add nbghostcells + 1 "land" point on each side 
     87         kpi  = nbcellsx + 2 * ( nbghostcells + 1 ) 
     88         kpj  = nbcellsy + 2 * ( nbghostcells + 1 ) 
     89!!$         kpi  = nbcellsx + nbghostcells_x   + nbghostcells_x   + 2 
     90!!$         kpj  = nbcellsy + nbghostcells_y_s + nbghostcells_y_n + 2 
    8991      ENDIF 
    9092      kpk = NINT( 5000._wp / rn_dz ) + 1 
     
    104106         WRITE(numout,*) '      horizontal resolution             rn_dy  = ', rn_dy, ' m' 
    105107         WRITE(numout,*) '      vertical resolution               rn_dz  = ', rn_dz, ' m' 
     108         WRITE(numout,*) '      resulting global domain size :    Ni0glo = ', kpi 
     109         WRITE(numout,*) '                                        Nj0glo = ', kpj 
     110         WRITE(numout,*) '                                        jpkglo = ', kpk 
    106111         WRITE(numout,*) '      VORTEX domain: ' 
    107112         WRITE(numout,*) '         LX [km]: ', zlx 
Note: See TracChangeset for help on using the changeset viewer.