Changeset 14205 for NEMO/trunk/src/OCE/stpmlf.F90
- Timestamp:
- 2020-12-17T19:23:48+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/stpmlf.F90
r14201 r14205 50 50 USE traatf_qco ! time filtering (tra_atf_qco routine) 51 51 USE dynatf_qco ! time filtering (dyn_atf_qco routine) 52 53 USE bdydyn ! ocean open boundary conditions (define bdy_dyn)54 55 #if defined key_agrif56 USE agrif_oce_interp57 #endif58 52 59 53 IMPLICIT NONE … … 68 62 # include "do_loop_substitute.h90" 69 63 # include "domzgr_substitute.h90" 64 # include "do_loop_substitute.h90" 70 65 !!---------------------------------------------------------------------- 71 66 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 99 94 !!---------------------------------------------------------------------- 100 95 INTEGER :: ji, jj, jk, jtile ! dummy loop indice 101 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgdept 102 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zssh_f 96 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zgdept 103 97 !! --------------------------------------------------------------------- 104 98 #if defined key_agrif … … 210 204 ! Ocean dynamics : hdiv, ssh, e3, u, v, w 211 205 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 212 DO jk = 1, jpk 213 zgdept(:,:,jk) = gdept(:,:,jk,Nnn) 214 END DO 206 215 207 CALL ssh_nxt ( kstp, Nbb, Nnn, ssh, Naa ) ! after ssh (includes call to div_hor) 216 208 IF( .NOT.lk_linssh ) THEN … … 221 213 CALL wzv ( kstp, Nbb, Nnn, Naa, ww ) ! Nnn cross-level velocity 222 214 IF( ln_zad_Aimp ) CALL wAimp ( kstp, Nnn ) ! Adaptive-implicit vertical advection partitioning 215 ALLOCATE( zgdept(jpi,jpj,jpk) ) 216 DO jk = 1, jpk 217 zgdept(:,:,jk) = gdept(:,:,jk,Nnn) 218 END DO 223 219 CALL eos ( ts(:,:,:,:,Nnn), rhd, rhop, zgdept ) ! now in situ density for hpg computation 224 220 DEALLOCATE( zgdept ) 225 221 226 222 uu(:,:,:,Nrhs) = 0._wp ! set dynamics trends to zero … … 240 236 CALL dyn_hpg( kstp, Nnn , uu, vv, Nrhs ) ! horizontal gradient of Hydrostatic pressure 241 237 CALL dyn_spg( kstp, Nbb, Nnn, Nrhs, uu, vv, ssh, uu_b, vv_b, Naa ) ! surface pressure gradient 242 243 ! With split-explicit free surface, since now transports have been updated and ssh(:,:,Nrhs) as well244 IF( ln_dynspg_ts ) THEN !vertical scale factors and vertical velocity need to be updated238 239 IF( ln_dynspg_ts ) THEN ! With split-explicit free surface, since now transports have been updated and ssh(:,:,Nrhs) 240 ! as well as vertical scale factors and vertical velocity need to be updated 245 241 CALL div_hor ( kstp, Nbb, Nnn ) ! Horizontal divergence (2nd call in time-split case) 246 IF(.NOT.lk_linssh) CALL dom_qco_r3c 242 IF(.NOT.lk_linssh) CALL dom_qco_r3c( ssh(:,:,Naa), r3t(:,:,Naa), r3u(:,:,Naa), r3v(:,:,Naa), r3f(:,:) ) ! update ssh/h_0 ratio at t,u,v,f pts 247 243 ENDIF 248 244 CALL dyn_zdf ( kstp, Nbb, Nnn, Nrhs, uu, vv, Naa ) ! vertical diffusion … … 307 303 308 304 #if defined key_agrif 309 IF(.NOT. Agrif_Root() ) THEN305 IF(.NOT. Agrif_Root() ) THEN 310 306 IF( ln_tile ) CALL dom_tile( ntsi, ntsj, ntei, ntej, ktile = 0 ) 311 307 CALL Agrif_Sponge_tra ! tracers sponge … … 319 315 CALL tra_adv ( kstp, Nbb, Nnn, ts, Nrhs ) ! hor. + vert. advection ==> RHS 320 316 IF( ln_zdfmfc ) CALL tra_mfc ( kstp, Nbb, ts, Nrhs ) ! Mass Flux Convection 321 IF( ln_zdfosm ) CALL tra_osm ( kstp, Nnn, ts, Nrhs ) ! OSMOSIS non-local tracer fluxes ==> RHS 322 IF( lrst_oce .AND. ln_zdfosm ) & 323 & CALL osm_rst ( kstp, Nnn, 'WRITE' ) ! write OSMOSIS outputs + ww (so must do here) to restarts 317 IF( ln_zdfosm ) THEN 318 CALL tra_osm ( kstp, Nnn, ts, Nrhs ) ! OSMOSIS non-local tracer fluxes ==> RHS 319 IF( lrst_oce ) CALL osm_rst ( kstp, Nnn, 'WRITE' ) ! write OSMOSIS outputs + ww (so must do here) to restarts 320 ENDIF 324 321 CALL tra_ldf ( kstp, Nbb, Nnn, ts, Nrhs ) ! lateral mixing 325 322 … … 391 388 IF( Agrif_NbStepint() == 0 .AND. nstop == 0 ) & 392 389 & CALL Agrif_update_all( ) ! Update all components 393 ENDIF394 390 395 391 #endif … … 494 490 !! ** Action : puu(Kaa),pvv(Kaa) after horizontal velocity and tracers 495 491 !!---------------------------------------------------------------------- 492 #if defined key_agrif 493 USE agrif_oce_interp 494 #endif 495 USE bdydyn ! ocean open boundary conditions (define bdy_dyn) 496 !! 496 497 INTEGER , INTENT(in ) :: kt ! ocean time-step index 497 498 INTEGER , INTENT(in ) :: Kbb, Kaa ! before and after time level indices
Note: See TracChangeset
for help on using the changeset viewer.