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 12511 for NEMO/branches/2020/r12377_ticket2386/tests/CANAL/MY_SRC/domvvl.F90 – NEMO

Ignore:
Timestamp:
2020-03-05T12:21:05+01:00 (4 years ago)
Author:
andmirek
Message:

ticket #2386: update trunk@12493 to have AGRIF sette working

Location:
NEMO/branches/2020/r12377_ticket2386
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/r12377_ticket2386

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2020/r12377_ticket2386/tests/CANAL/MY_SRC/domvvl.F90

    r12377 r12511  
    209209         IF( ln_vvl_ztilde_as_zstar ) THEN   ! z-star emulation using z-tile 
    210210            frq_rst_e3t(:,:) = 0._wp               !Ignore namelist settings 
    211             frq_rst_hdv(:,:) = 1._wp / rdt 
     211            frq_rst_hdv(:,:) = 1._wp / rn_Dt 
    212212         ENDIF 
    213213         IF ( ln_vvl_zstar_at_eqtor ) THEN   ! use z-star in vicinity of the Equator 
     
    222222                     ! values inside the equatorial band (ztilde as zstar) 
    223223                     frq_rst_e3t(ji,jj) =  0.0_wp 
    224                      frq_rst_hdv(ji,jj) =  1.0_wp / rdt 
     224                     frq_rst_hdv(ji,jj) =  1.0_wp / rn_Dt 
    225225                  ELSE                                      ! transition band (2.5 to 6 degrees N/S) 
    226226                     !                                      ! (linearly transition from z-tilde to z-star) 
     
    228228                        &            * (  1.0_wp - COS( rad*(ABS(gphit(ji,jj))-2.5_wp)  & 
    229229                        &                                          * 180._wp / 3.5_wp ) ) 
    230                      frq_rst_hdv(ji,jj) = (1.0_wp / rdt)                                & 
    231                         &            + (  frq_rst_hdv(ji,jj)-(1.e0_wp / rdt) )*0.5_wp   & 
     230                     frq_rst_hdv(ji,jj) = (1.0_wp / rn_Dt)                                & 
     231                        &            + (  frq_rst_hdv(ji,jj)-(1.e0_wp / rn_Dt) )*0.5_wp   & 
    232232                        &            * (  1._wp  - COS( rad*(ABS(gphit(ji,jj))-2.5_wp)  & 
    233233                        &                                          * 180._wp / 3.5_wp ) ) 
     
    240240                  ij0 = 128   ;   ij1 = 135   ;    
    241241                  frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  0.0_wp 
    242                   frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  1.e0_wp / rdt 
     242                  frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  1.e0_wp / rn_Dt 
    243243               ENDIF 
    244244            ENDIF 
     
    295295      INTEGER                ::   ji, jj, jk            ! dummy loop indices 
    296296      INTEGER , DIMENSION(3) ::   ijk_max, ijk_min      ! temporary integers 
    297       REAL(wp)               ::   z2dt, z_tmin, z_tmax  ! local scalars 
     297      REAL(wp)               ::   z_tmin, z_tmax        ! local scalars 
    298298      LOGICAL                ::   ll_do_bclinic         ! local logical 
    299299      REAL(wp), DIMENSION(jpi,jpj)     ::   zht, z_scale, zwu, zwv, zhdiv 
     
    349349            IF( kt > nit000 ) THEN 
    350350               DO jk = 1, jpkm1 
    351                   hdiv_lf(:,:,jk) = hdiv_lf(:,:,jk) - rdt * frq_rst_hdv(:,:)   & 
     351                  hdiv_lf(:,:,jk) = hdiv_lf(:,:,jk) - rn_Dt * frq_rst_hdv(:,:)   & 
    352352                     &          * ( hdiv_lf(:,:,jk) - e3t(:,:,jk,Kmm) * ( hdiv(:,:,jk) - zhdiv(:,:) ) ) 
    353353               END DO 
     
    418418         ! Leapfrog time stepping 
    419419         ! ~~~~~~~~~~~~~~~~~~~~~~ 
    420          IF( neuler == 0 .AND. kt == nit000 ) THEN 
    421             z2dt =  rdt 
    422          ELSE 
    423             z2dt = 2.0_wp * rdt 
    424          ENDIF 
    425420         CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    426          tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + z2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
     421         tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
    427422 
    428423         ! Maximum deformation control 
     
    610605      ! - ML - e3(t/u/v)_b are allready computed in dynnxt. 
    611606      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
    612          IF( neuler == 0 .AND. kt == nit000 ) THEN 
     607         IF( l_1st_euler ) THEN 
    613608            tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) 
    614609         ELSE 
    615610            tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) &  
    616             &         + atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) ) 
     611            &         + rn_atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) ) 
    617612         ENDIF 
    618613         tilde_e3t_n(:,:,:) = tilde_e3t_a(:,:,:) 
     
    827822                  e3t(:,:,:,Kbb) = e3t_0(:,:,:) 
    828823               END WHERE 
    829                IF( neuler == 0 ) THEN 
     824               IF( l_1st_euler ) THEN 
    830825                  e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    831826               ENDIF 
     
    833828               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kmm) not found in restart files' 
    834829               IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 
    835                IF(lwp) write(numout,*) 'neuler is forced to 0' 
     830               IF(lwp) write(numout,*) 'l_1st_euler is forced to .true.' 
    836831               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lrxios ) 
    837832               e3t(:,:,:,Kmm) = e3t(:,:,:,Kbb) 
    838                neuler = 0 
     833               l_1st_euler = .true. 
    839834            ELSE IF( id2 > 0 ) THEN 
    840835               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kbb) not found in restart files' 
    841836               IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 
    842                IF(lwp) write(numout,*) 'neuler is forced to 0' 
     837               IF(lwp) write(numout,*) 'l_1st_euler is forced to .true.' 
    843838               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lrxios ) 
    844839               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    845                neuler = 0 
     840               l_1st_euler = .true. 
    846841            ELSE 
    847842               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kmm) not found in restart file' 
    848843               IF(lwp) write(numout,*) 'Compute scale factor from sshn' 
    849                IF(lwp) write(numout,*) 'neuler is forced to 0' 
     844               IF(lwp) write(numout,*) 'l_1st_euler is forced to .true.' 
    850845               DO jk = 1, jpk 
    851846                  e3t(:,:,jk,Kmm) =  e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kmm) ) & 
     
    854849               END DO 
    855850               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    856                neuler = 0 
     851               l_1st_euler = .true. 
    857852            ENDIF 
    858853            !                             ! ----------- ! 
     
    10151010            WRITE(numout,*) '                         rn_rst_e3t     = 0.e0' 
    10161011            WRITE(numout,*) '            hard-wired : z-tilde cutoff frequency of low-pass filter (days)' 
    1017             WRITE(numout,*) '                         rn_lf_cutoff   = 1.0/rdt' 
     1012            WRITE(numout,*) '                         rn_lf_cutoff   = 1.0/rn_Dt' 
    10181013         ELSE 
    10191014            WRITE(numout,*) '      z-tilde to zstar restoration timescale (days)        rn_rst_e3t   = ', rn_rst_e3t 
Note: See TracChangeset for help on using the changeset viewer.