- Timestamp:
- 2017-12-13T15:58:53+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/step.F90
r7753 r9019 29 29 !! 3.7 ! 2014-10 (G. Madec) LDF simplication 30 30 !! - ! 2014-12 (G. Madec) remove KPP scheme 31 !! - ! 2015-11 (J. Chanut) free surface simplification 31 !! - ! 2015-11 (J. Chanut) free surface simplification (remove filtered free surface) 32 !! 4.0 ! 2017-05 (G. Madec) introduction of the vertical physics manager (zdfphy) 32 33 !!---------------------------------------------------------------------- 33 34 … … 45 46 46 47 !!---------------------------------------------------------------------- 47 !! NEMO/OPA 3.7 , NEMO Consortium (2015)48 !! NEMO/OPA 4.0 , NEMO Consortium (2017) 48 49 !! $Id$ 49 50 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 61 62 !! *** ROUTINE stp *** 62 63 !! 63 !! ** Purpose : - Time stepping of OPA (momentum and active tracer eqs.)64 !! - Time stepping of LIM (dynamic and thermodynamic eqs.)65 !! - T me stepping of TRC(passive tracer eqs.)64 !! ** Purpose : - Time stepping of OPA (momentum and active tracer eqs.) 65 !! - Time stepping of ESIM (dynamic and thermodynamic eqs.) 66 !! - Time stepping of TRC (passive tracer eqs.) 66 67 !! 67 68 !! ** Method : -1- Update forcings and data … … 74 75 !! -8- Outputs and diagnostics 75 76 !!---------------------------------------------------------------------- 76 INTEGER :: ji,jj,jk ! dummy loop indice 77 INTEGER :: indic ! error indicator if < 0 78 INTEGER :: kcall ! optional integer argument (dom_vvl_sf_nxt) 77 INTEGER :: ji, jj, jk ! dummy loop indice 78 INTEGER :: indic ! error indicator if < 0 79 !!gm kcall can be removed, I guess 80 INTEGER :: kcall ! optional integer argument (dom_vvl_sf_nxt) 79 81 !! --------------------------------------------------------------------- 80 82 #if defined key_agrif … … 125 127 CALL bn2 ( tsn, rab_n, rn2 ) ! now Brunt-Vaisala frequency 126 128 127 !128 129 ! VERTICAL PHYSICS 129 CALL zdf_bfr( kstp ) ! bottom friction (if quadratic) 130 ! ! Vertical eddy viscosity and diffusivity coefficients 131 IF( lk_zdfric ) CALL zdf_ric ( kstp ) ! Richardson number dependent Kz 132 IF( lk_zdftke ) CALL zdf_tke ( kstp ) ! TKE closure scheme for Kz 133 IF( lk_zdfgls ) CALL zdf_gls ( kstp ) ! GLS closure scheme for Kz 134 IF( ln_zdfqiao ) CALL zdf_qiao( kstp ) ! Qiao vertical mixing 135 ! 136 IF( lk_zdfcst ) THEN ! Constant Kz (reset avt, avm[uv] to the background value) 137 avt (:,:,:) = rn_avt0 * wmask (:,:,:) 138 avmu(:,:,:) = rn_avm0 * wumask(:,:,:) 139 avmv(:,:,:) = rn_avm0 * wvmask(:,:,:) 140 ENDIF 141 142 IF( ln_rnf_mouth ) THEN ! increase diffusivity at rivers mouths 143 DO jk = 2, nkrnf ; avt(:,:,jk) = avt(:,:,jk) + 2._wp * rn_avt_rnf * rnfmsk(:,:) * tmask(:,:,jk) ; END DO 144 ENDIF 145 IF( ln_zdfevd ) CALL zdf_evd( kstp ) ! enhanced vertical eddy diffusivity 146 147 IF( lk_zdftmx ) CALL zdf_tmx( kstp ) ! tidal vertical mixing 148 149 IF( lk_zdfddm ) CALL zdf_ddm( kstp ) ! double diffusive mixing 150 151 CALL zdf_mxl( kstp ) ! mixed layer depth 152 153 ! write TKE or GLS information in the restart file 154 IF( lrst_oce .AND. lk_zdftke ) CALL tke_rst( kstp, 'WRITE' ) 155 IF( lrst_oce .AND. lk_zdfgls ) CALL gls_rst( kstp, 'WRITE' ) 156 ! 130 CALL zdf_phy( kstp ) ! vertical physics update (top/bot drag, avt, avs, avm + MLD) 131 157 132 ! LATERAL PHYSICS 158 133 ! … … 211 186 CALL dyn_vor ( kstp ) ! vorticity term including Coriolis 212 187 CALL dyn_ldf ( kstp ) ! lateral mixing 188 IF( ln_zdfosm ) CALL dyn_osm ( kstp ) ! OSMOSIS non-local velocity fluxes 213 189 CALL dyn_hpg ( kstp ) ! horizontal gradient of Hydrostatic pressure 214 190 CALL dyn_spg ( kstp ) ! surface pressure gradient … … 221 197 ENDIF 222 198 223 CALL dyn_bfr ( kstp ) ! bottom friction 199 IF( .NOT.ln_drgimp) CALL dyn_bfr ( kstp ) ! bottom friction 200 224 201 CALL dyn_zdf ( kstp ) ! vertical diffusion 225 202 … … 233 210 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 234 211 IF( lk_floats ) CALL flo_stp( kstp ) ! drifting Floats 235 IF( nn_diacfl == 1) CALL dia_cfl( kstp ) ! Courant number diagnostics212 IF( ln_diacfl ) CALL dia_cfl( kstp ) ! Courant number diagnostics 236 213 IF( lk_diahth ) CALL dia_hth( kstp ) ! Thermocline depth (20 degres isotherm depth) 237 214 IF( lk_diadct ) CALL dia_dct( kstp ) ! Transports … … 259 236 IF( ln_traqsr ) CALL tra_qsr ( kstp ) ! penetrative solar radiation qsr 260 237 IF( ln_trabbc ) CALL tra_bbc ( kstp ) ! bottom heat flux 261 IF( l k_trabbl ) CALL tra_bbl ( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme238 IF( ln_trabbl ) CALL tra_bbl ( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme 262 239 IF( ln_tradmp ) CALL tra_dmp ( kstp ) ! internal damping trends 263 240 IF( ln_bdy ) CALL bdy_tra_dmp ( kstp ) ! bdy damping trends … … 267 244 #endif 268 245 CALL tra_adv ( kstp ) ! horizontal & vertical advection 246 IF( ln_zdfosm ) CALL tra_osm ( kstp ) ! OSMOSIS non-local tracer fluxes 247 IF( lrst_oce .AND. ln_zdfosm ) & 248 & CALL osm_rst( kstp, 'WRITE' )! write OSMOSIS outputs + wn (so must do here) to restarts 269 249 CALL tra_ldf ( kstp ) ! lateral mixing 270 250 … … 349 329 #endif 350 330 ! 351 IF( nn_timing == 1.AND. kstp == nit000 ) CALL timing_reset331 IF( ln_timing .AND. kstp == nit000 ) CALL timing_reset 352 332 ! 353 333 END SUBROUTINE stp 354 334 335 !!====================================================================== 355 336 END MODULE step
Note: See TracChangeset
for help on using the changeset viewer.