Changeset 13006 for NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl
- Timestamp:
- 2020-06-02T18:06:07+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/cfgs/SHARED/namelist_ref
r12785 r13006 1056 1056 ! ! = 3 as =2 with distinct dissipative an mixing length scale 1057 1057 ln_mxl0 = .true. ! surface mixing length scale = F(wind stress) (T) or not (F) 1058 nn_mxlice = 0 ! type of scaling under sea-ice 1059 ! = 0 no scaling under sea-ice 1060 ! = 1 scaling with constant sea-ice thickness 1061 ! = 2 scaling with mean sea-ice thickness ( only with SI3 sea-ice model ) 1062 ! = 3 scaling with maximum sea-ice thickness 1063 rn_mxlice = 10. ! max constant ice thickness value when scaling under sea-ice ( nn_mxlice=1) 1058 1064 rn_mxl0 = 0.04 ! surface buoyancy lenght scale minimum value 1059 1065 ln_drg = .false. ! top/bottom friction added as boundary condition of TKE -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/ZDF/zdftke.F90
r12703 r13006 46 46 USE zdfmxl ! vertical physics: mixed layer 47 47 ! 48 #if defined key_si3 49 USE ice, ONLY: hm_i, h_i 50 #endif 51 #if defined key_cice 52 USE sbc_ice, ONLY: h_i 53 #endif 48 54 USE in_out_manager ! I/O manager 49 55 USE iom ! I/O manager library … … 62 68 ! !!** Namelist namzdf_tke ** 63 69 LOGICAL :: ln_mxl0 ! mixing length scale surface value as function of wind stress or not 70 INTEGER :: nn_mxlice ! type of scaling under sea-ice (=0/1/2/3) 71 REAL(wp) :: rn_mxlice ! ice thickness value when scaling under sea-ice 64 72 INTEGER :: nn_mxl ! type of mixing length (=0/1/2/3) 65 73 REAL(wp) :: rn_mxl0 ! surface min value of mixing length (kappa*z_o=0.4*0.1 m) [m] … … 478 486 REAL(wp) :: zrn2, zraug, zcoef, zav ! local scalars 479 487 REAL(wp) :: zdku, zdkv, zsqen ! - - 480 REAL(wp) :: zemxl, zemlm, zemlp ! - -488 REAL(wp) :: zemxl, zemlm, zemlp, zmaxice ! - - 481 489 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxlm, zmxld ! 3D workspace 482 490 !!-------------------------------------------------------------------- … … 492 500 zmxld(:,:,:) = rmxl_min 493 501 ! 494 IF( ln_mxl0 ) THEN ! surface mixing length = F(stress) : l=vkarmn*2.e5*taum/(rau0*g) 502 IF( ln_mxl0 ) THEN ! surface mixing length = F(stress) : l=vkarmn*2.e5*taum/(rau0*g) 503 ! 495 504 zraug = vkarmn * 2.e5_wp / ( rau0 * grav ) 505 #if ! defined key_si3 && ! defined key_cice 496 506 DO jj = 2, jpjm1 497 507 DO ji = fs_2, fs_jpim1 498 zmxlm(ji,jj,1) = MAX( rn_mxl0, zraug * taum(ji,jj) * tmask(ji,jj,1) ) 499 END DO 500 END DO 501 ELSE 508 zmxlm(ji,jj,1) = zraug * taum(ji,jj) * tmask(ji,jj,1) 509 END DO 510 END DO 511 #else 512 SELECT CASE( nn_mxlice ) ! Type of scaling under sea-ice 513 ! 514 CASE( 0 ) ! No scaling under sea-ice 515 DO jj = 2, jpjm1 516 DO ji = fs_2, fs_jpim1 517 zmxlm(ji,jj,1) = zraug * taum(ji,jj) * tmask(ji,jj,1) 518 END DO 519 END DO 520 ! 521 CASE( 1 ) ! scaling with constant sea-ice thickness 522 DO jj = 2, jpjm1 523 DO ji = fs_2, fs_jpim1 524 zmxlm(ji,jj,1) = ( ( 1. - fr_i(ji,jj) ) * zraug * taum(ji,jj) + fr_i(ji,jj) * rn_mxlice ) * tmask(ji,jj,1) 525 END DO 526 END DO 527 ! 528 CASE( 2 ) ! scaling with mean sea-ice thickness 529 DO jj = 2, jpjm1 530 DO ji = fs_2, fs_jpim1 531 #if defined key_si3 532 zmxlm(ji,jj,1) = ( ( 1. - fr_i(ji,jj) ) * zraug * taum(ji,jj) + fr_i(ji,jj) * hm_i(ji,jj) * 2. ) * tmask(ji,jj,1) 533 #elif defined key_cice 534 zmaxice = MAXVAL( h_i(ji,jj,:) ) 535 zmxlm(ji,jj,1) = ( ( 1. - fr_i(ji,jj) ) * zraug * taum(ji,jj) + fr_i(ji,jj) * zmaxice ) * tmask(ji,jj,1) 536 #endif 537 END DO 538 END DO 539 ! 540 CASE( 3 ) ! scaling with max sea-ice thickness 541 DO jj = 2, jpjm1 542 DO ji = fs_2, fs_jpim1 543 zmaxice = MAXVAL( h_i(ji,jj,:) ) 544 zmxlm(ji,jj,1) = ( ( 1. - fr_i(ji,jj) ) * zraug * taum(ji,jj) + fr_i(ji,jj) * zmaxice ) * tmask(ji,jj,1) 545 END DO 546 END DO 547 ! 548 END SELECT 549 #endif 550 ! 551 DO jj = 2, jpjm1 552 DO ji = fs_2, fs_jpim1 553 zmxlm(ji,jj,1) = MAX( rn_mxl0, zmxlm(ji,jj,1) ) 554 END DO 555 END DO 556 ! 557 ELSE 502 558 zmxlm(:,:,1) = rn_mxl0 503 559 ENDIF … … 644 700 INTEGER :: ios 645 701 !! 646 NAMELIST/namzdf_tke/ rn_ediff, rn_ediss , rn_ebb , rn_emin , & 647 & rn_emin0, rn_bshear, nn_mxl , ln_mxl0 , & 648 & rn_mxl0 , nn_pdl , ln_drg , ln_lc , rn_lc, & 649 & nn_etau , nn_htau , rn_efr , rn_eice 702 NAMELIST/namzdf_tke/ rn_ediff, rn_ediss , rn_ebb , rn_emin , & 703 & rn_emin0, rn_bshear, nn_mxl , ln_mxl0 , & 704 & rn_mxl0 , nn_mxlice, rn_mxlice, & 705 & nn_pdl , ln_drg , ln_lc , rn_lc, & 706 & nn_etau , nn_htau , rn_efr , rn_eice 650 707 !!---------------------------------------------------------------------- 651 708 ! … … 676 733 WRITE(numout,*) ' surface mixing length = F(stress) or not ln_mxl0 = ', ln_mxl0 677 734 WRITE(numout,*) ' surface mixing length minimum value rn_mxl0 = ', rn_mxl0 735 IF( ln_mxl0 ) THEN 736 WRITE(numout,*) ' type of scaling under sea-ice nn_mxlice = ', nn_mxlice 737 IF( nn_mxlice == 1 ) & 738 WRITE(numout,*) ' ice thickness when scaling under sea-ice rn_mxlice = ', rn_mxlice 739 ENDIF 678 740 WRITE(numout,*) ' top/bottom friction forcing flag ln_drg = ', ln_drg 679 741 WRITE(numout,*) ' Langmuir cells parametrization ln_lc = ', ln_lc
Note: See TracChangeset
for help on using the changeset viewer.