Changeset 7646 for trunk/NEMOGCM/NEMO/OPA_SRC/ZDF
- Timestamp:
- 2017-02-06T10:25:03+01:00 (7 years ago)
- Location:
- trunk/NEMOGCM/NEMO/OPA_SRC/ZDF
- Files:
-
- 7 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90
r5836 r7646 35 35 INTEGER , PUBLIC :: nn_npc !: non penetrative convective scheme call frequency 36 36 INTEGER , PUBLIC :: nn_npcp !: non penetrative convective scheme print frequency 37 LOGICAL , PUBLIC :: ln_zdfqiao !: Enhanced wave vertical mixing Qiao(2010) formulation flag 37 38 38 39 -
trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90
r6140 r7646 99 99 ! 100 100 IF( nn_timing == 1 ) CALL timing_start('zdf_bfr') 101 !102 IF( kt == nit000 .AND. lwp ) THEN103 WRITE(numout,*)104 WRITE(numout,*) 'zdf_bfr : Set bottom friction coefficient (non-linear case)'105 WRITE(numout,*) '~~~~~~~~'106 ENDIF107 101 ! 108 102 IF( nn_bfr == 2 ) THEN ! quadratic bottom friction only … … 259 253 IF(lwp) WRITE(numout,*) 260 254 IF(lwp) WRITE(numout,*) 'zdf_bfr_init : momentum bottom friction' 261 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~ ~'255 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 262 256 IF(lwp) WRITE(numout,*) ' Namelist nam_bfr : set bottom friction parameters' 263 257 ! … … 266 260 CASE( 0 ) 267 261 IF(lwp) WRITE(numout,*) ' free-slip ' 268 bfrua(:,:) = 0. e0269 bfrva(:,:) = 0. e0270 tfrua(:,:) = 0. e0271 tfrva(:,:) = 0. e0262 bfrua(:,:) = 0._wp 263 bfrva(:,:) = 0._wp 264 tfrua(:,:) = 0._wp 265 tfrva(:,:) = 0._wp 272 266 ! 273 267 CASE( 1 ) … … 321 315 IF(lwp) WRITE(numout,*) ' log formulation ln_bfr2d = ', ln_loglayer 322 316 IF(lwp) WRITE(numout,*) ' bottom roughness rn_bfrz0 [m] = ', rn_bfrz0 323 IF( rn_bfrz0 <=0.e0) THEN317 IF( rn_bfrz0 <= 0._wp ) THEN 324 318 WRITE(ctmp1,*) ' bottom roughness must be strictly positive' 325 319 CALL ctl_stop( ctmp1 ) … … 336 330 IF(lwp) WRITE(numout,*) ' log formulation ln_tfr2d = ', ln_loglayer 337 331 IF(lwp) WRITE(numout,*) ' top roughness rn_tfrz0 [m] = ', rn_tfrz0 338 IF( rn_tfrz0 <=0.e0) THEN332 IF( rn_tfrz0 <= 0._wp ) THEN 339 333 WRITE(ctmp1,*) ' top roughness must be strictly positive' 340 334 CALL ctl_stop( ctmp1 ) -
trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90
r6140 r7646 17 17 USE dom_oce ! ocean space and time domain variables 18 18 USE zdf_oce ! ocean vertical physics variables 19 USE trd_oce ! trends: ocean variables 20 USE trdtra ! trends manager: tracers 19 21 ! 20 22 USE in_out_manager ! I/O manager … … 111 113 zavt_evd(:,:,:) = avt(:,:,:) - zavt_evd(:,:,:) ! change in avt due to evd 112 114 CALL iom_put( "avt_evd", zavt_evd ) ! output this change 115 IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 113 116 ! 114 117 CALL wrk_dealloc( jpi,jpj,jpk, zavt_evd, zavm_evd ) -
trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r6140 r7646 24 24 USE phycst ! physical constants 25 25 USE zdfmxl ! mixed layer 26 USE sbcwave , ONLY: hsw ! significant wave height 27 ! 26 28 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 27 29 USE lib_mpp ! MPP manager … … 194 196 zdep(:,:) = 30.*TANH(2.*0.3/(28.*SQRT(MAX(ustars2(:,:),rsmall)))) ! Wave age (eq. 10) 195 197 zhsro(:,:) = MAX(rsbc_zs2 * ustars2(:,:) * zdep(:,:)**1.5, rn_hsro) ! zhsro = rn_frac_hs * Hsw (eq. 11) 196 ! 198 CASE ( 3 ) ! Roughness given by the wave model (coupled or read in file) 199 zhsro(:,:) = hsw(:,:) 197 200 END SELECT 198 201 … … 896 899 897 900 ! !* Check of some namelist values 898 IF( nn_bc_surf < 0 .OR. nn_bc_surf > 1 ) CALL ctl_stop( 'bad flag: nn_bc_surf is 0 or 1' ) 899 IF( nn_bc_surf < 0 .OR. nn_bc_surf > 1 ) CALL ctl_stop( 'bad flag: nn_bc_surf is 0 or 1' ) 900 IF( nn_z0_met < 0 .OR. nn_z0_met > 2 ) CALL ctl_stop( 'bad flag: nn_z0_met is 0, 1 or 2' ) 901 IF( nn_stab_func < 0 .OR. nn_stab_func > 3 ) CALL ctl_stop( 'bad flag: nn_stab_func is 0, 1, 2 and 3' ) 902 IF( nn_clos < 0 .OR. nn_clos > 3 ) CALL ctl_stop( 'bad flag: nn_clos is 0, 1, 2 or 3' ) 901 IF( nn_bc_surf < 0 .OR. nn_bc_surf > 1 ) CALL ctl_stop( 'zdf_gls_init: bad flag: nn_bc_surf is 0 or 1' ) 902 IF( nn_bc_surf < 0 .OR. nn_bc_surf > 1 ) CALL ctl_stop( 'zdf_gls_init: bad flag: nn_bc_surf is 0 or 1' ) 903 IF( nn_z0_met < 0 .OR. nn_z0_met > 3 ) CALL ctl_stop( 'zdf_gls_init: bad flag: nn_z0_met is 0, 1, 2 or 3' ) 904 IF( nn_z0_met == 3 .AND. .NOT.ln_wave ) CALL ctl_stop( 'zdf_gls_init: nn_z0_met=3 requires ln_wave=T' ) 905 IF( nn_stab_func < 0 .OR. nn_stab_func > 3 ) CALL ctl_stop( 'zdf_gls_init: bad flag: nn_stab_func is 0, 1, 2 and 3' ) 906 IF( nn_clos < 0 .OR. nn_clos > 3 ) CALL ctl_stop( 'zdf_gls_init: bad flag: nn_clos is 0, 1, 2 or 3' ) 903 907 904 908 SELECT CASE ( nn_clos ) !* set the parameters for the chosen closure -
trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfini.F90
r5836 r7646 51 51 INTEGER :: ioptio, ios ! local integers 52 52 !! 53 NAMELIST/namzdf/ rn_avm0, rn_avt0, nn_avb, nn_havtb, ln_zdfexp, nn_zdfexp, & 54 & ln_zdfevd, nn_evdm, rn_avevd, ln_zdfnpc, nn_npc, nn_npcp 53 NAMELIST/namzdf/ rn_avm0, rn_avt0, nn_avb, nn_havtb, ln_zdfexp, nn_zdfexp, & 54 & ln_zdfevd, nn_evdm, rn_avevd, ln_zdfnpc, nn_npc, nn_npcp, & 55 & ln_zdfqiao 55 56 !!---------------------------------------------------------------------- 56 57 … … 66 67 IF(lwp) THEN !* Parameter print 67 68 WRITE(numout,*) 68 WRITE(numout,*) 'zdf_init : vertical physics'69 WRITE(numout,*) 'zdf_init : vertical physics' 69 70 WRITE(numout,*) '~~~~~~~~' 70 71 WRITE(numout,*) ' Namelist namzdf : set vertical mixing mixing parameters' … … 81 82 WRITE(numout,*) ' npc call frequency nn_npc = ', nn_npc 82 83 WRITE(numout,*) ' npc print frequency nn_npcp = ', nn_npcp 84 WRITE(numout,*) ' Qiao formulation flag ln_zdfqiao=', ln_zdfqiao 83 85 ENDIF 84 86 -
trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90
r6352 r7646 13 13 USE oce ! ocean dynamics and tracers variables 14 14 USE dom_oce ! ocean space and time domain variables 15 USE trc_oce, ONLY: l_offline ! ocean space and time domain variables 15 16 USE zdf_oce ! ocean vertical physics 16 17 USE in_out_manager ! I/O manager … … 21 22 USE wrk_nemo ! work arrays 22 23 USE timing ! Timing 23 USE trc_oce, ONLY : lk_offline ! offline flag24 24 25 25 IMPLICIT NONE … … 128 128 END DO 129 129 END DO 130 ! no need to output in offline mode 131 IF( .NOT.lk_offline ) THEN 132 IF ( iom_use("mldr10_1") ) THEN 133 IF( ln_isfcav ) THEN 134 CALL iom_put( "mldr10_1", hmlp - risfdep) ! mixed layer thickness 135 ELSE 136 CALL iom_put( "mldr10_1", hmlp ) ! mixed layer depth 130 ! 131 IF( .NOT.l_offline ) THEN 132 IF( iom_use("mldr10_1") ) THEN 133 IF( ln_isfcav ) THEN ; CALL iom_put( "mldr10_1", hmlp - risfdep) ! mixed layer thickness 134 ELSE ; CALL iom_put( "mldr10_1", hmlp ) ! mixed layer depth 137 135 END IF 138 136 END IF 139 IF ( iom_use("mldkz5") ) THEN 140 IF( ln_isfcav ) THEN 141 CALL iom_put( "mldkz5" , hmld - risfdep ) ! turbocline thickness 142 ELSE 143 CALL iom_put( "mldkz5" , hmld ) ! turbocline depth 137 IF( iom_use("mldkz5") ) THEN 138 IF( ln_isfcav ) THEN ; CALL iom_put( "mldkz5" , hmld - risfdep ) ! turbocline thickness 139 ELSE ; CALL iom_put( "mldkz5" , hmld ) ! turbocline depth 144 140 END IF 145 END 141 ENDIF 146 142 ENDIF 147 143 -
trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90
r7048 r7646 205 205 DO jj = 2, jpjm1 206 206 DO ji = fs_2, fs_jpim1 207 IF( fsdept(ji,jj,jk) < ekm_dep(ji,jj) ) THEN207 IF( gdept_n(ji,jj,jk) < ekm_dep(ji,jj) ) THEN 208 208 avmv(ji,jj,jk) = MAX( avmv(ji,jj,jk), rn_wvmix ) 209 209 avmu(ji,jj,jk) = MAX( avmu(ji,jj,jk), rn_wvmix )
Note: See TracChangeset
for help on using the changeset viewer.