- Timestamp:
- 2020-01-27T15:31:53+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdfric.F90
r11960 r12340 51 51 !! * Substitutions 52 52 # include "vectopt_loop_substitute.h90" 53 # include "do_loop_substitute.h90" 53 54 !!---------------------------------------------------------------------- 54 55 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 160 161 ! 161 162 ! !== avm and avt = F(Richardson number) ==! 162 DO jk = 2, jpkm1 163 DO jj = 1, jpjm1 164 DO ji = 1, jpim1 ! coefficient = F(richardson number) (avm-weighted Ri) 165 zcfRi = 1._wp / ( 1._wp + rn_alp * MAX( 0._wp , avm(ji,jj,jk) * rn2(ji,jj,jk) / ( p_sh2(ji,jj,jk) + 1.e-20 ) ) ) 166 zav = rn_avmri * zcfRi**nn_ric 167 ! ! avm and avt coefficients 168 p_avm(ji,jj,jk) = MAX( zav , avmb(jk) ) * wmask(ji,jj,jk) 169 p_avt(ji,jj,jk) = MAX( zav * zcfRi , avtb(jk) ) * wmask(ji,jj,jk) 170 END DO 171 END DO 172 END DO 163 DO_3D_10_10( 2, jpkm1 ) 164 zcfRi = 1._wp / ( 1._wp + rn_alp * MAX( 0._wp , avm(ji,jj,jk) * rn2(ji,jj,jk) / ( p_sh2(ji,jj,jk) + 1.e-20 ) ) ) 165 zav = rn_avmri * zcfRi**nn_ric 166 ! ! avm and avt coefficients 167 p_avm(ji,jj,jk) = MAX( zav , avmb(jk) ) * wmask(ji,jj,jk) 168 p_avt(ji,jj,jk) = MAX( zav * zcfRi , avtb(jk) ) * wmask(ji,jj,jk) 169 END_3D 173 170 ! 174 171 !!gm BUG <<<<==== This param can't work at low latitude … … 177 174 IF( ln_mldw ) THEN !== set a minimum value in the Ekman layer ==! 178 175 ! 179 DO jj = 2, jpjm1 !* Ekman depth 180 DO ji = 2, jpim1 181 zustar = SQRT( taum(ji,jj) * r1_rau0 ) 182 zhek = rn_ekmfc * zustar / ( ABS( ff_t(ji,jj) ) + rsmall ) ! Ekman depth 183 zh_ekm(ji,jj) = MAX( rn_mldmin , MIN( zhek , rn_mldmax ) ) ! set allowed range 184 END DO 185 END DO 186 DO jk = 2, jpkm1 !* minimum mixing coeff. within the Ekman layer 187 DO jj = 2, jpjm1 188 DO ji = 2, jpim1 189 IF( gdept(ji,jj,jk,Kmm) < zh_ekm(ji,jj) ) THEN 190 p_avm(ji,jj,jk) = MAX( p_avm(ji,jj,jk), rn_wvmix ) * wmask(ji,jj,jk) 191 p_avt(ji,jj,jk) = MAX( p_avt(ji,jj,jk), rn_wtmix ) * wmask(ji,jj,jk) 192 ENDIF 193 END DO 194 END DO 195 END DO 176 DO_2D_00_00 177 zustar = SQRT( taum(ji,jj) * r1_rau0 ) 178 zhek = rn_ekmfc * zustar / ( ABS( ff_t(ji,jj) ) + rsmall ) ! Ekman depth 179 zh_ekm(ji,jj) = MAX( rn_mldmin , MIN( zhek , rn_mldmax ) ) ! set allowed range 180 END_2D 181 DO_3D_00_00( 2, jpkm1 ) 182 IF( gdept(ji,jj,jk,Kmm) < zh_ekm(ji,jj) ) THEN 183 p_avm(ji,jj,jk) = MAX( p_avm(ji,jj,jk), rn_wvmix ) * wmask(ji,jj,jk) 184 p_avt(ji,jj,jk) = MAX( p_avt(ji,jj,jk), rn_wtmix ) * wmask(ji,jj,jk) 185 ENDIF 186 END_3D 196 187 ENDIF 197 188 !
Note: See TracChangeset
for help on using the changeset viewer.