Changeset 12424
- Timestamp:
- 2020-02-20T16:06:41+01:00 (5 years ago)
- Location:
- NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DIA/diacfl.F90
r12397 r12424 60 60 ! 61 61 DO_3D_11_11( 1, jpk ) 62 zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * r 2dt / e1u (ji,jj) ! for i-direction63 zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * r 2dt / e2v (ji,jj) ! for j-direction64 zCw_cfl(ji,jj,jk) = ABS( ww(ji,jj,jk) ) * r 2dt / e3w(ji,jj,jk,Kmm) ! for k-direction62 zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * rDt / e1u (ji,jj) ! for i-direction 63 zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * rDt / e2v (ji,jj) ! for j-direction 64 zCw_cfl(ji,jj,jk) = ABS( ww(ji,jj,jk) ) * rDt / e3w(ji,jj,jk,Kmm) ! for k-direction 65 65 END_3D 66 66 ! … … 112 112 WRITE(numcfl,*) '******************************************' 113 113 WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cu', rCu_max, nCu_loc(1), nCu_loc(2), nCu_loc(3) 114 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', r 2dt/rCu_max114 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCu_max 115 115 WRITE(numcfl,*) '******************************************' 116 116 WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cv', rCv_max, nCv_loc(1), nCv_loc(2), nCv_loc(3) 117 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', r 2dt/rCv_max117 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCv_max 118 118 WRITE(numcfl,*) '******************************************' 119 119 WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cw', rCw_max, nCw_loc(1), nCw_loc(2), nCw_loc(3) 120 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', r 2dt/rCw_max120 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCw_max 121 121 CLOSE( numcfl ) 122 122 ! … … 125 125 WRITE(numout,*) 'dia_cfl : Maximum Courant number information for the run ' 126 126 WRITE(numout,*) '~~~~~~~' 127 WRITE(numout,*) ' Max Cu = ', rCu_max, ' at (i,j,k) = (',nCu_loc(1),nCu_loc(2),nCu_loc(3),') => dt/C = ', r 2dt/rCu_max128 WRITE(numout,*) ' Max Cv = ', rCv_max, ' at (i,j,k) = (',nCv_loc(1),nCv_loc(2),nCv_loc(3),') => dt/C = ', r 2dt/rCv_max129 WRITE(numout,*) ' Max Cw = ', rCw_max, ' at (i,j,k) = (',nCw_loc(1),nCw_loc(2),nCw_loc(3),') => dt/C = ', r 2dt/rCw_max127 WRITE(numout,*) ' Max Cu = ', rCu_max, ' at (i,j,k) = (',nCu_loc(1),nCu_loc(2),nCu_loc(3),') => dt/C = ', rDt/rCu_max 128 WRITE(numout,*) ' Max Cv = ', rCv_max, ' at (i,j,k) = (',nCv_loc(1),nCv_loc(2),nCv_loc(3),') => dt/C = ', rDt/rCv_max 129 WRITE(numout,*) ' Max Cw = ', rCw_max, ' at (i,j,k) = (',nCw_loc(1),nCw_loc(2),nCw_loc(3),') => dt/C = ', rDt/rCw_max 130 130 ENDIF 131 131 ! -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DOM/dom_oce.F90
r12406 r12424 59 59 ! !!! associated variables 60 60 LOGICAL , PUBLIC :: l_1st_euler !: Euler 1st time-step flag (=T if ln_restart=F or ln_1st_euler=T) 61 REAL(wp), PUBLIC :: r2dt, r1_2dt !: = 2*rdt and 1/(2*rdt) except at nit000 (=rdt and 1/rdt) if l_1st_euler=.true. 61 REAL(wp), PUBLIC :: rDt, r1_Dt !: Current model timestep and reciprocal 62 !: = 2 * rn_Dt if leapfrog and l_1st_euler = F 63 !: = rn_Dt if leapfrog and l_1st_euler = T 64 !: = rn_Dt if RK3 62 65 63 66 !!---------------------------------------------------------------------- -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DOM/domain.F90
r12406 r12424 415 415 ! ! conversion DOCTOR names into model names (this should disappear soon) 416 416 atfp = rn_atfp 417 !! Initialise current model timestep rDt = 2*rn_Dt if MLF or rDt = rn_Dt if RK3 418 !! rDt = rn_Dt 417 !! Initialise current model timestep rDt = 2*rn_Dt if MLF or rDt = rn_Dt if RK3 418 rDt = 2._wp * rn_Dt 419 r1_Dt = 1._wp / rDt 419 420 420 421 IF( TRIM(Agrif_CFixed()) == '0' ) THEN -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DOM/domvvl.F90
r12406 r12424 431 431 ! --------------------------------------------- 432 432 CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 433 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + r 2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:)433 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 434 434 435 435 ! Maximum deformation control -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DYN/dynatf.F90
r12406 r12424 162 162 ! 163 163 IF( ln_dyn_trd ) THEN ! 3D output: total momentum trends 164 zua(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) * r1_ 2dt165 zva(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) * r1_ 2dt164 zua(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) * r1_Dt 165 zva(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) * r1_Dt 166 166 CALL iom_put( "utrd_tot", zua ) ! total momentum trends, except the asselin time filter 167 167 CALL iom_put( "vtrd_tot", zva ) -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DYN/dynspg_ts.F90
r12406 r12424 150 150 LOGICAL :: ll_init ! =T : special startup of 2d equations 151 151 INTEGER :: noffset ! local integers : time offset for bdy update 152 REAL(wp) :: r1_ 2dt_b, z1_hu, z1_hv ! local scalars152 REAL(wp) :: r1_Dt_b, z1_hu, z1_hv ! local scalars 153 153 REAL(wp) :: za0, za1, za2, za3 ! - - 154 154 REAL(wp) :: zztmp, zldg ! - - … … 180 180 ! zwdramp = 1._wp / (rn_wdmin2 - rn_wdmin1) ! more general ramp 181 181 ! ! inverse of baroclinic time step 182 r1_ 2dt_b = 1._wp / r2dt182 r1_Dt_b = 1._wp / rDt 183 183 ! 184 184 ll_init = ln_bt_av ! if no time averaging, then no specific restart … … 729 729 IF( ln_dynadv_vec .OR. ln_linssh ) THEN 730 730 DO jk=1,jpkm1 731 puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) ) * r1_ 2dt_b732 pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) ) * r1_ 2dt_b731 puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) ) * r1_Dt_b 732 pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) ) * r1_Dt_b 733 733 END DO 734 734 ELSE … … 745 745 ! 746 746 DO jk=1,jpkm1 747 puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + r1_hu(:,:,Kmm) * ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) * hu(:,:,Kbb) ) * r1_ 2dt_b748 pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + r1_hv(:,:,Kmm) * ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) * hv(:,:,Kbb) ) * r1_ 2dt_b747 puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + r1_hu(:,:,Kmm) * ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) * hu(:,:,Kbb) ) * r1_Dt_b 748 pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + r1_hv(:,:,Kmm) * ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) * hv(:,:,Kbb) ) * r1_Dt_b 749 749 END DO 750 750 ! Save barotropic velocities not transport: -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DYN/dynzdf.F90
r12397 r12424 107 107 IF( ln_dynadv_vec .OR. ln_linssh ) THEN ! applied on velocity 108 108 DO jk = 1, jpkm1 109 puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kbb) + r 2dt * puu(:,:,jk,Krhs) ) * umask(:,:,jk)110 pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kbb) + r 2dt * pvv(:,:,jk,Krhs) ) * vmask(:,:,jk)109 puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kbb) + rDt * puu(:,:,jk,Krhs) ) * umask(:,:,jk) 110 pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kbb) + rDt * pvv(:,:,jk,Krhs) ) * vmask(:,:,jk) 111 111 END DO 112 112 ELSE ! applied on thickness weighted velocity 113 113 DO jk = 1, jpkm1 114 114 puu(:,:,jk,Kaa) = ( e3u(:,:,jk,Kbb) * puu(:,:,jk,Kbb) & 115 & + r 2dt * e3u(:,:,jk,Kmm) * puu(:,:,jk,Krhs) ) / e3u(:,:,jk,Kaa) * umask(:,:,jk)115 & + rDt * e3u(:,:,jk,Kmm) * puu(:,:,jk,Krhs) ) / e3u(:,:,jk,Kaa) * umask(:,:,jk) 116 116 pvv(:,:,jk,Kaa) = ( e3v(:,:,jk,Kbb) * pvv(:,:,jk,Kbb) & 117 & + r 2dt * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Krhs) ) / e3v(:,:,jk,Kaa) * vmask(:,:,jk)117 & + rDt * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Krhs) ) / e3v(:,:,jk,Kaa) * vmask(:,:,jk) 118 118 END DO 119 119 ENDIF … … 133 133 ze3ua = ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa) 134 134 ze3va = ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa) 135 puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + r 2dt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua136 pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + r 2dt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va135 puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + rDt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua 136 pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + rDt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va 137 137 END_2D 138 138 IF( ln_isfcav ) THEN ! Ocean cavities (ISF) … … 142 142 ze3ua = ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa) 143 143 ze3va = ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa) 144 puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + r 2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua145 pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + r 2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va144 puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + rDt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua 145 pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + rDt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va 146 146 END_2D 147 147 END IF … … 151 151 ! 152 152 ! !* Matrix construction 153 zdt = r 2dt * 0.5153 zdt = rDt * 0.5 154 154 IF( ln_zad_Aimp ) THEN !! 155 155 SELECT CASE( nldf_dyn ) … … 227 227 iku = mbku(ji,jj) ! ocean bottom level at u- and v-points 228 228 ze3ua = ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa) ! after scale factor at T-point 229 zwd(ji,jj,iku) = zwd(ji,jj,iku) - r 2dt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) / ze3ua229 zwd(ji,jj,iku) = zwd(ji,jj,iku) - rDt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) / ze3ua 230 230 END_2D 231 231 IF ( ln_isfcav ) THEN ! top friction (always implicit) … … 234 234 iku = miku(ji,jj) ! ocean top level at u- and v-points 235 235 ze3ua = ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa) ! after scale factor at T-point 236 zwd(ji,jj,iku) = zwd(ji,jj,iku) - r 2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) / ze3ua236 zwd(ji,jj,iku) = zwd(ji,jj,iku) - rDt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) / ze3ua 237 237 END_2D 238 238 END IF … … 260 260 DO_2D_00_00 261 261 ze3ua = ( 1._wp - r_vvl ) * e3u(ji,jj,1,Kmm) + r_vvl * e3u(ji,jj,1,Kaa) 262 puu(ji,jj,1,Kaa) = puu(ji,jj,1,Kaa) + r 2dt * 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) ) &262 puu(ji,jj,1,Kaa) = puu(ji,jj,1,Kaa) + rDt * 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) ) & 263 263 & / ( ze3ua * rau0 ) * umask(ji,jj,1) 264 264 END_2D … … 277 277 ! 278 278 ! !* Matrix construction 279 zdt = r 2dt * 0.5279 zdt = rDt * 0.5 280 280 IF( ln_zad_Aimp ) THEN !! 281 281 SELECT CASE( nldf_dyn ) … … 352 352 ikv = mbkv(ji,jj) ! (deepest ocean u- and v-points) 353 353 ze3va = ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa) ! after scale factor at T-point 354 zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - r 2dt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) / ze3va354 zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - rDt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) / ze3va 355 355 END_2D 356 356 IF ( ln_isfcav ) THEN … … 358 358 ikv = mikv(ji,jj) ! (first wet ocean u- and v-points) 359 359 ze3va = ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa) ! after scale factor at T-point 360 zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - r 2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) / ze3va360 zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - rDt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) / ze3va 361 361 END_2D 362 362 ENDIF … … 384 384 DO_2D_00_00 385 385 ze3va = ( 1._wp - r_vvl ) * e3v(ji,jj,1,Kmm) + r_vvl * e3v(ji,jj,1,Kaa) 386 pvv(ji,jj,1,Kaa) = pvv(ji,jj,1,Kaa) + r 2dt * 0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) ) &386 pvv(ji,jj,1,Kaa) = pvv(ji,jj,1,Kaa) + rDt * 0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) ) & 387 387 & / ( ze3va * rau0 ) * vmask(ji,jj,1) 388 388 END_2D … … 399 399 ! 400 400 IF( l_trddyn ) THEN ! save the vertical diffusive trends for further diagnostics 401 ztrdu(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) / r 2dt - ztrdu(:,:,:)402 ztrdv(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) / r 2dt - ztrdv(:,:,:)401 ztrdu(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) / rDt - ztrdu(:,:,:) 402 ztrdv(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) / rDt - ztrdv(:,:,:) 403 403 CALL trd_dyn( ztrdu, ztrdv, jpdyn_zdf, kt, Kmm ) 404 404 DEALLOCATE( ztrdu, ztrdv ) -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DYN/sshwzv.F90
r12406 r12424 94 94 ! !------------------------------! 95 95 IF(ln_wd_il) THEN 96 CALL wad_lmt(pssh(:,:,Kbb), zcoef * (emp_b(:,:) + emp(:,:)), r 2dt, Kmm, uu, vv )96 CALL wad_lmt(pssh(:,:,Kbb), zcoef * (emp_b(:,:) + emp(:,:)), rDt, Kmm, uu, vv ) 97 97 ENDIF 98 98 … … 107 107 ! compute the vertical velocity which can be used to compute the non-linear terms of the momentum equations. 108 108 ! 109 pssh(:,:,Kaa) = ( pssh(:,:,Kbb) - r 2dt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) ) ) * ssmask(:,:)109 pssh(:,:,Kaa) = ( pssh(:,:,Kbb) - rDt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) ) ) * ssmask(:,:) 110 110 ! 111 111 #if defined key_agrif … … 182 182 ! computation of w 183 183 pww(:,:,jk) = pww(:,:,jk+1) - ( e3t(:,:,jk,Kmm) * hdiv(:,:,jk) + zhdiv(:,:,jk) & 184 & + r1_ 2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk)184 & + r1_Dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk) 185 185 END DO 186 186 ! IF( ln_vvl_layer ) pww(:,:,:) = 0.e0 … … 190 190 ! computation of w 191 191 pww(:,:,jk) = pww(:,:,jk+1) - ( e3t(:,:,jk,Kmm) * hdiv(:,:,jk) & 192 & + r1_ 2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk)192 & + r1_Dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk) 193 193 END DO 194 194 ENDIF … … 306 306 DO_3D_00_00( 1, jpkm1 ) 307 307 z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 308 ! 2*rn_Dt and not r 2dt (for restartability)308 ! 2*rn_Dt and not rDt (for restartability) 309 309 Cu_adv(ji,jj,jk) = 2._wp * rn_Dt * ( ( MAX( ww(ji,jj,jk) , 0._wp ) - MIN( ww(ji,jj,jk+1) , 0._wp ) ) & 310 310 & + ( MAX( e2u(ji ,jj)*e3u(ji ,jj,jk,Kmm)*uu(ji ,jj,jk,Kmm) + un_td(ji ,jj,jk), 0._wp ) - & … … 319 319 DO_3D_00_00( 1, jpkm1 ) 320 320 z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 321 ! 2*rn_Dt and not r 2dt (for restartability)321 ! 2*rn_Dt and not rDt (for restartability) 322 322 Cu_adv(ji,jj,jk) = 2._wp * rn_Dt * ( ( MAX( ww(ji,jj,jk) , 0._wp ) - MIN( ww(ji,jj,jk+1) , 0._wp ) ) & 323 323 & + ( MAX( e2u(ji ,jj)*e3u(ji ,jj,jk,Kmm)*uu(ji ,jj,jk,Kmm), 0._wp ) - & -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traadv.F90
r12397 r12424 144 144 CALL tra_adv_cen ( kt, nit000, 'TRA', zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v ) 145 145 CASE ( np_FCT ) ! FCT scheme : 2nd / 4th order 146 CALL tra_adv_fct ( kt, nit000, 'TRA', r 2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v )146 CALL tra_adv_fct ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 147 147 CASE ( np_MUS ) ! MUSCL 148 CALL tra_adv_mus ( kt, nit000, 'TRA', r 2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups )148 CALL tra_adv_mus ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups ) 149 149 CASE ( np_UBS ) ! UBS 150 CALL tra_adv_ubs ( kt, nit000, 'TRA', r 2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v )150 CALL tra_adv_ubs ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v ) 151 151 CASE ( np_QCK ) ! QUICKEST 152 CALL tra_adv_qck ( kt, nit000, 'TRA', r 2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs )152 CALL tra_adv_qck ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs ) 153 153 ! 154 154 END SELECT -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traatf.F90
r12406 r12424 162 162 ! 163 163 IF( l_trdtra .AND. ln_linssh ) THEN ! trend of the Asselin filter (tb filtered - tb)/dt 164 zfact = 1._wp / r 2dt164 zfact = 1._wp / rDt 165 165 DO jk = 1, jpkm1 166 166 ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * zfact -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traldf_iso.F90
r12397 r12424 173 173 DO_3D_10_10( 2, jpkm1 ) 174 174 ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 175 zcoef0 = r 2dt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 )176 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_ 2dt175 zcoef0 = rDt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 ) 176 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_Dt 177 177 END_3D 178 178 ENDIF -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traldf_triad.F90
r12397 r12424 185 185 DO_3D_10_10( 2, jpkm1 ) 186 186 ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 187 zcoef0 = r 2dt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 )188 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_ 2dt187 zcoef0 = rDt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 ) 188 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_Dt 189 189 END_3D 190 190 ENDIF -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/tranpc.F90
r12406 r12424 67 67 LOGICAL :: l_bottom_reached, l_column_treated 68 68 REAL(wp) :: zta, zalfa, zsum_temp, zsum_alfa, zaw, zdz, zsum_z 69 REAL(wp) :: zsa, zbeta, zsum_sali, zsum_beta, zbw, zrw, z1_r 2dt69 REAL(wp) :: zsa, zbeta, zsum_sali, zsum_beta, zbw, zrw, z1_rDt 70 70 REAL(wp), PARAMETER :: zn2_zero = 1.e-14_wp ! acceptance criteria for neutrality (N2==0) 71 71 REAL(wp), DIMENSION( jpk ) :: zvn2 ! vertical profile of N2 at 1 given point... … … 301 301 ! 302 302 IF( l_trdtra ) THEN ! send the Non penetrative mixing trends for diagnostic 303 z1_r 2dt = 1._wp / (2._wp * rn_Dt)304 ztrdt(:,:,:) = ( pts(:,:,:,jp_tem,Kaa) - ztrdt(:,:,:) ) * z1_r 2dt305 ztrds(:,:,:) = ( pts(:,:,:,jp_sal,Kaa) - ztrds(:,:,:) ) * z1_r 2dt303 z1_rDt = 1._wp / (2._wp * rn_Dt) 304 ztrdt(:,:,:) = ( pts(:,:,:,jp_tem,Kaa) - ztrdt(:,:,:) ) * z1_rDt 305 ztrds(:,:,:) = ( pts(:,:,:,jp_sal,Kaa) - ztrds(:,:,:) ) * z1_rDt 306 306 CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_tem, jptra_npc, ztrdt ) 307 307 CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_sal, jptra_npc, ztrds ) -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/trazdf.F90
r12397 r12424 73 73 ! 74 74 ! !* compute lateral mixing trend and add it to the general trend 75 CALL tra_zdf_imp( kt, nit000, 'TRA', r 2dt, Kbb, Kmm, Krhs, pts, Kaa, jpts )75 CALL tra_zdf_imp( kt, nit000, 'TRA', rDt, Kbb, Kmm, Krhs, pts, Kaa, jpts ) 76 76 77 77 !!gm WHY here ! and I don't like that ! … … 85 85 DO jk = 1, jpkm1 86 86 ztrdt(:,:,jk) = ( ( pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa) - pts(:,:,jk,jp_tem,Kbb)*e3t(:,:,jk,Kbb) ) & 87 & / (e3t(:,:,jk,Kmm)*r 2dt) ) - ztrdt(:,:,jk)87 & / (e3t(:,:,jk,Kmm)*rDt) ) - ztrdt(:,:,jk) 88 88 ztrds(:,:,jk) = ( ( pts(:,:,jk,jp_sal,Kaa)*e3t(:,:,jk,Kaa) - pts(:,:,jk,jp_sal,Kbb)*e3t(:,:,jk,Kbb) ) & 89 & / (e3t(:,:,jk,Kmm)*r 2dt) ) - ztrds(:,:,jk)89 & / (e3t(:,:,jk,Kmm)*rDt) ) - ztrds(:,:,jk) 90 90 END DO 91 91 !!gm this should be moved in trdtra.F90 and done on all trends -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRD/trdtra.F90
r12397 r12424 244 244 245 245 ! ! Potential ENergy trends 246 IF( ln_PE_trd ) CALL trd_pen( ptrdx, ptrdy, ktrd, kt, r 2dt, Kmm )246 IF( ln_PE_trd ) CALL trd_pen( ptrdx, ptrdy, ktrd, kt, rDt, Kmm ) 247 247 248 248 ! ! Mixed layer trends for active tracers … … 277 277 CASE ( jptra_atf ) ; CALL trd_mxl_zint( ptrdx, ptrdy, jpmxl_atf, '3D' ) ! asselin time filter (last trend) 278 278 ! 279 CALL trd_mxl( kt, r 2dt ) ! trends: Mixed-layer (output)279 CALL trd_mxl( kt, rDt ) ! trends: Mixed-layer (output) 280 280 END SELECT 281 281 ! -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/step.F90
r12406 r12424 105 105 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 106 106 ! 107 IF( l_1st_euler ) THEN ; r2dt = rn_Dt ! start or restart with Euler 1st time-step 108 ELSE ; r2dt = 2._wp * rn_Dt ! restart with leapfrog 109 ENDIF 110 r1_2dt = 1._wp / r2dt 107 IF( l_1st_euler ) THEN 108 ! start or restart with Euler 1st time-step 109 rDt = rn_Dt 110 r1_Dt = 1._wp / rDt 111 ENDIF 111 112 ! 112 113 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 344 345 #endif 345 346 ! 346 IF( l_1st_euler ) l_1st_euler = .FALSE. ! recover Leap-frog timestep 347 IF( l_1st_euler ) THEN ! recover Leap-frog timestep 348 rDt = 2._wp * rn_Dt 349 r1_Dt = 1._wp / rDt 350 l_1st_euler = .FALSE. 351 ENDIF 347 352 ! 348 353 IF( ln_timing ) CALL timing_stop('stp') -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/tests/CANAL/MY_SRC/domvvl.F90
r12406 r12424 419 419 ! ~~~~~~~~~~~~~~~~~~~~~~ 420 420 CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 421 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + r 2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:)421 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 422 422 423 423 ! Maximum deformation control -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/tests/CANAL/MY_SRC/trazdf.F90
r12406 r12424 71 71 ! 72 72 ! !* compute lateral mixing trend and add it to the general trend 73 CALL tra_zdf_imp( kt, nit000, 'TRA', r 2dt, Kbb, Kmm, Krhs, pts, Kaa, jpts )73 CALL tra_zdf_imp( kt, nit000, 'TRA', rDt, Kbb, Kmm, Krhs, pts, Kaa, jpts ) 74 74 75 75 !!gm WHY here ! and I don't like that ! … … 83 83 DO jk = 1, jpkm1 84 84 ztrdt(:,:,jk) = ( ( pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa) - pts(:,:,jk,jp_tem,Kbb)*e3t(:,:,jk,Kbb) ) & 85 & / (e3t(:,:,jk,Kmm)*r 2dt) ) - ztrdt(:,:,jk)85 & / (e3t(:,:,jk,Kmm)*rDt) ) - ztrdt(:,:,jk) 86 86 ztrds(:,:,jk) = ( ( pts(:,:,jk,jp_sal,Kaa)*e3t(:,:,jk,Kaa) - pts(:,:,jk,jp_sal,Kbb)*e3t(:,:,jk,Kbb) ) & 87 & / (e3t(:,:,jk,Kmm)*r 2dt) ) - ztrds(:,:,jk)87 & / (e3t(:,:,jk,Kmm)*rDt) ) - ztrds(:,:,jk) 88 88 END DO 89 89 !!gm this should be moved in trdtra.F90 and done on all trends -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/tests/VORTEX/MY_SRC/domvvl.F90
r12406 r12424 447 447 ! ~~~~~~~~~~~~~~~~~~~~~~ 448 448 CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 449 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + r 2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:)449 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 450 450 451 451 ! Maximum deformation control
Note: See TracChangeset
for help on using the changeset viewer.