- Timestamp:
- 2021-06-11T10:22:51+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14608_AGRIF_domcfg
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14608_AGRIF_domcfg/cfgs/SHARED/field_def_nemo-oce.xml
r14958 r14971 1108 1108 <field id="vtrd_tot" long_name="j-trend: total momentum trend before atf" unit="m/s^2" /> 1109 1109 <field id="vtrd_atf" long_name="j-trend: asselin time filter trend" unit="m/s^2" /> 1110 </field_group> 1111 1112 <!-- shared variables available with TOP interface --> 1113 <field_group id="top_shared" grid_ref="grid_T_3D"> 1114 <field id="xeps" long_name="Broadband light attenuation" unit="-" /> 1115 <field id="Heup" long_name="Euphotic layer depth" unit="m" grid_ref="grid_T_2D" /> 1110 1116 </field_group> 1111 1117 -
NEMO/branches/2021/dev_r14608_AGRIF_domcfg/cfgs/SHARED/namelist_ref
r14958 r14971 1234 1234 ! ! = 2 roughness uses rn_hsri and is weighted by 1-fr_i 1235 1235 ! ! = 3 roughness uses rn_hsri and is weighted by 1-MIN(1,4*fr_i) 1236 nn_mxlice = 1 ! mixing under sea ice 1237 ! = 0 No scaling under sea-ice 1238 ! = 1 scaling with constant Ice-ocean roughness (rn_hsri) 1239 ! = 2 scaling with mean sea-ice thickness 1240 ! = 3 scaling with max sea-ice thickness 1236 1241 nn_bc_surf = 1 ! surface condition (0/1=Dir/Neum) 1237 1242 nn_bc_bot = 1 ! bottom condition (0/1=Dir/Neum) -
NEMO/branches/2021/dev_r14608_AGRIF_domcfg/cfgs/SHARED/namelist_top_ref
r14032 r14971 101 101 / 102 102 !----------------------------------------------------------------------- 103 &namtrc_opt ! light availability in the water column 104 !----------------------------------------------------------------------- 105 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 106 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 107 sn_par = 'par.orca' , 24 , 'fr_par' , .true. , .true. , 'yearly' , '' , '' , '' 108 cn_dir = './' ! root directory for the location of the dynamical files 109 ln_varpar = .true. ! Read PAR from file 110 parlux = 0.43 ! Fraction of shortwave as PAR 111 light_loc = 'center' ! Light location in the water cell ('center', 'integral') 112 / 113 !----------------------------------------------------------------------- 103 114 &namtrc_dmp ! passive tracer newtonian damping (ln_trcdmp=T) 104 115 !----------------------------------------------------------------------- -
NEMO/branches/2021/dev_r14608_AGRIF_domcfg/src/OCE/SBC/sbcwave.F90
r14433 r14971 24 24 USE bdy_oce ! open boundary condition variables 25 25 USE domvvl ! domain: variable volume layers 26 USE zdf_oce, ONLY : ln_zdfswm ! Qiao wave enhanced mixing 26 27 ! 27 28 USE iom ! I/O manager library … … 310 311 IF( jp_vsd > 0 ) vt0sd(:,:) = sf_sd(jp_vsd)%fnow(:,:,1) * tmask(:,:,1) ! 2D meridional Stokes Drift at T point 311 312 ENDIF 313 314 ! Read also wave number if needed, so that it is available in 315 ! coupling routines 316 IF( ln_zdfswm .AND. .NOT. cpl_wnum ) THEN !==wavenumber==! 317 CALL fld_read( kt, nn_fsbc, sf_wn ) ! read wave parameters from external forcing 318 wnum(:,:) = sf_wn(1)%fnow(:,:,1) * tmask(:,:,1) 319 ENDIF 320 312 321 ! 313 322 IF( jpfld == 4 .OR. ln_wave_test ) & … … 506 515 ENDIF 507 516 ! 508 ! 3. Wave number (only needed for Qiao parametrisation, ln_zdf qiao=T)509 IF( .NOT. cpl_wnum ) THEN517 ! 3. Wave number (only needed for Qiao parametrisation, ln_zdfswm=T) 518 IF( ln_zdfswm .AND. .NOT. cpl_wnum ) THEN 510 519 ALLOCATE( sf_wn(1), STAT=ierror ) !* allocate and fill sf_wave with sn_wnum 511 520 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_wn structure' ) -
NEMO/branches/2021/dev_r14608_AGRIF_domcfg/src/OCE/ZDF/zdfgls.F90
r14958 r14971 26 26 USE zdfmxl ! mixed layer 27 27 USE sbcwave , ONLY : hsw ! significant wave height 28 #if defined key_si3 29 USE ice, ONLY: hm_i, h_i 30 #endif 31 #if defined key_cice 32 USE sbc_ice, ONLY: h_i 33 #endif 28 34 ! 29 35 USE lbclnk ! ocean lateral boundary conditions (or mpp link) … … 51 57 LOGICAL :: ln_length_lim ! use limit on the dissipation rate under stable stratification (Galperin et al. 1988) 52 58 LOGICAL :: ln_sigpsi ! Activate Burchard (2003) modification for k-eps closure & wave breaking mixing 59 INTEGER :: nn_mxlice ! type of scaling under sea-ice (=0/1/2/3) 53 60 INTEGER :: nn_bc_surf ! surface boundary condition (=0/1) 54 61 INTEGER :: nn_bc_bot ! bottom boundary condition (=0/1) … … 224 231 ! 225 232 ! adapt roughness where there is sea ice 226 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 227 zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * rn_hsri )*tmask(ji,jj,1) + & 228 & (1._wp - tmask(ji,jj,1))*rn_hsro 229 END_2D 233 SELECT CASE( nn_mxlice ) ! Type of scaling under sea-ice 234 ! 235 CASE( 1 ) ! scaling with constant sea-ice roughness 236 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 237 zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * rn_hsri )*tmask(ji,jj,1) + (1._wp - tmask(ji,jj,1))*rn_hsro 238 END_2D 239 ! 240 CASE( 2 ) ! scaling with mean sea-ice thickness 241 #if defined key_si3 242 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 243 zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * hm_i(ji,jj) )*tmask(ji,jj,1) + (1._wp - tmask(ji,jj,1))*rn_hsro 244 END_2D 245 #endif 246 ! 247 CASE( 3 ) ! scaling with max sea-ice thickness 248 #if defined key_si3 || defined key_cice 249 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 250 zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * MAXVAL(h_i(ji,jj,:)) )*tmask(ji,jj,1) + (1._wp - tmask(ji,jj,1))*rn_hsro 251 END_2D 252 #endif 253 ! 254 END SELECT 230 255 ! 231 256 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) !== Compute dissipation rate ==! … … 329 354 END_2D 330 355 ! 356 IF( ln_isfcav) THEN ! top boundary (ocean cavity) 357 DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 358 IF( mikt(ji,jj) > 1 )THEN 359 itop = mikt(ji,jj) ! k top w-point 360 itopp1 = mikt(ji,jj) + 1 ! k+1 1st w-point below the top one 361 ! ! mask at the 362 ! ocean surface 363 ! points 364 z_en = MAX( rc02r * ustar2_top(ji,jj), rn_emin ) * ( 1._wp - tmask(ji,jj,1) ) 365 ! 366 ! Dirichlet condition applied at: 367 ! top level (itop) & Just below it (itopp1) 368 zd_lw(ji,jj,itop) = 0._wp ; zd_lw(ji,jj,itopp1) = 0._wp 369 zd_up(ji,jj,itop) = 0._wp ; zd_up(ji,jj,itopp1) = 0._wp 370 zdiag(ji,jj,itop) = 1._wp ; zdiag(ji,jj,itopp1) = 1._wp 371 en (ji,jj,itop) = z_en ; en (ji,jj,itopp1) = z_en 372 ENDIF 373 END_2D 374 ENDIF 331 375 ! 332 376 CASE ( 1 ) ! Neumann boundary condition (set d(e)/dz) … … 352 396 END_2D 353 397 ! 398 IF( ln_isfcav) THEN ! top boundary (ocean cavity) 399 DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 400 IF( mikt(ji,jj) > 1 )THEN 401 itop = mikt(ji,jj) ! k top w-point 402 itopp1 = mikt(ji,jj) + 1 ! k+1 1st w-point below the top one 403 ! ! mask at the 404 ! ocean surface 405 ! points 406 z_en = MAX( rc02r * ustar2_top(ji,jj), rn_emin ) * ( 1._wp - tmask(ji,jj,1) ) 407 ! 408 ! Bottom level Dirichlet condition: 409 ! Bottom level (ibot) & Just above it (ibotm1) 410 ! Dirichlet ! Neumann 411 zd_lw(ji,jj,itop) = 0._wp ! ! Remove zd_up from zdiag 412 zdiag(ji,jj,itop) = 1._wp ; zdiag(ji,jj,itopp1) = zdiag(ji,jj,itopp1) + zd_up(ji,jj,itopp1) 413 zd_up(ji,jj,itop) = 0._wp ; zd_up(ji,jj,itopp1) = 0._wp 414 en (ji,jj,itop) = z_en 415 ENDIF 416 END_2D 417 ENDIF 354 418 ! 355 419 END SELECT … … 607 671 END_2D 608 672 ! 673 IF( ln_isfcav) THEN ! top boundary (ocean cavity) 674 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 675 IF ( mikt(ji,jj) > 1 ) THEN 676 itop = mikt(ji,jj) ! k top w-point 677 itopp1 = mikt(ji,jj) + 1 ! k+1 1st w-point below the top one 678 ! 679 zdep(ji,jj) = vkarmn * r_z0_top 680 psi (ji,jj,itop) = rc0**rpp * en(ji,jj,itop)**rmm *zdep(ji,jj)**rnn 681 zd_lw(ji,jj,itop) = 0._wp 682 zd_up(ji,jj,itop) = 0._wp 683 zdiag(ji,jj,itop) = 1._wp 684 ! 685 ! Just above last level, Dirichlet condition again (GOTM like) 686 zdep(ji,jj) = vkarmn * ( r_z0_top + e3t(ji,jj,itopp1,Kmm) ) 687 psi (ji,jj,itopp1) = rc0**rpp * en(ji,jj,itop )**rmm *zdep(ji,jj)**rnn 688 zd_lw(ji,jj,itopp1) = 0._wp 689 zd_up(ji,jj,itopp1) = 0._wp 690 zdiag(ji,jj,itopp1) = 1._wp 691 END IF 692 END_2D 693 END IF 694 ! 609 695 CASE ( 1 ) ! Neumman boundary condition 610 696 ! … … 631 717 psi(ji,jj,ibotm1) = psi(ji,jj,ibotm1) + zflxb / e3w(ji,jj,ibotm1,Kmm) 632 718 END_2D 719 ! 720 IF( ln_isfcav) THEN ! top boundary (ocean cavity) 721 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 722 IF ( mikt(ji,jj) > 1 ) THEN 723 itop = mikt(ji,jj) ! k top w-point 724 itopp1 = mikt(ji,jj) + 1 ! k+1 1st w-point below the top one 725 ! 726 ! Bottom level Dirichlet condition: 727 zdep(ji,jj) = vkarmn * r_z0_top 728 psi (ji,jj,itop) = rc0**rpp * en(ji,jj,itop)**rmm *zdep(ji,jj)**rnn 729 ! 730 zd_lw(ji,jj,itop) = 0._wp 731 zd_up(ji,jj,itop) = 0._wp 732 zdiag(ji,jj,itop) = 1._wp 733 ! 734 ! Just below cavity level: Neumann condition with flux 735 ! injection 736 zdiag(ji,jj,itopp1) = zdiag(ji,jj,itopp1) + zd_up(ji,jj,itopp1) ! Remove zd_up from zdiag 737 zd_up(ji,jj,itopp1) = 0._wp 738 ! 739 ! Set psi vertical flux below cavity: 740 zdep(ji,jj) = r_z0_top + 0.5_wp*e3t(ji,jj,itopp1,Kmm) 741 zflxb = rsbc_psi2 * ( p_avm(ji,jj,itop) + p_avm(ji,jj,itopp1)) & 742 & * (0.5_wp*(en(ji,jj,itop)+en(ji,jj,itopp1)))**rmm * zdep(ji,jj)**(rnn-1._wp) 743 psi(ji,jj,itopp1) = psi(ji,jj,itopp1) + zflxb / e3w(ji,jj,itopp1,Kmm) 744 END IF 745 END_2D 746 END IF 747 633 748 ! 634 749 END SELECT … … 799 914 NAMELIST/namzdf_gls/rn_emin, rn_epsmin, ln_length_lim, & 800 915 & rn_clim_galp, ln_sigpsi, rn_hsro, rn_hsri, & 801 & rn_crban, rn_charn, rn_frac_hs,&916 & nn_mxlice, rn_crban, rn_charn, rn_frac_hs, & 802 917 & nn_bc_surf, nn_bc_bot, nn_z0_met, nn_z0_ice, & 803 918 & nn_stab_func, nn_clos … … 839 954 WRITE(numout,*) ' Type of closure nn_clos = ', nn_clos 840 955 WRITE(numout,*) ' Surface roughness (m) rn_hsro = ', rn_hsro 841 WRITE(numout,*) ' Ice-ocean roughness (used if nn_z0_ice/=0) rn_hsri = ', rn_hsri 956 WRITE(numout,*) ' type of scaling under sea-ice nn_mxlice = ', nn_mxlice 957 IF( nn_mxlice == 1 ) & 958 WRITE(numout,*) ' Ice-ocean roughness (used if nn_z0_ice/=0) rn_hsri = ', rn_hsri 959 SELECT CASE( nn_mxlice ) ! Type of scaling under sea-ice 960 CASE( 0 ) ; WRITE(numout,*) ' ==>>> No scaling under sea-ice' 961 CASE( 1 ) ; WRITE(numout,*) ' ==>>> scaling with constant sea-ice thickness' 962 CASE( 2 ) ; WRITE(numout,*) ' ==>>> scaling with mean sea-ice thickness' 963 CASE( 3 ) ; WRITE(numout,*) ' ==>>> scaling with max sea-ice thickness' 964 CASE DEFAULT 965 CALL ctl_stop( 'zdf_tke_init: wrong value for nn_mxlice, should be 0,1,2,3 ') 966 END SELECT 842 967 WRITE(numout,*) 843 968 ENDIF -
NEMO/branches/2021/dev_r14608_AGRIF_domcfg/src/OCE/ZDF/zdfphy.F90
r14958 r14971 213 213 IF( ioptio /= 1 ) CALL ctl_stop( 'zdf_phy_init: one and only one vertical diffusion option has to be defined ' ) 214 214 IF( ln_isfcav ) THEN 215 IF( ln_zdfric .OR. ln_zdfgls ) CALL ctl_stop( 'zdf_phy_init: zdfric and zdfglsnever tested with ice shelves cavities ' )215 IF( ln_zdfric ) CALL ctl_stop( 'zdf_phy_init: zdfric never tested with ice shelves cavities ' ) 216 216 ENDIF 217 217 ! ! shear production term flag -
NEMO/branches/2021/dev_r14608_AGRIF_domcfg/tests/CANAL/EXPREF/file_def_nemo-oce.xml
r14224 r14971 26 26 <field field_ref="utau" /> 27 27 <field field_ref="uoce" /> 28 <field_group group_ref="trendU" />29 28 </file> 30 29 … … 32 31 <field field_ref="vtau" /> 33 32 <field field_ref="voce" /> 34 <field_group group_ref="trendV" />35 33 </file> 36 34
Note: See TracChangeset
for help on using the changeset viewer.