Changeset 12384
- Timestamp:
- 2020-02-13T17:21:21+01:00 (3 years ago)
- Location:
- NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/TRA/tramle.F90
r12310 r12384 254 254 DO jj = 1, jpjm1 255 255 DO ji = 1, fs_jpim1 ! vector opt. 256 zhu(ji,jj) = 1._wp / zhu(ji,jj) ! hu --> 1/hu257 zhv(ji,jj) = 1._wp / zhv(ji,jj)256 zhu(ji,jj) = 1._wp / MAX(zhu(ji,jj), rsmall) ! hu --> 1/hu 257 zhv(ji,jj) = 1._wp / MAX(zhv(ji,jj), rsmall) 258 258 END DO 259 259 END DO -
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/ZDF/zdfosm.F90
r12319 r12384 1358 1358 REAL(wp) :: ztgrad, zsgrad, zbgrad 1359 1359 REAL(wp) :: zgamma_b_nd, zgamma_c, znd 1360 REAL(wp) :: zzeta_s=0.3 1360 REAL(wp) :: zzeta_s=0.3, ztmp 1361 1361 1362 1362 DO jj = 2, jpjm1 … … 1367 1367 & (zdhdt(ji,jj) > 0._wp .AND. ln_osm_mle .AND. zdb_bl(ji,jj) > rn_osm_mle_thresh & 1368 1368 & .OR. zdb_bl(ji,jj) > 0._wp)) THEN ! zdhdt could be <0 due to FK, hence check zdhdt>0 1369 ztgrad = 0.5 * zdt_ml(ji,jj) / zdh(ji,jj) + zdtdz_ext(ji,jj) 1370 zsgrad = 0.5 * zds_ml(ji,jj) / zdh(ji,jj) + zdsdz_ext(ji,jj) 1371 zbgrad = 0.5 * zdb_ml(ji,jj) / zdh(ji,jj) + zdbdz_ext(ji,jj) 1372 zgamma_b_nd = zdbdz_ext(ji,jj) * zdh(ji,jj) / zdb_ml(ji,jj) 1369 ztmp = 1._wp/MAX(zdh(ji,jj), epsln) 1370 ztgrad = 0.5 * zdt_ml(ji,jj) * ztmp + zdtdz_ext(ji,jj) 1371 zsgrad = 0.5 * zds_ml(ji,jj) * ztmp + zdsdz_ext(ji,jj) 1372 zbgrad = 0.5 * zdb_ml(ji,jj) * ztmp + zdbdz_ext(ji,jj) 1373 zgamma_b_nd = zdbdz_ext(ji,jj) * zdh(ji,jj) / MAX(zdb_ml(ji,jj), epsln) 1373 1374 zgamma_c = ( 3.14159 / 4.0 ) * ( 0.5 + zgamma_b_nd ) /& 1374 1375 & ( 1.0 - 0.25 * SQRT( 3.14159 / 6.0 ) - 2.0 * zgamma_b_nd * zzeta_s )**2 ! check 1375 1376 DO jk = 2, ibld(ji,jj)+ibld_ext 1376 znd = -( gdepw_n(ji,jj,jk) - zhbl(ji,jj) ) / zdh(ji,jj)1377 znd = -( gdepw_n(ji,jj,jk) - zhbl(ji,jj) ) * ztmp 1377 1378 IF ( znd <= zzeta_s ) THEN 1378 zdtdz(ji,jj,jk) = zdtdz_ext(ji,jj) + 0.5 * zdt_ml(ji,jj) / zdh(ji,jj)* &1379 zdtdz(ji,jj,jk) = zdtdz_ext(ji,jj) + 0.5 * zdt_ml(ji,jj) * ztmp * & 1379 1380 & EXP( -6.0 * ( znd -zzeta_s )**2 ) 1380 zdsdz(ji,jj,jk) = zdsdz_ext(ji,jj) + 0.5 * zds_ml(ji,jj) / zdh(ji,jj)* &1381 zdsdz(ji,jj,jk) = zdsdz_ext(ji,jj) + 0.5 * zds_ml(ji,jj) * ztmp * & 1381 1382 & EXP( -6.0 * ( znd -zzeta_s )**2 ) 1382 zdbdz(ji,jj,jk) = zdbdz_ext(ji,jj) + 0.5 * zdb_ml(ji,jj) / zdh(ji,jj)* &1383 zdbdz(ji,jj,jk) = zdbdz_ext(ji,jj) + 0.5 * zdb_ml(ji,jj) * ztmp * & 1383 1384 & EXP( -6.0 * ( znd -zzeta_s )**2 ) 1384 1385 ELSE … … 1395 1396 IF ( zdb_bl(ji,jj) > 0._wp ) THEN 1396 1397 IF ( zhol(ji,jj) >= 0.5 ) THEN ! Very stable - 'thick' pycnocline 1397 ztgrad = zdt_bl(ji,jj) / zhbl(ji,jj) 1398 zsgrad = zds_bl(ji,jj) / zhbl(ji,jj) 1399 zbgrad = zdb_bl(ji,jj) / zhbl(ji,jj) 1398 ztmp = 1._wp/MAX(zhbl(ji,jj), epsln) 1399 ztgrad = zdt_bl(ji,jj) * ztmp 1400 zsgrad = zds_bl(ji,jj) * ztmp 1401 zbgrad = zdb_bl(ji,jj) * ztmp 1400 1402 DO jk = 2, ibld(ji,jj) 1401 znd = gdepw_n(ji,jj,jk) / zhbl(ji,jj)1403 znd = gdepw_n(ji,jj,jk) * ztmp 1402 1404 zdtdz(ji,jj,jk) = ztgrad * EXP( -15.0 * ( znd - 0.9 )**2 ) 1403 1405 zdbdz(ji,jj,jk) = zbgrad * EXP( -15.0 * ( znd - 0.9 )**2 ) … … 1405 1407 END DO 1406 1408 ELSE ! Slightly stable - 'thin' pycnoline - needed when stable layer begins to form. 1407 ztgrad = zdt_bl(ji,jj) / zdh(ji,jj) 1408 zsgrad = zds_bl(ji,jj) / zdh(ji,jj) 1409 zbgrad = zdb_bl(ji,jj) / zdh(ji,jj) 1409 ztmp = 1._wp/MAX(zdh(ji,jj), epsln) 1410 ztgrad = zdt_bl(ji,jj) * ztmp 1411 zsgrad = zds_bl(ji,jj) * ztmp 1412 zbgrad = zdb_bl(ji,jj) * ztmp 1410 1413 DO jk = 2, ibld(ji,jj) 1411 znd = -( gdepw_n(ji,jj,jk) - zhml(ji,jj) ) / zdh(ji,jj)1414 znd = -( gdepw_n(ji,jj,jk) - zhml(ji,jj) ) * ztmp 1412 1415 zdtdz(ji,jj,jk) = ztgrad * EXP( -1.75 * ( znd + 0.75 )**2 ) 1413 1416 zdbdz(ji,jj,jk) = zbgrad * EXP( -1.75 * ( znd + 0.75 )**2 )
Note: See TracChangeset
for help on using the changeset viewer.