Changeset 14205 for NEMO/trunk/src/OCE/DYN
- Timestamp:
- 2020-12-17T19:23:48+01:00 (4 years ago)
- Location:
- NEMO/trunk/src/OCE/DYN
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DYN/dynspg_ts.F90
r14064 r14205 162 162 REAL(wp), DIMENSION(jpi,jpj) :: zCdU_u, zCdU_v ! top/bottom stress at u- & v-points 163 163 REAL(wp), DIMENSION(jpi,jpj) :: zhU, zhV ! fluxes 164 #if defined key_qco165 REAL(wp), DIMENSION(jpi, jpj, jpk) :: ze3u, ze3v166 #endif164 !!st#if defined key_qco 165 !!st REAL(wp), DIMENSION(jpi, jpj, jpk) :: ze3u, ze3v 166 !!st#endif 167 167 ! 168 168 REAL(wp) :: zwdramp ! local scalar - only used if ln_wd_dl = .True. … … 232 232 ! ! --------------------------- ! 233 233 #if defined key_qco 234 DO jk = 1 , jpk 235 ze3u(:,:,jk) = e3u(:,:,jk,Kmm) 236 ze3v(:,:,jk) = e3v(:,:,jk,Kmm) 237 END DO 238 ! 239 zu_frc(:,:) = SUM( ze3u(:,:,:) * uu(:,:,:,Krhs) * umask(:,:,:) , DIM=3 ) * r1_hu(:,:,Kmm) 240 zv_frc(:,:) = SUM( ze3v(:,:,:) * vv(:,:,:,Krhs) * vmask(:,:,:) , DIM=3 ) * r1_hv(:,:,Kmm) 234 !!st DO jk = 1 , jpk 235 !!st ze3u(:,:,jk) = e3u(:,:,jk,Kmm) 236 !!st ze3v(:,:,jk) = e3v(:,:,jk,Kmm) 237 !!st END DO 238 !!st ! 239 !!st zu_frc(:,:) = SUM( ze3u(:,:,:) * uu(:,:,:,Krhs) * umask(:,:,:) , DIM=3 ) * r1_hu(:,:,Kmm) 240 !!st zv_frc(:,:) = SUM( ze3v(:,:,:) * vv(:,:,:,Krhs) * vmask(:,:,:) , DIM=3 ) * r1_hv(:,:,Kmm) 241 242 zu_frc(:,:) = SUM( e3u_0(:,:,:) * uu(:,:,:,Krhs) * umask(:,:,:) , DIM=3 ) * r1_hu_0(:,:) 243 zv_frc(:,:) = SUM( e3v_0(:,:,:) * vv(:,:,:,Krhs) * vmask(:,:,:) , DIM=3 ) * r1_hv_0(:,:) 244 241 245 #else 242 246 zu_frc(:,:) = SUM( e3u(:,:,:,Kmm) * uu(:,:,:,Krhs) * umask(:,:,:) , DIM=3 ) * r1_hu(:,:,Kmm) -
NEMO/trunk/src/OCE/DYN/sshwzv.F90
r14139 r14205 261 261 262 262 263 SUBROUTINE ssh_atf( kt, Kbb, Kmm, Kaa, pssh , pssh_f)263 SUBROUTINE ssh_atf( kt, Kbb, Kmm, Kaa, pssh ) 264 264 !!---------------------------------------------------------------------- 265 265 !! *** ROUTINE ssh_atf *** … … 278 278 INTEGER , INTENT(in ) :: kt ! ocean time-step index 279 279 INTEGER , INTENT(in ) :: Kbb, Kmm, Kaa ! ocean time level indices 280 REAL(wp), DIMENSION(jpi,jpj,jpt) , TARGET, INTENT(inout) :: pssh ! SSH field 281 REAL(wp), DIMENSION(jpi,jpj ), OPTIONAL, TARGET, INTENT( out) :: pssh_f ! filtered SSH field 280 REAL(wp), DIMENSION(jpi,jpj,jpt), INTENT(inout) :: pssh ! SSH field 282 281 ! 283 282 REAL(wp) :: zcoef ! local scalar 284 REAL(wp), POINTER, DIMENSION(:,:) :: zssh ! pointer for filtered SSH285 283 !!---------------------------------------------------------------------- 286 284 ! … … 292 290 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 293 291 ENDIF 294 ! !== Euler time-stepping: no filter, just swap ==! 295 IF ( .NOT.( l_1st_euler ) ) THEN ! Only do time filtering for leapfrog timesteps 296 IF( PRESENT( pssh_f ) ) THEN ; zssh => pssh_f 297 ELSE ; zssh => pssh(:,:,Kmm) 298 ENDIF 299 ! ! filtered "now" field 300 pssh(:,:,Kmm) = pssh(:,:,Kmm) + rn_atfp * ( pssh(:,:,Kbb) - 2 * pssh(:,:,Kmm) + pssh(:,:,Kaa) ) 292 ! 293 IF( .NOT.l_1st_euler ) THEN ! Apply Asselin time filter on Kmm field (not on euler 1st) 301 294 ! 302 IF( .NOT.ln_linssh ) THEN ! "now" <-- with forcing removed 295 IF( ln_linssh ) THEN ! filtered "now" field 296 pssh(:,:,Kmm) = pssh(:,:,Kmm) + rn_atfp * ( pssh(:,:,Kbb) - 2 * pssh(:,:,Kmm) + pssh(:,:,Kaa) ) 297 ! 298 ELSE ! filtered "now" field with forcing removed 303 299 zcoef = rn_atfp * rn_Dt * r1_rho0 304 pssh(:,:,Kmm) = pssh(:,:,Kmm) - zcoef * ( emp_b(:,:) - emp (:,:) & 305 & - rnf_b(:,:) + rnf (:,:) & 306 & + fwfisf_cav_b(:,:) - fwfisf_cav(:,:) & 307 & + fwfisf_par_b(:,:) - fwfisf_par(:,:) ) * ssmask(:,:) 300 pssh(:,:,Kmm) = pssh(:,:,Kmm) + rn_atfp * ( pssh(:,:,Kbb) - 2 * pssh(:,:,Kmm) + pssh(:,:,Kaa) ) & 301 & - zcoef * ( emp_b(:,:) - emp(:,:) & 302 & - rnf_b(:,:) + rnf(:,:) & 303 & + fwfisf_cav_b(:,:) - fwfisf_cav(:,:) & 304 & + fwfisf_par_b(:,:) - fwfisf_par(:,:) ) * ssmask(:,:) 308 305 309 306 ! ice sheet coupling 310 307 IF( ln_isf .AND. ln_isfcpl .AND. kt == nit000+1 ) & 311 & pssh(:,:,Kbb) = pssh(:,:,Kbb) - rn_atfp * rn_Dt * ( risfcpl_ssh(:,:) - 0. 0) * ssmask(:,:)308 & pssh(:,:,Kbb) = pssh(:,:,Kbb) - rn_atfp * rn_Dt * ( risfcpl_ssh(:,:) - 0._wp ) * ssmask(:,:) 312 309 313 310 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.