- Timestamp:
- 2020-02-18T11:58:37+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/DYN/sshwzv.F90
r12377 r12397 75 75 REAL(wp), DIMENSION(jpi,jpj,jpt), INTENT(inout) :: pssh ! sea-surface height 76 76 ! 77 INTEGER :: jk ! dummy loop indice78 REAL(wp) :: z 2dt, zcoef ! local scalars77 INTEGER :: jk ! dummy loop index 78 REAL(wp) :: zcoef ! local scalar 79 79 REAL(wp), DIMENSION(jpi,jpj) :: zhdiv ! 2D workspace 80 80 !!---------------------------------------------------------------------- … … 88 88 ENDIF 89 89 ! 90 z2dt = 2._wp * rdt ! set time step size (Euler/Leapfrog)91 IF( neuler == 0 .AND. kt == nit000 ) z2dt = rdt92 90 zcoef = 0.5_wp * r1_rau0 93 91 … … 96 94 ! !------------------------------! 97 95 IF(ln_wd_il) THEN 98 CALL wad_lmt(pssh(:,:,Kbb), zcoef * (emp_b(:,:) + emp(:,:)), z2dt, Kmm, uu, vv )96 CALL wad_lmt(pssh(:,:,Kbb), zcoef * (emp_b(:,:) + emp(:,:)), r2dt, Kmm, uu, vv ) 99 97 ENDIF 100 98 … … 109 107 ! compute the vertical velocity which can be used to compute the non-linear terms of the momentum equations. 110 108 ! 111 pssh(:,:,Kaa) = ( pssh(:,:,Kbb) - z2dt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) ) ) * ssmask(:,:)109 pssh(:,:,Kaa) = ( pssh(:,:,Kbb) - r2dt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) ) ) * ssmask(:,:) 112 110 ! 113 111 #if defined key_agrif … … 152 150 ! 153 151 INTEGER :: ji, jj, jk ! dummy loop indices 154 REAL(wp) :: z1_2dt ! local scalars155 152 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zhdiv 156 153 !!---------------------------------------------------------------------- … … 168 165 ! ! Now Vertical Velocity ! 169 166 ! !------------------------------! 170 z1_2dt = 1. / ( 2. * rdt ) ! set time step size (Euler/Leapfrog)171 IF( neuler == 0 .AND. kt == nit000 ) z1_2dt = 1. / rdt172 167 ! 173 168 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! z_tilde and layer cases … … 187 182 ! computation of w 188 183 pww(:,:,jk) = pww(:,:,jk+1) - ( e3t(:,:,jk,Kmm) * hdiv(:,:,jk) + zhdiv(:,:,jk) & 189 & + z1_2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk)184 & + r1_2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk) 190 185 END DO 191 186 ! IF( ln_vvl_layer ) pww(:,:,:) = 0.e0 … … 195 190 ! computation of w 196 191 pww(:,:,jk) = pww(:,:,jk+1) - ( e3t(:,:,jk,Kmm) * hdiv(:,:,jk) & 197 & + z1_2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk)192 & + r1_2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) ) ) * tmask(:,:,jk) 198 193 END DO 199 194 ENDIF … … 249 244 ENDIF 250 245 ! !== Euler time-stepping: no filter, just swap ==! 251 IF ( .NOT.( neuler == 0 .AND. kt == nit000) ) THEN ! Only do time filtering for leapfrog timesteps246 IF ( .NOT.( l_1st_euler ) ) THEN ! Only do time filtering for leapfrog timesteps 252 247 ! ! filtered "now" field 253 248 pssh(:,:,Kmm) = pssh(:,:,Kmm) + atfp * ( pssh(:,:,Kbb) - 2 * pssh(:,:,Kmm) + pssh(:,:,Kaa) )
Note: See TracChangeset
for help on using the changeset viewer.