Changeset 9531 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA
- Timestamp:
- 2018-04-30T16:59:01+02:00 (6 years ago)
- Location:
- branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r9526 r9531 21 21 USE sbcwave ! wave module 22 22 USE sbc_oce ! surface boundary condition: ocean 23 USE traadv_cen ! centered scheme (tra_adv_cen routine)24 USE traadv_fct ! FCT scheme (tra_adv_fct routine)25 USE traadv_mus ! MUSCL scheme (tra_adv_mus routine)26 USE traadv_ubs ! UBS scheme (tra_adv_ubs routine)27 USE traadv_qck ! QUICKEST scheme (tra_adv_qck routine)28 USE tra adv_mle ! ML eddy induced velocity (tra_adv_mleroutine)29 USE ldftra ! lateral diffusion: eddy diffusivity & EIV coeff.23 USE traadv_cen ! centered scheme (tra_adv_cen routine) 24 USE traadv_fct ! FCT scheme (tra_adv_fct routine) 25 USE traadv_mus ! MUSCL scheme (tra_adv_mus routine) 26 USE traadv_ubs ! UBS scheme (tra_adv_ubs routine) 27 USE traadv_qck ! QUICKEST scheme (tra_adv_qck routine) 28 USE tramle ! Mixed Layer Eddy transport (tra_mle_trp routine) 29 USE ldftra ! Eddy Induced transport (ldf_eiv_trp routine) 30 30 USE ldfslp ! Lateral diffusion: slopes of neutral surfaces 31 31 USE trd_oce ! trends: ocean variables … … 93 93 ! 94 94 ! ! set time step 95 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! at nit000 (Euler)96 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2._wp * rdt ! at nit000 or nit000+1 (Leapfrog)95 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! at nit000 (Euler) 96 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2._wp * rdt ! at nit000 or nit000+1 (Leapfrog) 97 97 ENDIF 98 98 ! … … 127 127 & CALL ldf_eiv_trp( kt, nit000, zun, zvn, zwn, 'TRA' ) ! add the eiv transport (if necessary) 128 128 ! 129 IF( ln_mle ) CALL tra_ adv_mle( kt, nit000, zun, zvn, zwn, 'TRA' ) ! add the mle transport (if necessary)129 IF( ln_mle ) CALL tra_mle_trp( kt, nit000, zun, zvn, zwn, 'TRA' ) ! add the mle transport (if necessary) 130 130 ! 131 131 CALL iom_put( "uocetr_eff", zun ) ! output effective transport … … 267 267 ENDIF 268 268 ! 269 CALL tra_ adv_mle_init !== initialisation of the Mixed Layer Eddy parametrisation (MLE) ==!269 CALL tra_mle_init !== initialisation of the Mixed Layer Eddy parametrisation (MLE) ==! 270 270 ! 271 271 END SUBROUTINE tra_adv_init -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/tramle.F90
r9525 r9531 1 MODULE tra adv_mle1 MODULE tramle 2 2 !!====================================================================== 3 !! *** MODULE tra adv_mle ***3 !! *** MODULE tramle *** 4 4 !! Ocean tracers: Mixed Layer Eddy induced transport 5 5 !!====================================================================== … … 8 8 9 9 !!---------------------------------------------------------------------- 10 !! tra_ adv_mle: update the effective transport with the Mixed Layer Eddy induced transport11 !! tra_ adv_mle_init: initialisation of the Mixed Layer Eddy induced transport computation10 !! tra_mle_trp : update the effective transport with the Mixed Layer Eddy induced transport 11 !! tra_mle_init : initialisation of the Mixed Layer Eddy induced transport computation 12 12 !!---------------------------------------------------------------------- 13 13 USE oce ! ocean dynamics and tracers variables … … 24 24 PRIVATE 25 25 26 PUBLIC tra_ adv_mle! routine called in traadv.F9027 PUBLIC tra_ adv_mle_init ! routine called in traadv.F9028 29 ! !!* namelist namtra_adv_mle *30 LOGICAL, PUBLIC :: ln_mle !flag to activate the Mixed Layer Eddy (MLE) parameterisation31 INTEGER :: nn_mle! MLE type: =0 standard Fox-Kemper ; =1 new formulation32 INTEGER :: nn_mld_uv! space interpolation of MLD at u- & v-pts (0=min,1=averaged,2=max)33 INTEGER :: nn_conv! =1 no MLE in case of convection ; =0 always MLE34 REAL(wp) :: rn_ce! MLE coefficient26 PUBLIC tra_mle_trp ! routine called in traadv.F90 27 PUBLIC tra_mle_init ! routine called in traadv.F90 28 29 ! !!* namelist namtra_mle * 30 LOGICAL, PUBLIC :: ln_mle !: flag to activate the Mixed Layer Eddy (MLE) parameterisation 31 INTEGER :: nn_mle ! MLE type: =0 standard Fox-Kemper ; =1 new formulation 32 INTEGER :: nn_mld_uv ! space interpolation of MLD at u- & v-pts (0=min,1=averaged,2=max) 33 INTEGER :: nn_conv ! =1 no MLE in case of convection ; =0 always MLE 34 REAL(wp) :: rn_ce ! MLE coefficient 35 35 ! ! parameters used in nn_mle = 0 case 36 REAL(wp) :: rn_lf! typical scale of mixed layer front37 REAL(wp) :: rn_time! time scale for mixing momentum across the mixed layer36 REAL(wp) :: rn_lf ! typical scale of mixed layer front 37 REAL(wp) :: rn_time ! time scale for mixing momentum across the mixed layer 38 38 ! ! parameters used in nn_mle = 1 case 39 REAL(wp) :: rn_lat! reference latitude for a 5 km scale of ML front40 REAL(wp) :: rn_rho_c_mle! Density criterion for definition of MLD used by FK39 REAL(wp) :: rn_lat ! reference latitude for a 5 km scale of ML front 40 REAL(wp) :: rn_rho_c_mle ! Density criterion for definition of MLD used by FK 41 41 42 42 REAL(wp) :: r5_21 = 5.e0 / 21.e0 ! factor used in mle streamfunction computation … … 56 56 CONTAINS 57 57 58 SUBROUTINE tra_ adv_mle( kt, kit000, pu, pv, pw, cdtype )59 !!---------------------------------------------------------------------- 60 !! *** ROUTINE adv_mle***58 SUBROUTINE tra_mle_trp( kt, kit000, pu, pv, pw, cdtype ) 59 !!---------------------------------------------------------------------- 60 !! *** ROUTINE tra_mle_trp *** 61 61 !! 62 62 !! ** Purpose : Add to the transport the Mixed Layer Eddy induced transport … … 246 246 ENDIF 247 247 ! 248 END SUBROUTINE tra_ adv_mle249 250 251 SUBROUTINE tra_ adv_mle_init248 END SUBROUTINE tra_mle_trp 249 250 251 SUBROUTINE tra_mle_init 252 252 !!--------------------------------------------------------------------- 253 !! *** ROUTINE tra_ adv_mle_init ***253 !! *** ROUTINE tra_mle_init *** 254 254 !! 255 255 !! ** Purpose : Control the consistency between namelist options for … … 261 261 REAL(wp) :: z1_t2, zfu, zfv ! - - 262 262 ! 263 NAMELIST/namtra_ adv_mle/ ln_mle , nn_mle, rn_ce, rn_lf, rn_time, rn_lat, nn_mld_uv, nn_conv, rn_rho_c_mle264 !!---------------------------------------------------------------------- 265 266 REWIND( numnam_ref ) ! Namelist namtra_ adv_mle in reference namelist : Tracer advection scheme267 READ ( numnam_ref, namtra_ adv_mle, IOSTAT = ios, ERR = 901)268 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_ adv_mle in reference namelist', lwp )269 270 REWIND( numnam_cfg ) ! Namelist namtra_ adv_mle in configuration namelist : Tracer advection scheme271 READ ( numnam_cfg, namtra_ adv_mle, IOSTAT = ios, ERR = 902 )272 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtra_ adv_mle in configuration namelist', lwp )273 IF(lwm) WRITE ( numond, namtra_ adv_mle )263 NAMELIST/namtra_mle/ ln_mle , nn_mle, rn_ce, rn_lf, rn_time, rn_lat, nn_mld_uv, nn_conv, rn_rho_c_mle 264 !!---------------------------------------------------------------------- 265 266 REWIND( numnam_ref ) ! Namelist namtra_mle in reference namelist : Tracer advection scheme 267 READ ( numnam_ref, namtra_mle, IOSTAT = ios, ERR = 901) 268 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_mle in reference namelist', lwp ) 269 270 REWIND( numnam_cfg ) ! Namelist namtra_mle in configuration namelist : Tracer advection scheme 271 READ ( numnam_cfg, namtra_mle, IOSTAT = ios, ERR = 902 ) 272 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtra_mle in configuration namelist', lwp ) 273 IF(lwm) WRITE ( numond, namtra_mle ) 274 274 275 275 IF(lwp) THEN ! Namelist print 276 276 WRITE(numout,*) 277 WRITE(numout,*) 'tra_ adv_mle_init : mixed layer eddy (MLE) advection acting on tracers'278 WRITE(numout,*) '~~~~~~~~~~~~~ ~~~'279 WRITE(numout,*) ' Namelist namtra_ adv_mle : mixed layer eddy advectionon tracers'277 WRITE(numout,*) 'tra_mle_init : mixed layer eddy (MLE) advection acting on tracers' 278 WRITE(numout,*) '~~~~~~~~~~~~~' 279 WRITE(numout,*) ' Namelist namtra_mle : mixed layer eddy advection applied on tracers' 280 280 WRITE(numout,*) ' use mixed layer eddy (MLE, i.e. Fox-Kemper param) (T/F) ln_mle = ', ln_mle 281 281 WRITE(numout,*) ' MLE type: =0 standard Fox-Kemper ; =1 new formulation nn_mle = ', nn_mle … … 335 335 ENDIF 336 336 ! 337 END SUBROUTINE tra_ adv_mle_init337 END SUBROUTINE tra_mle_init 338 338 339 339 !!============================================================================== 340 END MODULE tra adv_mle340 END MODULE tramle
Note: See TracChangeset
for help on using the changeset viewer.