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 12443 for NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DYN/dynspg_ts.F90 – NEMO

Ignore:
Timestamp:
2020-02-24T14:00:21+01:00 (4 years ago)
Author:
davestorkey
Message:

2020/KERNEL-03_Storkey_Coward_RK3_stage2: More variable renaming:
atfp -> rn_atfp (use namelist parameter everywhere)
rdtbt -> rDt_e
nn_baro -> nn_e
rn_scal_load -> rn_load
rau0 -> rho0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DYN/dynspg_ts.F90

    r12424 r12443  
    7272   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   un_adv , vn_adv   !: Advection vel. at "now" barocl. step 
    7373   ! 
    74    INTEGER, SAVE :: icycle      ! Number of barotropic sub-steps for each internal step nn_baro <= 2.5 nn_baro 
    75    REAL(wp),SAVE :: rdtbt       ! Barotropic time step 
     74   INTEGER, SAVE :: icycle      ! Number of barotropic sub-steps for each internal step nn_e <= 2.5 nn_e 
     75   REAL(wp),SAVE :: rDt_e       ! Barotropic time step 
    7676   ! 
    7777   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:)   ::   wgtbtp1, wgtbtp2   ! 1st & 2nd weights used in time filtering of barotropic fields 
     
    102102      ierr(:) = 0 
    103103      ! 
    104       ALLOCATE( wgtbtp1(3*nn_baro), wgtbtp2(3*nn_baro), zwz(jpi,jpj), STAT=ierr(1) ) 
     104      ALLOCATE( wgtbtp1(3*nn_e), wgtbtp2(3*nn_e), zwz(jpi,jpj), STAT=ierr(1) ) 
    105105      IF( ln_dynvor_een .OR. ln_dynvor_eeT )   & 
    106106         &     ALLOCATE( ftnw(jpi,jpj) , ftne(jpi,jpj) , ftsw(jpi,jpj) , ftse(jpi,jpj), STAT=ierr(2)   ) 
     
    185185      ll_fw_start = .FALSE. 
    186186      !                                         ! time offset in steps for bdy data update 
    187       IF( .NOT.ln_bt_fw ) THEN   ;   noffset = - nn_baro 
     187      IF( .NOT.ln_bt_fw ) THEN   ;   noffset = - nn_e 
    188188      ELSE                       ;   noffset =   0  
    189189      ENDIF 
     
    303303      IF( ln_bt_fw ) THEN                        ! Add wind forcing 
    304304         DO_2D_00_00 
    305             zu_frc(ji,jj) =  zu_frc(ji,jj) + r1_rau0 * utau(ji,jj) * r1_hu(ji,jj,Kmm) 
    306             zv_frc(ji,jj) =  zv_frc(ji,jj) + r1_rau0 * vtau(ji,jj) * r1_hv(ji,jj,Kmm) 
     305            zu_frc(ji,jj) =  zu_frc(ji,jj) + r1_rho0 * utau(ji,jj) * r1_hu(ji,jj,Kmm) 
     306            zv_frc(ji,jj) =  zv_frc(ji,jj) + r1_rho0 * vtau(ji,jj) * r1_hv(ji,jj,Kmm) 
    307307         END_2D 
    308308      ELSE 
    309          zztmp = r1_rau0 * r1_2 
     309         zztmp = r1_rho0 * r1_2 
    310310         DO_2D_00_00 
    311311            zu_frc(ji,jj) =  zu_frc(ji,jj) + zztmp * ( utau_b(ji,jj) + utau(ji,jj) ) * r1_hu(ji,jj,Kmm) 
     
    320320      !                                   ! ---------------------------------------------------  ! 
    321321      IF (ln_bt_fw) THEN                          ! FORWARD integration: use kt+1/2 fluxes (NOW+1/2) 
    322          zssh_frc(:,:) = r1_rau0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) 
     322         zssh_frc(:,:) = r1_rho0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) 
    323323      ELSE                                        ! CENTRED integration: use kt-1/2 + kt+1/2 fluxes (NOW) 
    324          zztmp = r1_rau0 * r1_2 
     324         zztmp = r1_rho0 * r1_2 
    325325         zssh_frc(:,:) = zztmp * (  emp(:,:)        + emp_b(:,:)                    & 
    326326                &                 - rnf(:,:)        - rnf_b(:,:)                    & 
     
    429429         ! Update tide potential at the beginning of current time substep 
    430430         IF( ln_tide_pot .AND. ln_tide ) THEN 
    431             zt0substep = REAL(nsec_day, wp) - 0.5_wp*rn_Dt + (jn + noffset - 1) * rn_Dt / REAL(nn_baro, wp) 
     431            zt0substep = REAL(nsec_day, wp) - 0.5_wp*rn_Dt + (jn + noffset - 1) * rn_Dt / REAL(nn_e, wp) 
    432432            CALL upd_tide(zt0substep, Kmm) 
    433433         END IF 
     
    495495         IF( .NOT.Agrif_Root() .AND. ln_bt_fw ) CALL agrif_dyn_ts_flux( jn, zhU, zhV ) 
    496496#endif 
    497          IF( ln_wd_il )   CALL wad_lmt_bt(zhU, zhV, sshn_e, zssh_frc, rdtbt)    !!gm wad_lmt_bt use of lbc_lnk on zhU, zhV 
     497         IF( ln_wd_il )   CALL wad_lmt_bt(zhU, zhV, sshn_e, zssh_frc, rDt_e)    !!gm wad_lmt_bt use of lbc_lnk on zhU, zhV 
    498498 
    499499         IF( ln_wd_dl ) THEN           ! un_e and vn_e are set to zero at faces where  
     
    510510         DO_2D_00_00 
    511511            zhdiv = (   zhU(ji,jj) - zhU(ji-1,jj) + zhV(ji,jj) - zhV(ji,jj-1)   ) * r1_e1e2t(ji,jj) 
    512             ssha_e(ji,jj) = (  sshn_e(ji,jj) - rdtbt * ( zssh_frc(ji,jj) + zhdiv )  ) * ssmask(ji,jj) 
     512            ssha_e(ji,jj) = (  sshn_e(ji,jj) - rDt_e * ( zssh_frc(ji,jj) + zhdiv )  ) * ssmask(ji,jj) 
    513513         END_2D 
    514514         ! 
     
    552552         ! 
    553553         !                             ! Surface pressure gradient 
    554          zldg = ( 1._wp - rn_scal_load ) * grav    ! local factor 
     554         zldg = ( 1._wp - rn_load ) * grav    ! local factor 
    555555         DO_2D_00_00 
    556556            zu_spg(ji,jj) = - zldg * ( zsshp2_e(ji+1,jj) - zsshp2_e(ji,jj) ) * r1_e1u(ji,jj) 
     
    600600            DO_2D_00_00 
    601601               ua_e(ji,jj) = (                                 un_e(ji,jj)   &  
    602                          &     + rdtbt * (                   zu_spg(ji,jj)   & 
     602                         &     + rDt_e * (                   zu_spg(ji,jj)   & 
    603603                         &                                 + zu_trd(ji,jj)   & 
    604604                         &                                 + zu_frc(ji,jj) ) &  
     
    606606 
    607607               va_e(ji,jj) = (                                 vn_e(ji,jj)   & 
    608                          &     + rdtbt * (                   zv_spg(ji,jj)   & 
     608                         &     + rDt_e * (                   zv_spg(ji,jj)   & 
    609609                         &                                 + zv_trd(ji,jj)   & 
    610610                         &                                 + zv_frc(ji,jj) ) & 
     
    625625               ! 
    626626               ua_e(ji,jj) = (               hu_e  (ji,jj) *   un_e (ji,jj)      &  
    627                     &            + rdtbt * (  zhu_bck        * zu_spg (ji,jj)  &   ! 
     627                    &            + rDt_e * (  zhu_bck        * zu_spg (ji,jj)  &   ! 
    628628                    &                       + zhup2_e(ji,jj) * zu_trd (ji,jj)  &   ! 
    629629                    &                       +  hu(ji,jj,Kmm) * zu_frc (ji,jj)  )   ) * z1_hu 
    630630               ! 
    631631               va_e(ji,jj) = (               hv_e  (ji,jj) *   vn_e (ji,jj)      & 
    632                     &            + rdtbt * (  zhv_bck        * zv_spg (ji,jj)  &   ! 
     632                    &            + rDt_e * (  zhv_bck        * zv_spg (ji,jj)  &   ! 
    633633                    &                       + zhvp2_e(ji,jj) * zv_trd (ji,jj)  &   ! 
    634634                    &                       +  hv(ji,jj,Kmm) * zv_frc (ji,jj)  )   ) * z1_hv 
     
    638638         IF ( ll_wd ) THEN ! revert to explicit for bit comparison tests in non wad runs 
    639639            DO_2D_00_00 
    640                   ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rdtbt * zCdU_u(ji,jj) * hur_e(ji,jj)) 
    641                   va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rdtbt * zCdU_v(ji,jj) * hvr_e(ji,jj)) 
     640                  ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rDt_e * zCdU_u(ji,jj) * hur_e(ji,jj)) 
     641                  va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rDt_e * zCdU_v(ji,jj) * hvr_e(ji,jj)) 
    642642            END_2D 
    643643         ENDIF 
     
    707707               zvn_save = vn_adv(ji,jj) 
    708708               !                          ! apply the previously computed correction  
    709                un_adv(ji,jj) = r1_2 * ( ub2_b(ji,jj) + zun_save - atfp * un_bf(ji,jj) ) 
    710                vn_adv(ji,jj) = r1_2 * ( vb2_b(ji,jj) + zvn_save - atfp * vn_bf(ji,jj) ) 
     709               un_adv(ji,jj) = r1_2 * ( ub2_b(ji,jj) + zun_save - rn_atfp * un_bf(ji,jj) ) 
     710               vn_adv(ji,jj) = r1_2 * ( vb2_b(ji,jj) + zvn_save - rn_atfp * vn_bf(ji,jj) ) 
    711711               !                          ! Update corrective fluxes for next time step 
    712                un_bf(ji,jj)  = atfp * un_bf(ji,jj) + ( zun_save - ub2_b(ji,jj) ) 
    713                vn_bf(ji,jj)  = atfp * vn_bf(ji,jj) + ( zvn_save - vb2_b(ji,jj) ) 
     712               un_bf(ji,jj)  = rn_atfp * un_bf(ji,jj) + ( zun_save - ub2_b(ji,jj) ) 
     713               vn_bf(ji,jj)  = rn_atfp * vn_bf(ji,jj) + ( zvn_save - vb2_b(ji,jj) ) 
    714714               !                          ! Save integrated transport for next computation 
    715715               ub2_b(ji,jj) = zun_save 
     
    809809      LOGICAL, INTENT(in) ::   ll_fw      ! forward time splitting =.true. 
    810810      INTEGER, INTENT(inout) :: jpit      ! cycle length     
    811       REAL(wp), DIMENSION(3*nn_baro), INTENT(inout) ::   zwgt1, & ! Primary weights 
     811      REAL(wp), DIMENSION(3*nn_e), INTENT(inout) ::   zwgt1, & ! Primary weights 
    812812                                                         zwgt2    ! Secondary weights 
    813813       
     
    821821      ! Set time index when averaged value is requested 
    822822      IF (ll_fw) THEN  
    823          jic = nn_baro 
     823         jic = nn_e 
    824824      ELSE 
    825          jic = 2 * nn_baro 
     825         jic = 2 * nn_e 
    826826      ENDIF 
    827827 
     
    829829      IF (ll_av) THEN 
    830830           ! Define simple boxcar window for primary weights  
    831            ! (width = nn_baro, centered around jic)      
     831           ! (width = nn_e, centered around jic)      
    832832         SELECT CASE ( nn_bt_flt ) 
    833833              CASE( 0 )  ! No averaging 
     
    835835                 jpit = jic 
    836836 
    837               CASE( 1 )  ! Boxcar, width = nn_baro 
    838                  DO jn = 1, 3*nn_baro 
    839                     za1 = ABS(float(jn-jic))/float(nn_baro)  
     837              CASE( 1 )  ! Boxcar, width = nn_e 
     838                 DO jn = 1, 3*nn_e 
     839                    za1 = ABS(float(jn-jic))/float(nn_e)  
    840840                    IF (za1 < 0.5_wp) THEN 
    841841                      zwgt1(jn) = 1._wp 
     
    844844                 ENDDO 
    845845 
    846               CASE( 2 )  ! Boxcar, width = 2 * nn_baro 
    847                  DO jn = 1, 3*nn_baro 
    848                     za1 = ABS(float(jn-jic))/float(nn_baro)  
     846              CASE( 2 )  ! Boxcar, width = 2 * nn_e 
     847                 DO jn = 1, 3*nn_e 
     848                    za1 = ABS(float(jn-jic))/float(nn_e)  
    849849                    IF (za1 < 1._wp) THEN 
    850850                      zwgt1(jn) = 1._wp 
     
    976976 
    977977      ! Estimate number of iterations to satisfy a max courant number= rn_bt_cmax 
    978       IF( ln_bt_auto )   nn_baro = CEILING( rn_Dt / rn_bt_cmax * zcmax) 
     978      IF( ln_bt_auto )   nn_e = CEILING( rn_Dt / rn_bt_cmax * zcmax) 
    979979       
    980       rdtbt = rn_Dt / REAL( nn_baro , wp ) 
    981       zcmax = zcmax * rdtbt 
     980      rDt_e = rn_Dt / REAL( nn_e , wp ) 
     981      zcmax = zcmax * rDt_e 
    982982      ! Print results 
    983983      IF(lwp) WRITE(numout,*) 
     
    985985      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    986986      IF( ln_bt_auto ) THEN 
    987          IF(lwp) WRITE(numout,*) '     ln_ts_auto =.true. Automatically set nn_baro ' 
     987         IF(lwp) WRITE(numout,*) '     ln_ts_auto =.true. Automatically set nn_e ' 
    988988         IF(lwp) WRITE(numout,*) '     Max. courant number allowed: ', rn_bt_cmax 
    989989      ELSE 
    990          IF(lwp) WRITE(numout,*) '     ln_ts_auto=.false.: Use nn_baro in namelist   nn_baro = ', nn_baro 
     990         IF(lwp) WRITE(numout,*) '     ln_ts_auto=.false.: Use nn_e in namelist   nn_e = ', nn_e 
    991991      ENDIF 
    992992 
    993993      IF(ln_bt_av) THEN 
    994          IF(lwp) WRITE(numout,*) '     ln_bt_av =.true.  ==> Time averaging over nn_baro time steps is on ' 
     994         IF(lwp) WRITE(numout,*) '     ln_bt_av =.true.  ==> Time averaging over nn_e time steps is on ' 
    995995      ELSE 
    996996         IF(lwp) WRITE(numout,*) '     ln_bt_av =.false. => No time averaging of barotropic variables ' 
     
    10121012      SELECT CASE ( nn_bt_flt ) 
    10131013         CASE( 0 )      ;   IF(lwp) WRITE(numout,*) '           Dirac' 
    1014          CASE( 1 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = nn_baro' 
    1015          CASE( 2 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = 2*nn_baro'  
     1014         CASE( 1 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = nn_e' 
     1015         CASE( 2 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = 2*nn_e'  
    10161016         CASE DEFAULT   ;   CALL ctl_stop( 'unrecognised value for nn_bt_flt: should 0,1, or 2' ) 
    10171017      END SELECT 
    10181018      ! 
    10191019      IF(lwp) WRITE(numout,*) ' ' 
    1020       IF(lwp) WRITE(numout,*) '     nn_baro = ', nn_baro 
    1021       IF(lwp) WRITE(numout,*) '     Barotropic time step [s] is :', rdtbt 
     1020      IF(lwp) WRITE(numout,*) '     nn_e = ', nn_e 
     1021      IF(lwp) WRITE(numout,*) '     Barotropic time step [s] is :', rDt_e 
    10221022      IF(lwp) WRITE(numout,*) '     Maximum Courant number is   :', zcmax 
    10231023      ! 
     
    10311031      ENDIF 
    10321032      IF( zcmax>0.9_wp ) THEN 
    1033          CALL ctl_stop( 'dynspg_ts ERROR: Maximum Courant number is greater than 0.9: Inc. nn_baro !' )           
     1033         CALL ctl_stop( 'dynspg_ts ERROR: Maximum Courant number is greater than 0.9: Inc. nn_e !' )           
    10341034      ENDIF 
    10351035      ! 
     
    14301430      ! 
    14311431      IF( ln_wd_il ) THEN      ! W/D : use the "clipped" bottom friction   !!gm   explain WHY, please ! 
    1432          zztmp = -1._wp / rdtbt 
     1432         zztmp = -1._wp / rDt_e 
    14331433         DO_2D_00_00 
    14341434            pu_RHSi(ji,jj) = pu_RHSi(ji,jj) + zu_i(ji,jj) *  wdrampu(ji,jj) * MAX(                                 &  
Note: See TracChangeset for help on using the changeset viewer.