From df6e82601f57fe600f13d318c39c4c33e8d5a2e1 Mon Sep 17 00:00:00 2001 From: Zhi Liang Date: Wed, 5 Mar 2014 09:11:45 -0500 Subject: [PATCH 1/5] Replace GOMP. Implement OpenMP in MOM_vert_friction.F90. Fix OpenMP error in MOM_CoriolisAdv.F90. Add nthreads to ocean_solo_nml to be able to run in nultiple threads --- config_src/solo_driver/MOM_driver.F90 | 14 +- src/core/MOM_CoriolisAdv.F90 | 2 +- src/core/MOM_barotropic.F90 | 70 +++++----- src/core/MOM_continuity_PPM.F90 | 24 ++-- src/core/MOM_legacy_barotropic.F90 | 78 +++++------ .../lateral/MOM_hor_visc.F90 | 6 +- .../vertical/MOM_set_viscosity.F90 | 14 +- .../vertical/MOM_vert_friction.F90 | 126 +++++++++++++----- 8 files changed, 199 insertions(+), 135 deletions(-) diff --git a/config_src/solo_driver/MOM_driver.F90 b/config_src/solo_driver/MOM_driver.F90 index 5b0e471f3a..cfad521a4c 100644 --- a/config_src/solo_driver/MOM_driver.F90 +++ b/config_src/solo_driver/MOM_driver.F90 @@ -144,6 +144,7 @@ program MOM_main type(time_type) :: energysavedays ! The interval between writing the energies ! and other integral quantities of the run. + integer :: nthreads = 1 ! Number of Openmp threads integer :: date_init(6)=0 ! The start date of the whole simulation. integer :: date(6)=-1 ! Possibly the start date of this run segment. integer :: years=0, months=0, days=0 ! These may determine the segment run @@ -166,12 +167,14 @@ program MOM_main type(ice_shelf_CS), pointer :: ice_shelf_CSp => NULL() !----------------------------------------------------------------------- + integer :: get_cpu_affinity, base_cpu, omp_get_num_threads, omp_get_thread_num + character(len=4), parameter :: vers_num = 'v2.0' ! This include declares and sets the variable "version". #include "version_variable.h" character(len=40) :: mod = "MOM_main (MOM_driver)" ! This module's name. - namelist /ocean_solo_nml/ date_init, calendar, months, days, hours, minutes, seconds + namelist /ocean_solo_nml/ date_init, calendar, months, days, hours, minutes, seconds, nthreads !####################################################################### @@ -220,6 +223,15 @@ program MOM_main endif call set_calendar_type(calendar_type) +#ifndef NOT_SET_AFFINITY +!$ call omp_set_num_threads(nthreads) +!$ base_cpu = get_cpu_affinity() +!$OMP PARALLEL +!$ call set_cpu_affinity( base_cpu + omp_get_thread_num() ) +!$OMP END PARALLEL +#endif + + if (sum(date_init) > 0) then Start_time = set_date(date_init(1),date_init(2), date_init(3), & date_init(4),date_init(5),date_init(6)) diff --git a/src/core/MOM_CoriolisAdv.F90 b/src/core/MOM_CoriolisAdv.F90 index 4f0b48ead0..681f46961c 100644 --- a/src/core/MOM_CoriolisAdv.F90 +++ b/src/core/MOM_CoriolisAdv.F90 @@ -290,7 +290,7 @@ subroutine CorAdCalc(u, v, h, uh, vh, CAu, CAv, AD, G, CS) (Area_h(i+1,j) + Area_h(i,j+1)) enddo ; enddo -!GOMP(parallel do default(private) shared(u,v,h,uh,vh,CAu,CAv,G,CS,Area_h,Area_q,nz)) +!$OMP parallel do default(private) shared(u,v,h,uh,vh,CAu,CAv,G,CS,AD,Area_h,Area_q,nz,RV,PV) do k=1,nz is = G%isc ; ie = G%iec ; js = G%jsc ; je = G%jec Isq = G%IscB ; Ieq = G%IecB ; Jsq = G%JscB ; Jeq = G%JecB diff --git a/src/core/MOM_barotropic.F90 b/src/core/MOM_barotropic.F90 index 572544f911..a3b401950b 100644 --- a/src/core/MOM_barotropic.F90 +++ b/src/core/MOM_barotropic.F90 @@ -730,15 +730,15 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & ! barotropic momentum equations. This has to be done quite early to start ! the halo update that needs to be completed before the next calculations. if (CS%linearized_BT_PV) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsvf-2,jevf+1 ; do I=isvf-2,ievf+1 q(I,J) = CS%q_D(I,j) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsvf-1,jevf+1 ; do I=isvf-2,ievf+1 DCor_u(I,j) = CS%D_u_Cor(I,j) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsvf-2,jevf+1 ; do i=isvf-1,ievf+1 DCor_v(i,J) = CS%D_v_Cor(i,J) enddo ; enddo @@ -746,15 +746,15 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & q(:,:) = 0.0 ; DCor_u(:,:) = 0.0 ; DCor_v(:,:) = 0.0 ! This option has not yet been written properly. ! D here should be replaced with D+eta(Bous) or eta(non-Bous). -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js,je ; do I=is-1,ie DCor_u(I,j) = 0.5 * (G%bathyT(i+1,j) + G%bathyT(i,j)) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1,je ; do i=is,ie DCor_v(i,J) = 0.5 * (G%bathyT(i,j+1) + G%bathyT(i,j)) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1,je ; do I=is-1,ie q(I,J) = 0.25 * G%CoriolisBu(I,J) * & ((G%areaT(i,j) + G%areaT(i+1,j+1)) + (G%areaT(i+1,j) + G%areaT(i,j+1))) / & @@ -817,7 +817,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & enddo ; enddo endif -!GOMP(parallel do default(shared) private(i, j, k, visc_rem)) +!$OMP parallel do default(shared) private(i, j, k, visc_rem) do k=1,nz ; do j=js-1,je+1 ; do I=Isq-1,Ieq+1 ! rem needs greater than visc_rem_u and 1-Instep/visc_rem_u. ! The 0.5 below is just for safety. @@ -828,7 +828,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & else ; visc_rem = 1.0 - 0.5*Instep/visc_rem_u(I,j,k) ; endif wt_u(I,j,k) = CS%frhatu(I,j,k) * visc_rem enddo ; enddo ; enddo -!GOMP(parallel do default(shared) private(i, j, k, visc_rem)) +!$OMP parallel do default(shared) private(i, j, k, visc_rem) do k=1,nz ; do J=Jsq-1,Jeq+1 ; do i=is-1,ie+1 ! rem needs greater than visc_rem_v and 1-Instep/visc_rem_v. if (visc_rem_v(i,J,k) <= 0.0) then ; visc_rem = 0.0 @@ -1008,7 +1008,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & endif ! Determine the weighted Coriolis parameters for the neighboring velocities. -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsvf-1,jevf ; do i=isvf-1,ievf+1 if (CS%Sadourny) then amer(I-1,j) = DCor_u(I-1,j) * q(I-1,J) @@ -1027,7 +1027,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & endif enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsvf-1,jevf+1 ; do I=isvf-1,ievf if (CS%Sadourny) then azon(I,j) = DCor_v(i+1,J) * q(I,J) @@ -1057,13 +1057,13 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & vbt_Cor(i,J) = vbt_Cor(i,J) + wt_v(i,J,k) * V_Cor(i,J,k) enddo ; enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js,je ; do I=is-1,ie Cor_ref_u(I,j) = & ((azon(I,j) * vbt_Cor(i+1,j) + czon(I,j) * vbt_Cor(i ,j-1)) + & (bzon(I,j) * vbt_Cor(i ,j) + dzon(I,j) * vbt_Cor(i+1,j-1))) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1,je ; do i=is,ie Cor_ref_v(i,J) = -1.0 * & ((amer(I-1,j) * ubt_Cor(I-1,j) + cmer(I ,j+1) * ubt_Cor(I ,j+1)) + & @@ -1431,7 +1431,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & if (CS%dynamic_psurf .or. .not.project_velocity) then if (use_BT_cont) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv-1,jev+1 ; do I=isv-2,iev+1 uhbt(I,j) = find_uhbt(ubt(I,j),BTCL_u(I,j)) + uhbt0(I,j) enddo ; enddo @@ -1443,7 +1443,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & ((uhbt(I-1,j) - uhbt(I,j)) + (vhbt(i,J-1) - vhbt(i,J))) enddo ; enddo else -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv-1,jev+1 ; do i=isv-1,iev+1 eta_pred(i,j) = (eta(i,j) + eta_src(i,j)) + (dtbt * CS%IareaT(i,j)) * & (((Datu(I-1,j)*ubt(I-1,j) + uhbt0(I-1,j)) - & @@ -1473,11 +1473,11 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & endif if (apply_OBC_flather) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv,jev ; do I=isv-2,iev+1 ubt_old(I,j) = ubt(I,j) enddo; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsv-2,jev+1 ; do i=isv,iev vbt_old(i,J) = vbt(i,J) enddo ; enddo @@ -1485,7 +1485,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & if (MOD(n+G%first_direction,2)==1) then ! On odd-steps, update v first. -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do J=jsv-1,jev ; do i=isv-1,iev+1 Cor = -1.0*((amer(I-1,j) * ubt(I-1,j) + cmer(I,j+1) * ubt(I,j+1)) + & (bmer(I,j) * ubt(I,j) + dmer(I-1,j+1) * ubt(I-1,j+1))) - Cor_ref_v(i,J) @@ -1519,7 +1519,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & vbt_wtd(i,J) = vbt_wtd(i,J) + wt_vel(n) * vbt(i,J) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do j=jsv,jev ; do I=isv-1,iev Cor = ((azon(I,j) * vbt(i+1,J) + czon(I,j) * vbt(i,J-1)) + & (bzon(I,j) * vbt(i,J) + dzon(I,j) * vbt(i+1,J-1))) - Cor_ref_u(I,j) @@ -1555,7 +1555,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & else ! On even steps, update u first. -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do j=jsv-1,jev+1 ; do I=isv-1,iev Cor = ((azon(I,j) * vbt(i+1,J) + czon(I,j) * vbt(i,J-1)) + & (bzon(I,j) * vbt(i,J) + dzon(I,j) * vbt(i+1,J-1))) - Cor_ref_u(I,j) @@ -1589,7 +1589,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & ubt_wtd(I,j) = ubt_wtd(I,j) + wt_vel(n) * ubt(I,j) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do J=jsv-1,jev ; do i=isv,iev Cor = -1.0*((amer(I-1,j) * ubt(I-1,j) + bmer(I,j) * ubt(I,j)) + & (cmer(I,j+1) * ubt(I,j+1) + dmer(I-1,j+1) * ubt(I-1,j+1))) - Cor_ref_v(i,J) @@ -1650,7 +1650,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & call vchksum(vhbt, "BT vhbt just after OBC",CS%debug_BT_G,haloshift=iev-ie) endif -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv,jev ; do i=isv,iev eta(i,j) = (eta(i,j) + eta_src(i,j)) + (dtbt * CS%IareaT(i,j)) * & ((uhbt(I-1,j) - uhbt(I,j)) + (vhbt(i,J-1) - vhbt(i,J))) @@ -1748,7 +1748,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, & if (id_clock_calc_post > 0) call cpu_clock_begin(id_clock_calc_post) ! Now calculate each layer's accelerations. -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz do j=js,je ; do I=is-1,ie accel_layer_u(I,j,k) = u_accel_bt(I,j) - & @@ -2468,8 +2468,8 @@ subroutine btcalc(h, G, CS, h_u, h_v, may_use_default) ! This estimates the fractional thickness of each layer at the velocity ! points, using a harmonic mean estimate. -!GOMP(parallel do default(shared) private(i, j, k, hatutot, Ihatutot, e_u, &) -!GOMP( D_shallow_u, h_arith, h_harm, wt_arith)) +!$OMP parallel do default(shared) private(i, j, k, hatutot, Ihatutot, e_u, & +!$OMP D_shallow_u, h_arith, h_harm, wt_arith) do j=js-1,je+1 if (present(h_u)) then do I=is-2,ie+1 ; hatutot(I) = h_u(i,j,1) ; enddo @@ -2531,8 +2531,8 @@ subroutine btcalc(h, G, CS, h_u, h_v, may_use_default) endif enddo -!GOMP(parallel do default(shared) private(i, j, k, hatvtot, Ihatvtot, e_v, &) -!GOMP( D_shallow_v, h_arith, h_harm, wt_arith)) +!$OMP parallel do default(shared) private(i, j, k, hatvtot, Ihatvtot, e_v, & +!$OMP D_shallow_v, h_arith, h_harm, wt_arith) do J=js-2,je+1 if (present(h_v)) then do i=is-1,ie+1 ; hatvtot(i) = h_v(i,j,1) ; enddo @@ -3018,14 +3018,14 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, eta, halo, add_max) if (present(eta)) then ! The use of harmonic mean thicknesses ensure positive definiteness. if (G%Boussinesq) then -!GOMP(parallel do default(shared) private(i, j, H1, H2)) +!$OMP parallel do default(shared) private(i, j, H1, H2) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs H1 = CS%bathyT(i,j) + eta(i,j) ; H2 = CS%bathyT(i+1,j) + eta(i+1,j) Datu(I,j) = 0.0 ; if ((H1 > 0.0) .and. (H2 > 0.0)) & Datu(I,j) = CS%dy_Cu(I,j) * (2.0 * H1 * H2) / (H1 + H2) ! Datu(I,j) = CS%dy_Cu(I,j) * 0.5 * (H1 + H2) enddo; enddo -!GOMP(parallel do default(shared) private(i, j, H1, H2)) +!$OMP parallel do default(shared) private(i, j, H1, H2) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs H1 = CS%bathyT(i,j) + eta(i,j) ; H2 = CS%bathyT(i,j+1) + eta(i,j+1) Datv(i,J) = 0.0 ; if ((H1 > 0.0) .and. (H2 > 0.0)) & @@ -3033,14 +3033,14 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, eta, halo, add_max) ! Datv(i,J) = CS%dy_v(i,J) * 0.5 * (H1 + H2) enddo; enddo else -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs Datu(I,j) = 0.0 ; if ((eta(i,j) > 0.0) .and. (eta(i+1,j) > 0.0)) & Datu(I,j) = CS%dy_Cu(I,j) * (2.0 * eta(i,j) * eta(i+1,j)) / & (eta(i,j) + eta(i+1,j)) ! Datu(I,j) = CS%dy_Cu(I,j) * 0.5 * (eta(i,j) + eta(i+1,j)) enddo; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs Datv(i,J) = 0.0 ; if ((eta(i,j) > 0.0) .and. (eta(i,j+1) > 0.0)) & Datv(i,J) = CS%dx_Cv(i,J) * (2.0 * eta(i,j) * eta(i,j+1)) / & @@ -3049,18 +3049,18 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, eta, halo, add_max) enddo; enddo endif elseif (present(add_max)) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs Datu(I,j) = CS%dy_Cu(I,j) * G%m_to_H * & (max(CS%bathyT(i+1,j), CS%bathyT(i,j)) + add_max) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs Datv(i,J) = CS%dx_Cv(i,J) * G%m_to_H * & (max(CS%bathyT(i,j+1), CS%bathyT(i,j)) + add_max) enddo ; enddo else -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs !Would be "if (G%mask2dCu(I,j)>0.) &" is G was valid on BT domain if (CS%bathyT(i+1,j)+CS%bathyT(i,j)>0.) & @@ -3068,7 +3068,7 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, eta, halo, add_max) (CS%bathyT(i+1,j) * CS%bathyT(i,j)) / & (CS%bathyT(i+1,j) + CS%bathyT(i,j)) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs !Would be "if (G%mask2dCv(i,J)>0.) &" is G was valid on BT domain if (CS%bathyT(i,j+1)+CS%bathyT(i,j)>0.) & @@ -3123,7 +3123,7 @@ subroutine bt_mass_source(h, eta, fluxes, set_cor, dt_therm, dt_since_therm, & is = G%isc ; ie = G%iec ; js = G%jsc ; je = G%jec ; nz = G%ke -!GOMP(parallel do default(shared) private(i,j,k,eta_h)) +!$OMP parallel do default(shared) private(i,j,k,eta_h) do j=js,je do i=is,ie ; h_tot(i) = h(i,j,1) ; enddo if (G%Boussinesq) then diff --git a/src/core/MOM_continuity_PPM.F90 b/src/core/MOM_continuity_PPM.F90 index 2dc19d21bf..951cb83501 100644 --- a/src/core/MOM_continuity_PPM.F90 +++ b/src/core/MOM_continuity_PPM.F90 @@ -207,7 +207,7 @@ subroutine continuity_PPM(u, v, hin, h, uh, vh, dt, G, CS, uhbt, vhbt, OBC, & u_cor, uhbt_aux, u_cor_aux, BT_cont) call cpu_clock_begin(id_clock_update) -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz ; do j=LB%jsh,LB%jeh ; do i=LB%ish,LB%ieh h(i,j,k) = hin(i,j,k) - dt* G%IareaT(i,j) * (uh(I,j,k) - uh(I-1,j,k)) ! Uncomment this line to prevent underflow. @@ -235,7 +235,7 @@ subroutine continuity_PPM(u, v, hin, h, uh, vh, dt, G, CS, uhbt, vhbt, OBC, & v_cor, vhbt_aux, v_cor_aux, BT_cont) call cpu_clock_begin(id_clock_update) -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz ; do j=LB%jsh,LB%jeh ; do i=LB%ish,LB%ieh h(i,j,k) = h(i,j,k) - dt*G%IareaT(i,j) * (vh(i,J,k) - vh(i,J-1,k)) ! This line prevents underflow. @@ -264,7 +264,7 @@ subroutine continuity_PPM(u, v, hin, h, uh, vh, dt, G, CS, uhbt, vhbt, OBC, & v_cor, vhbt_aux, v_cor_aux, BT_cont) call cpu_clock_begin(id_clock_update) -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz ; do j=LB%jsh,LB%jeh ; do i=LB%ish,LB%ieh h(i,j,k) = hin(i,j,k) - dt*G%IareaT(i,j) * (vh(i,J,k) - vh(i,J-1,k)) enddo ; enddo ; enddo @@ -290,7 +290,7 @@ subroutine continuity_PPM(u, v, hin, h, uh, vh, dt, G, CS, uhbt, vhbt, OBC, & u_cor, uhbt_aux, u_cor_aux, BT_cont) call cpu_clock_begin(id_clock_update) -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz ; do j=LB%jsh,LB%jeh ; do i=LB%ish,LB%ieh h(i,j,k) = h(i,j,k) - dt* G%IareaT(i,j) * (uh(I,j,k) - uh(I-1,j,k)) ! This line prevents underflow. @@ -394,7 +394,7 @@ subroutine zonal_mass_flux(u, h_in, uh, dt, G, CS, LB, uhbt, OBC, & if (CS%aggress_adjust) CFL_dt = I_dt call cpu_clock_begin(id_clock_update) -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz ! This sets hl and hr. if (CS%upwind_1st) then @@ -410,9 +410,9 @@ subroutine zonal_mass_flux(u, h_in, uh, dt, G, CS, LB, uhbt, OBC, & call cpu_clock_end(id_clock_update) call cpu_clock_begin(id_clock_correct) -!GOMP(parallel do default(shared) private(i, j, k, do_i, duhdu, du, &) -!GOMP( du_max_CFL, du_min_CFL, uh_tot_0, duhdu_tot_0, visc_rem, &) -!GOMP( visc_rem_max, I_vrm, du_lim, dx_E, dx_W )) +!$OMP parallel do default(shared) private(i, j, k, do_i, duhdu, du, & +!$OMP du_max_CFL, du_min_CFL, uh_tot_0, duhdu_tot_0, visc_rem, & +!$OMP visc_rem_max, I_vrm, du_lim, dx_E, dx_W ) do j=jsh,jeh do I=ish-1,ieh ; do_i(I) = .true. ; visc_rem_max(I) = 0.0 ; enddo ! Set uh and duhdu. @@ -1129,7 +1129,7 @@ subroutine meridional_mass_flux(v, h_in, vh, dt, G, CS, LB, vhbt, OBC, & if (CS%aggress_adjust) CFL_dt = I_dt call cpu_clock_begin(id_clock_update) -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz ! This sets hl and hr. if (CS%upwind_1st) then @@ -1145,9 +1145,9 @@ subroutine meridional_mass_flux(v, h_in, vh, dt, G, CS, LB, vhbt, OBC, & call cpu_clock_end(id_clock_update) call cpu_clock_begin(id_clock_correct) -!GOMP(parallel do default(shared) private(i, j, k, do_i, dvhdv, dv, &) -!GOMP( dv_max_CFL, dv_min_CFL, vh_tot_0, dvhdv_tot_0, visc_rem, &) -!GOMP( visc_rem_max, I_vrm, dv_lim, dy_N, dy_S )) +!$OMP parallel do default(shared) private(i, j, k, do_i, dvhdv, dv, & +!$OMP dv_max_CFL, dv_min_CFL, vh_tot_0, dvhdv_tot_0, visc_rem, & +!$OMP visc_rem_max, I_vrm, dv_lim, dy_N, dy_S ) do J=jsh-1,jeh do i=ish,ieh ; do_i(i) = .true. ; visc_rem_max(I) = 0.0 ; enddo ! This sets vh and dvhdv. diff --git a/src/core/MOM_legacy_barotropic.F90 b/src/core/MOM_legacy_barotropic.F90 index 7da6437db8..54a1a5c66b 100644 --- a/src/core/MOM_legacy_barotropic.F90 +++ b/src/core/MOM_legacy_barotropic.F90 @@ -767,15 +767,15 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce ! barotropic momentum equations. This has to be done quite early to start ! the halo update that needs to be completed before the next calculations. if (CS%linearized_BT_PV) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsvf-2,jevf+1 ; do I=isvf-2,ievf+1 q(I,J) = CS%q_D(I,j) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsvf-1,jevf+1 ; do I=isvf-2,ievf+1 DCor_u(I,j) = CS%D_u_Cor(I,j) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsvf-2,jevf+1 ; do i=isvf-1,ievf+1 DCor_v(i,J) = CS%D_v_Cor(i,J) enddo ; enddo @@ -783,15 +783,15 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce q(:,:) = 0.0 ; DCor_u(:,:) = 0.0 ; DCor_v(:,:) = 0.0 ! This option has not yet been written properly. ! D here should be replaced with D+eta(Bous) or eta(non-Bous). -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js,je ; do I=is-1,ie DCor_u(I,j) = 0.5 * (G%bathyT(i+1,j) + G%bathyT(i,j)) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1,je ; do i=is,ie DCor_v(i,J) = 0.5 * (G%bathyT(i,j+1) + G%bathyT(i,j)) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1,je ; do I=is-1,ie q(I,J) = 0.25 * G%CoriolisBu(I,J) * & ((G%areaT(i,j) + G%areaT(i+1,j+1)) + (G%areaT(i+1,j) + G%areaT(i,j+1))) / & @@ -868,7 +868,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce endif if (use_visc_rem) then -!GOMP(parallel do default(shared) private(i, j, k, visc_rem)) +!$OMP parallel do default(shared) private(i, j, k, visc_rem) do k=1,nz ; do j=js-1,je+1 ; do I=Isq-1,Ieq+1 ! rem needs greater than visc_rem_u and 1-Instep/visc_rem_u. ! The 0.5 below is just for safety. @@ -879,7 +879,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce else ; visc_rem = 1.0 - 0.5*Instep/visc_rem_u(I,j,k) ; endif wt_u(I,j,k) = CS%frhatu(I,j,k) * visc_rem enddo ; enddo ; enddo -!GOMP(parallel do default(shared) private(i, j, k, visc_rem)) +!$OMP parallel do default(shared) private(i, j, k, visc_rem) do k=1,nz ; do J=Jsq-1,Jeq+1 ; do i=is-1,ie+1 ! rem needs greater than visc_rem_v and 1-Instep/visc_rem_v. if (visc_rem_v(i,J,k) <= 0.0) then ; visc_rem = 0.0 @@ -1140,7 +1140,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce endif ! Determine the weighted Coriolis parameters for the neighboring velocities. -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsvf-1,jevf ; do i=isvf-1,ievf+1 if (CS%Sadourny) then amer(I-1,j) = DCor_u(I-1,j) * q(I-1,J) @@ -1159,7 +1159,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce endif enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsvf-1,jevf+1 ; do I=isvf-1,ievf if (CS%Sadourny) then azon(I,j) = DCor_v(i+1,J) * q(I,J) @@ -1215,13 +1215,13 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce enddo ; enddo ; enddo endif -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js,je ; do I=is-1,ie Cor_ref_u(I,j) = & ((azon(I,j) * vbt_Cor(i+1,j) + czon(I,j) * vbt_Cor(i ,j-1)) + & (bzon(I,j) * vbt_Cor(i ,j) + dzon(I,j) * vbt_Cor(i+1,j-1))) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1,je ; do i=is,ie Cor_ref_v(i,J) = -1.0 * & ((amer(I-1,j) * ubt_Cor(I-1,j) + cmer(I ,j+1) * ubt_Cor(I ,j+1)) + & @@ -1589,7 +1589,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce if (CS%dynamic_psurf .or. .not.project_velocity) then if (use_BT_cont) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv-1,jev+1 ; do I=isv-2,iev+1 uhbt(I,j) = find_uhbt(ubt(I,j),BTCL_u(I,j)) + uhbt0(I,j) enddo ; enddo @@ -1601,7 +1601,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce ((uhbt(I-1,j) - uhbt(I,j)) + (vhbt(i,J-1) - vhbt(i,J))) enddo ; enddo else -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv-1,jev+1 ; do i=isv-1,iev+1 eta_pred(i,j) = (eta(i,j) + eta_src(i,j)) + (dtbt * CS%IareaT(i,j)) * & (((Datu(I-1,j)*ubt(I-1,j) + uhbt0(I-1,j)) - & @@ -1631,11 +1631,11 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce endif if (apply_OBC_flather) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv,jev ; do I=isv-2,iev+1 ubt_old(I,j) = ubt(I,j) enddo; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=jsv-2,jev+1 ; do i=isv,iev vbt_old(i,J) = vbt(i,J) enddo ; enddo @@ -1643,7 +1643,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce if (MOD(n+G%first_direction,2)==1) then ! On odd-steps, update v first. -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do J=jsv-1,jev ; do i=isv-1,iev+1 Cor = -1.0*((amer(I-1,j) * ubt(I-1,j) + cmer(I,j+1) * ubt(I,j+1)) + & (bmer(I,j) * ubt(I,j) + dmer(I-1,j+1) * ubt(I-1,j+1))) - Cor_ref_v(i,J) @@ -1677,7 +1677,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce vbt_wtd(i,J) = vbt_wtd(i,J) + wt_vel(n) * vbt(i,J) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do j=jsv,jev ; do I=isv-1,iev Cor = ((azon(I,j) * vbt(i+1,J) + czon(I,j) * vbt(i,J-1)) + & (bzon(I,j) * vbt(i,J) + dzon(I,j) * vbt(i+1,J-1))) - Cor_ref_u(I,j) @@ -1713,7 +1713,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce else ! On even steps, update u first. -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do j=jsv-1,jev+1 ; do I=isv-1,iev Cor = ((azon(I,j) * vbt(i+1,J) + czon(I,j) * vbt(i,J-1)) + & (bzon(I,j) * vbt(i,J) + dzon(I,j) * vbt(i+1,J-1))) - Cor_ref_u(I,j) @@ -1747,7 +1747,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce ubt_wtd(I,j) = ubt_wtd(I,j) + wt_vel(n) * ubt(I,j) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans )) +!$OMP parallel do default(shared) private(i, j, Cor, gradP, vel_prev, vel_trans ) do J=jsv-1,jev ; do i=isv,iev Cor = -1.0*((amer(I-1,j) * ubt(I-1,j) + bmer(I,j) * ubt(I,j)) + & (cmer(I,j+1) * ubt(I,j+1) + dmer(I-1,j+1) * ubt(I-1,j+1))) - Cor_ref_v(i,J) @@ -1808,7 +1808,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce call vchksum(vhbt, "BT vhbt just after OBC",CS%debug_BT_G,haloshift=iev-ie) endif -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=jsv,jev ; do i=isv,iev eta(i,j) = (eta(i,j) + eta_src(i,j)) + (dtbt * CS%IareaT(i,j)) * & ((uhbt(I-1,j) - uhbt(I,j)) + (vhbt(i,J-1) - vhbt(i,J))) @@ -1922,7 +1922,7 @@ subroutine legacy_btstep(use_fluxes, U_in, V_in, eta_in, dt, bc_accel_u, bc_acce if (id_clock_calc_post > 0) call cpu_clock_begin(id_clock_calc_post) ! Now calculate each layer's accelerations. -!GOMP(parallel do default(shared) private(i, j, k)) +!$OMP parallel do default(shared) private(i, j, k) do k=1,nz do j=js,je ; do I=is-1,ie accel_layer_u(I,j,k) = u_accel_bt(I,j) - & @@ -2649,8 +2649,8 @@ subroutine legacy_btcalc(h, G, CS, h_u, h_v, may_use_default) ! This estimates the fractional thickness of each layer at the velocity ! points, using a harmonic mean estimate. -!GOMP(parallel do default(shared) private(i, j, k, hatutot, Ihatutot, e_u, &) -!GOMP( D_shallow_u, h_arith, h_harm, wt_arith)) +!$OMP parallel do default(shared) private(i, j, k, hatutot, Ihatutot, e_u, & +!$OMP D_shallow_u, h_arith, h_harm, wt_arith) do j=js-1,je+1 if (present(h_u)) then do I=is-2,ie+1 ; hatutot(I) = h_u(i,j,1) ; enddo @@ -2712,8 +2712,8 @@ subroutine legacy_btcalc(h, G, CS, h_u, h_v, may_use_default) endif enddo -!GOMP(parallel do default(shared) private(i, j, k, hatvtot, Ihatvtot, e_v, &) -!GOMP( D_shallow_v, h_arith, h_harm, wt_arith)) +!$OMP parallel do default(shared) private(i, j, k, hatvtot, Ihatvtot, e_v, & +!$OMP D_shallow_v, h_arith, h_harm, wt_arith) do J=js-2,je+1 if (present(h_v)) then do i=is-1,ie+1 ; hatvtot(i) = h_v(i,j,1) ; enddo @@ -2781,7 +2781,7 @@ subroutine legacy_btcalc(h, G, CS, h_u, h_v, may_use_default) htot(i,j) = htot(i,j) + h(i,j,k) enddo ; enddo ; enddo -!GOMP(parallel do default(shared) private(i, j, k, hatutot, h_harm, Rh)) +!$OMP parallel do default(shared) private(i, j, k, hatutot, h_harm, Rh) do j=js-1,je+1 do I=is-2,ie+1 ; hatutot(I) = 0.0 ; enddo do k=1,nz ; do I=is-2,ie+1 @@ -2798,7 +2798,7 @@ subroutine legacy_btcalc(h, G, CS, h_u, h_v, may_use_default) enddo enddo -!GOMP(parallel do default(shared) private(i, j, k, hatvtot, h_harm, Rh)) +!$OMP parallel do default(shared) private(i, j, k, hatvtot, h_harm, Rh) do J=js-2,je+1 do i=is-1,ie+1 ; hatvtot(i) = 0.0 ; enddo do k=1,nz ; do i=is-1,ie+1 @@ -3244,14 +3244,14 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, rescale_faces, eta, halo, add_ if (present(eta)) then ! The use of harmonic mean thicknesses ensure positive definiteness. if (G%Boussinesq) then -!GOMP(parallel do default(shared) private(i, j, H1, H2)) +!$OMP parallel do default(shared) private(i, j, H1, H2) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs H1 = CS%bathyT(i,j) + eta(i,j) ; H2 = CS%bathyT(i+1,j) + eta(i+1,j) Datu(I,j) = 0.0 ; if ((H1 > 0.0) .and. (H2 > 0.0)) & Datu(I,j) = CS%dy_Cu(I,j) * (2.0 * H1 * H2) / (H1 + H2) ! Datu(I,j) = CS%dy_Cu(I,j) * 0.5 * (H1 + H2) enddo; enddo -!GOMP(parallel do default(shared) private(i, j, H1, H2)) +!$OMP parallel do default(shared) private(i, j, H1, H2) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs H1 = CS%bathyT(i,j) + eta(i,j) ; H2 = CS%bathyT(i,j+1) + eta(i,j+1) Datv(i,J) = 0.0 ; if ((H1 > 0.0) .and. (H2 > 0.0)) & @@ -3259,14 +3259,14 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, rescale_faces, eta, halo, add_ ! Datv(i,J) = CS%dy_v(i,J) * 0.5 * (H1 + H2) enddo; enddo else -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs Datu(I,j) = 0.0 ; if ((eta(i,j) > 0.0) .and. (eta(i+1,j) > 0.0)) & Datu(I,j) = CS%dy_Cu(I,j) * (2.0 * eta(i,j) * eta(i+1,j)) / & (eta(i,j) + eta(i+1,j)) ! Datu(I,j) = CS%dy_Cu(I,j) * 0.5 * (eta(i,j) + eta(i+1,j)) enddo; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs Datv(i,J) = 0.0 ; if ((eta(i,j) > 0.0) .and. (eta(i,j+1) > 0.0)) & Datv(i,J) = CS%dx_Cv(i,J) * (2.0 * eta(i,j) * eta(i,j+1)) / & @@ -3275,24 +3275,24 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, rescale_faces, eta, halo, add_ enddo; enddo endif elseif (present(add_max)) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs Datu(I,j) = CS%dy_Cu(I,j) * G%m_to_H * & (max(CS%bathyT(i+1,j), CS%bathyT(i,j)) + add_max) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs Datv(i,J) = CS%dx_Cv(i,J) * G%m_to_H * & (max(CS%bathyT(i,j+1), CS%bathyT(i,j)) + add_max) enddo ; enddo else -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs Datu(I,j) = 2.0*CS%dy_Cu(I,j) * G%m_to_H * & (CS%bathyT(i+1,j) * CS%bathyT(i,j)) / & (CS%bathyT(i+1,j) + CS%bathyT(i,j)) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs Datv(i,J) = 2.0*CS%dx_Cv(i,J) * G%m_to_H * & (CS%bathyT(i,j+1) * CS%bathyT(i,j)) / & @@ -3301,11 +3301,11 @@ subroutine find_face_areas(Datu, Datv, G, CS, MS, rescale_faces, eta, halo, add_ endif if (rescale) then -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do j=js-hs,je+hs ; do I=is-1-hs,ie+hs Datu(I,j) = Datu(I,j) * CS%Datu_res(I,j) enddo ; enddo -!GOMP(parallel do default(shared) private(i, j)) +!$OMP parallel do default(shared) private(i, j) do J=js-1-hs,je+hs ; do i=is-hs,ie+hs Datv(i,J) = Datv(i,J) * CS%Datv_res(i,J) enddo ; enddo @@ -3356,7 +3356,7 @@ subroutine legacy_bt_mass_source(h, eta, fluxes, set_cor, dt_therm, & is = G%isc ; ie = G%iec ; js = G%jsc ; je = G%jec ; nz = G%ke -!GOMP(parallel do default(shared) private(i,j,k,eta_h)) +!$OMP parallel do default(shared) private(i,j,k,eta_h) do j=js,je do i=is,ie ; h_tot(i) = h(i,j,1) ; enddo if (G%Boussinesq) then diff --git a/src/parameterizations/lateral/MOM_hor_visc.F90 b/src/parameterizations/lateral/MOM_hor_visc.F90 index e8de58c448..47ac85a814 100644 --- a/src/parameterizations/lateral/MOM_hor_visc.F90 +++ b/src/parameterizations/lateral/MOM_hor_visc.F90 @@ -296,9 +296,9 @@ subroutine horizontal_viscosity(u, v, h, diffu, diffv, MEKE, VarMix, G, CS, OBC) "VarMix%Res_fn_q both need to be associated with Resoln_scaled_Kh.") endif -!GOMP(parallel do default(shared) private(i, j, k, u0, v0, sh_xx, str_xx, &) -!GOMP( sh_xy, str_xy, Ah, Kh, AhSm, KhSm, &) -!GOMP( Shear_mag, huq, hvq, hq, Kh_scale)) +!$OMP parallel do default(shared) private(i, j, k, u0, v0, sh_xx, str_xx, & +!$OMP sh_xy, str_xy, Ah, Kh, AhSm, KhSm, & +!$OMP Shear_mag, huq, hvq, hq, Kh_scale) do k=1,nz ! This code uses boundary conditions that are consistent with diff --git a/src/parameterizations/vertical/MOM_set_viscosity.F90 b/src/parameterizations/vertical/MOM_set_viscosity.F90 index f007ed08fc..160a4a405f 100644 --- a/src/parameterizations/vertical/MOM_set_viscosity.F90 +++ b/src/parameterizations/vertical/MOM_set_viscosity.F90 @@ -304,9 +304,9 @@ subroutine set_viscous_BBL(u, v, h, tv, visc, G, CS) enddo ; enddo endif -!GOMP(parallel do default(private) shared(u, v, h, tv, visc, G, CS, Rml, is, ie, js, je, nz, &) -!GOMP( Isq, Ieq, Jsq, Jeq, nkmb, h_neglect, Rho0x400_G, &) -!GOMP( Vol_quit, C2pi_3, U_bg_sq, cdrag_sqrt, K2 )) +!$OMP parallel do default(private) shared(u, v, h, tv, visc, G, CS, Rml, is, ie, js, je, nz, & +!$OMP Isq, Ieq, Jsq, Jeq, nkmb, h_neglect, Rho0x400_G, & +!$OMP Vol_quit, C2pi_3, U_bg_sq, cdrag_sqrt, K2 ) do j=G%JscB,G%JecB ; do m=1,2 if (m==1) then @@ -991,8 +991,8 @@ subroutine set_viscous_ML(u, v, h, tv, fluxes, visc, dt, G, CS) endif -!GOMP(parallel do default(private) shared(u, v, h, tv, fluxes, visc, dt, G, CS, use_EOS, &) -!GOMP( dt_Rho0, h_neglect, h_tiny, g_H_Rho0)) +!$OMP parallel do default(private) shared(u, v, h, tv, fluxes, visc, dt, G, CS, use_EOS, & +!$OMP dt_Rho0, h_neglect, h_tiny, g_H_Rho0) do j=js,je ! u-point loop if (CS%dynamic_viscous_ML) then do_any = .false. @@ -1219,8 +1219,8 @@ subroutine set_viscous_ML(u, v, h, tv, fluxes, visc, dt, G, CS) enddo ! j-loop at u-points -!GOMP(parallel do default(private) shared(u, v, h, tv, fluxes, visc, dt, G, CS, use_EOS, &) -!GOMP( dt_Rho0, h_neglect, h_tiny, g_H_Rho0)) +!$OMP parallel do default(private) shared(u, v, h, tv, fluxes, visc, dt, G, CS, use_EOS, & +!$OMP dt_Rho0, h_neglect, h_tiny, g_H_Rho0) do J=Jsq,Jeq ! v-point loop if (CS%dynamic_viscous_ML) then do_any = .false. diff --git a/src/parameterizations/vertical/MOM_vert_friction.F90 b/src/parameterizations/vertical/MOM_vert_friction.F90 index 741d73250c..27da1262a2 100644 --- a/src/parameterizations/vertical/MOM_vert_friction.F90 +++ b/src/parameterizations/vertical/MOM_vert_friction.F90 @@ -262,10 +262,10 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & h_neglect = G%H_subroundoff Idt = 1.0 / dt - do k=1,nz ; do i=Isq,Ieq ; Ray(i,k) = 0.0 ; enddo ; enddo - ! Update the zonal velocity component using a modification of a standard ! tridagonal solver. +!$OMP parallel do default(shared) private(do_i,surface_stress,zDS,stress,h_a,hfr, & +!$OMP Ray,b_denom_1,b1,d1,c1) do j=G%jsc,G%jec do I=Isq,Ieq ; do_i(I) = (G%mask2dCu(I,j) > 0) ; enddo @@ -292,9 +292,13 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & surface_stress(I) = dt_Rho0 * (G%mask2dCu(I,j)*fluxes%taux(I,j)) enddo ; endif ! direct_stress - if (CS%Channel_drag) then ; do k=1,nz ; do I=Isq,Ieq - Ray(I,k) = visc%Ray_u(I,j,k) - enddo ; enddo ; endif + if (CS%Channel_drag) then + do k=1,nz ; do I=Isq,Ieq + Ray(I,k) = visc%Ray_u(I,j,k) + enddo ; enddo ; + else + do k=1,nz ; do i=Isq,Ieq ; Ray(i,k) = 0.0 ; enddo ; enddo + endif do I=Isq,Ieq ; if (do_i(I)) then b_denom_1 = CS%h_u(I,j,1) + dt_m_to_H * (Ray(I,1) + CS%a_u(I,j,1)) @@ -333,6 +337,8 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & enddo ! end u-component j loop ! Now work on the meridional velocity component. +!$OMP parallel do default(shared) private(do_i,surface_stress,zDS,stress,h_a,hfr, & +!$OMP Ray,b_denom_1,b1,d1,c1) do J=Jsq,Jeq do i=is,ie ; do_i(i) = (G%mask2dCv(i,J) > 0) ; enddo @@ -359,9 +365,15 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & surface_stress(i) = dt_Rho0 * (G%mask2dCv(i,J)*fluxes%tauy(i,J)) enddo ; endif ! direct_stress - if (CS%Channel_drag) then ; do k=1,nz ; do i=is,ie - Ray(i,k) = visc%Ray_v(i,J,k) - enddo ; enddo ; endif + if (CS%Channel_drag) then + do k=1,nz ; do i=is,ie + Ray(i,k) = visc%Ray_v(i,J,k) + enddo ; enddo + else + do k=1,nz ; do i=is,ie + Ray(i,k) = 0.0 + enddo ; enddo + endif do i=is,ie ; if (do_i(i)) then b_denom_1 = CS%h_v(i,J,1) + dt_m_to_H * (Ray(i,1) + CS%a_v(i,J,1)) @@ -472,15 +484,20 @@ subroutine vertvisc_remnant(visc, visc_rem_u, visc_rem_v, dt, G, CS) dt_m_to_H = dt*G%m_to_H - do k=1,nz ; do i=Isq,Ieq ; Ray(i,k) = 0.0 ; enddo ; enddo - ! Find the zonal viscous using a modification of a standard tridagonal solver. +!$OMP parallel do default(shared) private(do_i,Ray,b_denom_1,b1,d1,c1) do j=G%jsc,G%jec do I=Isq,Ieq ; do_i(I) = (G%mask2dCu(I,j) > 0) ; enddo - if (CS%Channel_drag) then ; do k=1,nz ; do I=Isq,Ieq - Ray(I,k) = visc%Ray_u(I,j,k) - enddo ; enddo ; endif + if (CS%Channel_drag) then + do k=1,nz ; do I=Isq,Ieq + Ray(I,k) = visc%Ray_u(I,j,k) + enddo ; enddo + else + do k = 1,nz; do i=isq,ieq + Ray(i,k) = 0.0 + enddo; enddo + endif do I=Isq,Ieq ; if (do_i(I)) then b_denom_1 = CS%h_u(I,j,1) + dt_m_to_H * (Ray(I,1) + CS%a_u(I,j,1)) @@ -497,17 +514,25 @@ subroutine vertvisc_remnant(visc, visc_rem_u, visc_rem_v, dt, G, CS) endif ; enddo ; enddo do k=nz-1,1,-1 ; do I=Isq,Ieq ; if (do_i(I)) then visc_rem_u(I,j,k) = visc_rem_u(I,j,k) + c1(I,k+1)*visc_rem_u(I,j,k+1) - endif ; enddo ; enddo ! i and k loops + endif ; enddo ; enddo ! i and k loops + enddo ! end u-component j loop ! Now find the meridional viscous using a modification. +!$OMP parallel do default(shared) private(do_i,Ray,b_denom_1,b1,d1,c1) do J=Jsq,Jeq do i=is,ie ; do_i(i) = (G%mask2dCv(i,J) > 0) ; enddo - if (CS%Channel_drag) then ; do k=1,nz ; do i=is,ie - Ray(i,k) = visc%Ray_v(i,J,k) - enddo ; enddo ; endif + if (CS%Channel_drag) then + do k=1,nz ; do I=Is,Ie + Ray(I,k) = visc%Ray_v(I,j,k) + enddo ; enddo + else + do k = 1,nz; do i=is,ie + Ray(i,k) = 0.0 + enddo; enddo + endif do i=is,ie ; if (do_i(i)) then b_denom_1 = CS%h_v(i,J,1) + dt_m_to_H * (Ray(i,1) + CS%a_v(i,J,1)) @@ -527,7 +552,6 @@ subroutine vertvisc_remnant(visc, visc_rem_u, visc_rem_v, dt, G, CS) endif ; enddo ; enddo ! i and k loops enddo ! end of v-component J loop - if (CS%debug) then call uchksum(visc_rem_u,"visc_rem_u",G,haloshift=0) call vchksum(visc_rem_v,"visc_rem_v",G,haloshift=0) @@ -589,8 +613,9 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) Ztop_min, & ! The deeper of the two adjacent surface heights, in H. Dmin, & ! The shallower of the two adjacent bottom depths converted to ! thickness units, in m or kg m-2. - zh ! An estimate of the interface's distance from the bottom + zh, & ! An estimate of the interface's distance from the bottom ! based on harmonic mean thicknesses, in m or kg m-2. + h_ml ! The mixed layer depth, in m or kg m-2. real, allocatable, dimension(:,:) :: hML_u, hML_v real :: zcol(SZI_(G)) ! The height of an interface at h-points, in m or kg m-2. real :: botfn ! A function which goes from 1 at the bottom to 0 much more @@ -631,6 +656,7 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) allocate(CS%a1_shelf_v(G%isd:G%ied,G%JsdB:G%JedB)) ; CS%a1_shelf_v(:,:)=0.0 endif +!$OMP parallel do default(private) shared(G,CS,visc,Isq,ieq,nz,u,h,fluxes) do j=G%Jsc,G%Jec do I=Isq,Ieq ; do_i(I) = (G%mask2dCu(I,j) > 0) ; enddo @@ -683,7 +709,10 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) enddo ! k loop endif - call find_coupling_coef(a, hvel, do_i, work_on_u=.true.) + call find_coupling_coef(a, hvel, do_i, h_harm, bbl_thick, kv_bbl, z_i, h_ml, dt, j, G, CS, visc, fluxes, work_on_u=.true.) + if (allocated(hML_u)) then + do i=is,ie ; if (do_i(i)) then ; hML_u(I,j) = h_ml(I) ; endif ; enddo + endif do_any_shelf = .false. if (associated(fluxes%frac_shelf_u)) then do I=Isq,Ieq @@ -693,7 +722,8 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) enddo if (do_any_shelf) then if (CS%harmonic_visc) then - call find_coupling_coef(a_shelf, hvel, do_i_shelf, work_on_u=.true., shelf=.true.) + call find_coupling_coef(a_shelf, hvel, do_i_shelf, h_harm, bbl_thick, kv_bbl, z_i, h_ml, dt, j, & + G, CS, visc, fluxes, work_on_u=.true., shelf=.true.) else ! Find upwind-biased thickness near the surface. ! Perhaps this needs to be done more carefully, via find_eta. do I=Isq,Ieq ; if (do_i_shelf(I)) then @@ -714,7 +744,8 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) endif endif ; enddo enddo - call find_coupling_coef(a_shelf, hvel_shelf, do_i_shelf, work_on_u=.true., shelf=.true.) + call find_coupling_coef(a_shelf, hvel_shelf, do_i_shelf, h_harm, bbl_thick, kv_bbl, z_i, h_ml, dt, j, & + G, CS, visc, fluxes, work_on_u=.true., shelf=.true.) endif do I=Isq,Ieq ; if (do_i_shelf(I)) CS%a1_shelf_u(I,j) = a_shelf(I,1) ; enddo endif @@ -741,6 +772,8 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) enddo + +!$OMP parallel do default(private) shared(G,CS,visc,is,ie,Jsq,Jeq,nz,v,h,fluxes) ! Now work on v-points. do J=Jsq,Jeq do i=is,ie ; do_i(i) = (G%mask2dCv(i,J) > 0) ; enddo @@ -794,7 +827,10 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) endif ; enddo ; enddo ! i & k loops endif - call find_coupling_coef(a, hvel, do_i, work_on_u=.false.) + call find_coupling_coef(a, hvel, do_i, h_harm, bbl_thick, kv_bbl, z_i, h_ml, dt, j, G, CS, visc, fluxes, work_on_u=.false.) + if ( allocated(hML_v)) then + do i=is,ie ; if (do_i(i)) then ; hML_v(i,J) = h_ml(i) ; endif ; enddo + endif do_any_shelf = .false. if (associated(fluxes%frac_shelf_v)) then do i=is,ie @@ -804,7 +840,8 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) enddo if (do_any_shelf) then if (CS%harmonic_visc) then - call find_coupling_coef(a_shelf, hvel, do_i_shelf, work_on_u=.false., shelf=.true.) + call find_coupling_coef(a_shelf, hvel, do_i_shelf, h_harm, bbl_thick, kv_bbl, z_i, h_ml, dt, j, & + G, CS, visc, fluxes, work_on_u=.false., shelf=.true.) else ! Find upwind-biased thickness near the surface. ! Perhaps this needs to be done more carefully, via find_eta. do i=is,ie ; if (do_i_shelf(i)) then @@ -825,7 +862,8 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) endif endif ; enddo enddo - call find_coupling_coef(a_shelf, hvel_shelf, do_i_shelf, work_on_u=.false., shelf=.true.) + call find_coupling_coef(a_shelf, hvel_shelf, do_i_shelf, h_harm, bbl_thick, kv_bbl, z_i, h_ml, dt, j, & + G, CS, visc, fluxes, work_on_u=.false., shelf=.true.) endif do i=is,ie ; if (do_i_shelf(i)) CS%a1_shelf_v(i,J) = a_shelf(i,1) ; enddo endif @@ -852,6 +890,7 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) enddo ! end of v-point j loop + if (CS%debug) then call uchksum(CS%h_u,"vertvisc_coef h_u",G,haloshift=0) call vchksum(CS%h_v,"vertvisc_coef h_v",G,haloshift=0) @@ -872,15 +911,26 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) if (allocated(hML_u)) deallocate(hML_u) if (allocated(hML_v)) deallocate(hML_v) - contains +end subroutine vertvisc_coef - subroutine find_coupling_coef(a, hvel, do_i, work_on_u, shelf) +subroutine find_coupling_coef(a, hvel, do_i, h_harm, bbl_thick, kv_bbl, z_i, h_ml, & + dt, j, G, CS, visc, fluxes, work_on_u, shelf) ! This subroutine calculates the 'coupling coefficient' (a[k]) at the ! interfaces. If BOTTOMDRAGLAW is defined, the minimum of Hbbl and half the ! adjacent layer thicknesses are used to calculate a[k] near the bottom. real, dimension(NIMEMB_,NK_INTERFACE_), intent(out) :: a real, dimension(NIMEMB_,NKMEM_), intent(in) :: hvel logical, dimension(NIMEMB_), intent(in) :: do_i + real, dimension(NIMEMB_,NKMEM_), intent(in) :: h_harm + real, dimension(NIMEMB_), intent(in) :: bbl_thick, kv_bbl + real, dimension(NIMEMB_,NK_INTERFACE_), intent(in) :: z_i + real, dimension(NIMEMB_), intent(out) :: h_ml + integer, intent(in) :: j + real, intent(in) :: dt + type(ocean_grid_type), intent(in) :: G + type(vertvisc_CS), pointer :: CS + type(vertvisc_type), intent(in) :: visc + type(forcing), intent(in) :: fluxes logical, intent(in) :: work_on_u logical, optional, intent(in) :: shelf ! Arguments: a - The coupling coefficent across interfaces, in m/s. Intent out. @@ -893,7 +943,7 @@ subroutine find_coupling_coef(a, hvel, do_i, work_on_u, shelf) real, dimension(SZIB_(G)) :: & u_star, & ! ustar at a velocity point, in m s-1. absf, & ! The average of the neighboring absolute values of f, in s-1. - h_ml, & ! The mixed layer depth, in m or kg m-2. +! h_ml, & ! The mixed layer depth, in m or kg m-2. nk_visc, & ! The (real) interface index of the base of mixed layer. z_t, & ! The distance from the top, sometimes normalized ! by Hmix, in m or nondimensional. @@ -915,9 +965,12 @@ subroutine find_coupling_coef(a, hvel, do_i, work_on_u, shelf) real :: a_top logical :: do_shelf integer :: i, k, is, ie, max_nk + integer :: nz + real :: botfn if (work_on_u) then ; is = G%IscB ; ie = G%IecB else ; is = G%isc ; ie = G%iec ; endif + nz = G%ke h_neglect = G%H_subroundoff dz_neglect = G%H_subroundoff*G%H_to_m @@ -1049,11 +1102,6 @@ subroutine find_coupling_coef(a, hvel, do_i, work_on_u, shelf) h_ml(i) = h_ml(i) + (nk_visc(i) - k) * hvel(i,k) endif endif ; enddo ; enddo - if (work_on_u .and. allocated(hML_u)) then - do i=is,ie ; if (do_i(i)) then ; hML_u(I,j) = h_ml(I) ; endif ; enddo - elseif (.not.work_on_u .and. allocated(hML_v)) then - do i=is,ie ; if (do_i(i)) then ; hML_v(i,J) = h_ml(i) ; endif ; enddo - endif do K=2,max_nk ; do i=is,ie ; if (do_i(i)) then ; if (k < nk_visc(i)) then ! Set the viscosity at the interfaces. @@ -1071,9 +1119,9 @@ subroutine find_coupling_coef(a, hvel, do_i, work_on_u, shelf) endif ; endif ; enddo ; enddo endif - end subroutine find_coupling_coef +end subroutine find_coupling_coef + -end subroutine vertvisc_coef subroutine vertvisc_limit_vel(u, v, h, ADp, CDp, fluxes, visc, dt, G, CS) ! Within this subroutine, velocity components which exceed a threshold for @@ -1104,7 +1152,7 @@ subroutine vertvisc_limit_vel(u, v, h, ADp, CDp, fluxes, visc, dt, G, CS) if (len_trim(CS%u_trunc_file) > 0) then if (.not.CS%CFL_based_trunc) vel_report(:) = maxvel - +!$OMP parallel do default(private) shared(js,je,Isq,Ieq,nz,CS,G,fluxes,u,h) do j=js,je trunc_any = .false. do I=Isq,Ieq ; dowrite(I) = .false. ; enddo @@ -1154,6 +1202,7 @@ subroutine vertvisc_limit_vel(u, v, h, ADp, CDp, fluxes, visc, dt, G, CS) enddo ! j-loop else if (CS%CFL_based_trunc) then +!$OMP parallel do default(shared) do k=1,nz ; do j=js,je ; do I=Isq,Ieq if ((u(I,j,k) * (dt * G%dy_Cu(I,j))) * G%IareaT(i+1,j) < -CS%CFL_trunc) then u(I,j,k) = (-0.9*CS%CFL_trunc) * (G%areaT(i+1,j) / (dt * G%dy_Cu(I,j))) @@ -1164,6 +1213,7 @@ subroutine vertvisc_limit_vel(u, v, h, ADp, CDp, fluxes, visc, dt, G, CS) endif enddo ; enddo ; enddo else +!$OMP parallel do default(shared) do k=1,nz ; do j=js,je ; do I=Isq,Ieq ; if (abs(u(I,j,k)) > maxvel) then u(I,j,k) = SIGN(truncvel,u(I,j,k)) if (h(i,j,k) + h(i+1,j,k) > 6.0*G%Angstrom) CS%ntrunc = CS%ntrunc + 1 @@ -1173,7 +1223,7 @@ subroutine vertvisc_limit_vel(u, v, h, ADp, CDp, fluxes, visc, dt, G, CS) if (len_trim(CS%v_trunc_file) > 0) then if (.not.CS%CFL_based_trunc) vel_report(:) = maxvel - +!$OMP parallel do default(private) shared(Jsq,Jeq,is,ie,nz,CS,G,fluxes,v,h) do J=Jsq,Jeq trunc_any = .false. do i=is,ie ; dowrite(i) = .false. ; enddo @@ -1223,6 +1273,7 @@ subroutine vertvisc_limit_vel(u, v, h, ADp, CDp, fluxes, visc, dt, G, CS) enddo ! J-loop else if (CS%CFL_based_trunc) then +!$OMP parallel do default(shared) do k=1,nz ; do J=Jsq,Jeq ; do i=is,ie if ((v(i,J,k) * (dt * G%dx_Cv(i,J))) * G%IareaT(i,j+1) < -CS%CFL_trunc) then v(i,J,k) = (-0.9*CS%CFL_trunc) * (G%areaT(i,j+1) / (dt * G%dx_Cv(i,J))) @@ -1233,6 +1284,7 @@ subroutine vertvisc_limit_vel(u, v, h, ADp, CDp, fluxes, visc, dt, G, CS) endif enddo ; enddo ; enddo else +!$OMP parallel do default(shared) do k=1,nz ; do J=Jsq,Jeq ; do i=is,ie ; if (abs(v(i,J,k)) > maxvel) then v(i,J,k) = SIGN(truncvel,v(i,J,k)) if (h(i,j,k) + h(i,j+1,k) > 6.0*G%Angstrom) CS%ntrunc = CS%ntrunc + 1 From e4a3be8732148d16de1b5d59f27f0f39065b1500 Mon Sep 17 00:00:00 2001 From: Zhi Liang Date: Wed, 5 Mar 2014 10:01:02 -0500 Subject: [PATCH 2/5] change nthreads to ocean_nthreads to be consistent with coupler_nml --- .doxygen | 2 +- config_src/solo_driver/MOM_driver.F90 | 6 +- examples/.datasets | 2 +- .../AM2_MOM6i_1deg/INPUT/.datasets | 1 + .../INPUT/BetaDistributionTable.txt | 1 + .../AM2_MOM6i_1deg/INPUT/README | 1 + .../AM2_MOM6i_1deg/INPUT/README_atmos2004 | 1 + .../AM2_MOM6i_1deg/INPUT/aerosol.optical.dat | 1 + .../AM2_MOM6i_1deg/INPUT/annual_mean_ozone | 1 + .../AM2_MOM6i_1deg/INPUT/ch4_gblannualdata | 1 + .../AM2_MOM6i_1deg/INPUT/co2_gblannualdata | 1 + .../AM2_MOM6i_1deg/INPUT/coupler.res | 1 + .../AM2_MOM6i_1deg/INPUT/cover_type_field | 1 + .../AM2_MOM6i_1deg/INPUT/eftsw4str | 1 + .../INPUT/esf_sw_input_data_n38b18 | 1 + .../INPUT/esf_sw_input_data_n72b25 | 1 + .../AM2_MOM6i_1deg/INPUT/f113_gblannualdata | 1 + .../AM2_MOM6i_1deg/INPUT/f11_gblannualdata | 1 + .../AM2_MOM6i_1deg/INPUT/f12_gblannualdata | 1 + .../AM2_MOM6i_1deg/INPUT/f22_gblannualdata | 1 + .../AM2_MOM6i_1deg/INPUT/ground_type_field | 1 + .../INPUT/groundwater_residence_time_field | 1 + .../INPUT/h2o12001400_hi00_data | 1 + .../INPUT/h2o12001400_hi92_data | 1 + .../AM2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata | 1 + .../AM2_MOM6i_1deg/INPUT/h2ockd2.1_data | 1 + .../AM2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata | 1 + .../INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 | 1 + .../INPUT/h2ocoeff_ckd_speccombwidebds_hi00 | 1 + .../INPUT/h2ocoeff_ckd_speccombwidebds_hi92 | 1 + .../INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 | 1 + .../INPUT/h2ocoeff_rsb_speccombwidebds_hi00 | 1 + .../INPUT/h2ocoeff_rsb_speccombwidebds_hi92 | 1 + .../AM2_MOM6i_1deg/INPUT/id1ch4n2 | 1 + .../AM2_MOM6i_1deg/INPUT/id1o3 | 1 + .../AM2_MOM6i_1deg/INPUT/id2h2obdckd2p1 | 1 + .../AM2_MOM6i_1deg/INPUT/id2h2obdfull | 1 + .../AM2_MOM6i_1deg/INPUT/id2h2orbts | 1 + .../INPUT/lean_solar_spectral_data.dat | 1 + .../AM2_MOM6i_1deg/INPUT/n2o_gblannualdata | 1 + .../AM2_MOM6i_1deg/INPUT/o39001200_hi00_data | 1 + .../AM2_MOM6i_1deg/INPUT/o39001200_hi92_data | 1 + .../INPUT/radfn_5-2995_100-490k | 1 + .../AM2_MOM6i_1deg/INPUT/randelo3data | 1 + .../INPUT/river_destination_field | 1 + .../AM2_MOM6i_1deg/INPUT/seasonal_ozone | 1 + .../AM2_MOM6i_1deg/INPUT/stdlvls | 1 + .../AM2_MOM6i_1deg/INPUT/swstratendramadata | 1 + .../AM2_MOM6i_1deg/MOM_input | 633 ++++++ .../AM2_MOM6i_1deg/MOM_memory.h | 45 + .../AM2_MOM6i_1deg/MOM_override | 1 + .../AM2_MOM6i_1deg/MOM_parameter_doc.all | 1655 ++++++++++++++++ .../AM2_MOM6i_1deg/MOM_parameter_doc.short | 617 ++++++ .../AM2_MOM6i_1deg/data_table | 7 + .../AM2_MOM6i_1deg/diag_table | 657 +++++++ .../AM2_MOM6i_1deg/field_table | 31 + .../AM2_MOM6i_1deg/input.nml | 717 +++++++ .../AM2_MOM6i_1deg/static_input.nml | 685 +++++++ .../AM2_MOM6i_1deg/timestats.gnu | 7 + .../AM2_MOM6i_1deg/timestats.intel | 7 + .../AM2_MOM6i_1deg/timestats.pgi | 7 + .../AM2_SIS2B_MOM6i_1deg/MOM_input | 639 ++++++ .../AM2_SIS2B_MOM6i_1deg/MOM_memory.h | 45 + .../AM2_SIS2B_MOM6i_1deg/MOM_override | 1 + .../MOM_parameter_doc.all | 1655 ++++++++++++++++ .../MOM_parameter_doc.short | 617 ++++++ .../AM2_SIS2B_MOM6i_1deg/SIS_input | 88 + .../AM2_SIS2B_MOM6i_1deg/SIS_override | 1 + .../SIS_parameter_doc.all | 239 +++ .../SIS_parameter_doc.short | 59 + .../AM2_SIS2B_MOM6i_1deg/data_table | 7 + .../AM2_SIS2B_MOM6i_1deg/diag_table | 657 +++++++ .../AM2_SIS2B_MOM6i_1deg/field_table | 31 + .../AM2_SIS2B_MOM6i_1deg/input.nml | 703 +++++++ .../AM2_SIS2B_MOM6i_1deg/static_input.nml | 670 +++++++ .../AM2_SIS2B_MOM6i_1deg/timestats.intel | 7 + .../AM2_SIS2B_MOM6i_1deg/timestats.pgi | 7 + .../AM2_SIS2_MOM6i_1deg/INPUT/.datasets | 1 + .../INPUT/BetaDistributionTable.txt | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/README | 1 + .../INPUT/README_atmos2004 | 1 + .../INPUT/aerosol.optical.dat | 1 + .../INPUT/annual_mean_ozone | 1 + .../INPUT/ch4_gblannualdata | 1 + .../INPUT/co2_gblannualdata | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/coupler.res | 1 + .../INPUT/cover_type_field | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/eftsw4str | 1 + .../INPUT/esf_sw_input_data_n38b18 | 1 + .../INPUT/esf_sw_input_data_n72b25 | 1 + .../INPUT/f113_gblannualdata | 1 + .../INPUT/f11_gblannualdata | 1 + .../INPUT/f12_gblannualdata | 1 + .../INPUT/f22_gblannualdata | 1 + .../INPUT/ground_type_field | 1 + .../INPUT/groundwater_residence_time_field | 1 + .../INPUT/h2o12001400_hi00_data | 1 + .../INPUT/h2o12001400_hi92_data | 1 + .../INPUT/h2ockd2.1_corrdata | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_data | 1 + .../INPUT/h2ockd2.4_corrdata | 1 + .../INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 | 1 + .../INPUT/h2ocoeff_ckd_speccombwidebds_hi00 | 1 + .../INPUT/h2ocoeff_ckd_speccombwidebds_hi92 | 1 + .../INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 | 1 + .../INPUT/h2ocoeff_rsb_speccombwidebds_hi00 | 1 + .../INPUT/h2ocoeff_rsb_speccombwidebds_hi92 | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/id1ch4n2 | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/id1o3 | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdckd2p1 | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdfull | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/id2h2orbts | 1 + .../INPUT/lean_solar_spectral_data.dat | 1 + .../INPUT/n2o_gblannualdata | 1 + .../INPUT/o39001200_hi00_data | 1 + .../INPUT/o39001200_hi92_data | 1 + .../INPUT/radfn_5-2995_100-490k | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/randelo3data | 1 + .../INPUT/river_destination_field | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/seasonal_ozone | 1 + .../AM2_SIS2_MOM6i_1deg/INPUT/stdlvls | 1 + .../INPUT/swstratendramadata | 1 + .../AM2_SIS2_MOM6i_1deg/MOM_input | 639 ++++++ .../AM2_SIS2_MOM6i_1deg/MOM_memory.h | 45 + .../AM2_SIS2_MOM6i_1deg/MOM_override | 1 + .../AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.all | 1655 ++++++++++++++++ .../MOM_parameter_doc.short | 618 ++++++ .../AM2_SIS2_MOM6i_1deg/SIS_input | 93 + .../AM2_SIS2_MOM6i_1deg/SIS_override | 1 + .../AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.all | 251 +++ .../SIS_parameter_doc.short | 70 + .../AM2_SIS2_MOM6i_1deg/data_table | 7 + .../AM2_SIS2_MOM6i_1deg/diag_table | 657 +++++++ .../AM2_SIS2_MOM6i_1deg/field_table | 31 + .../AM2_SIS2_MOM6i_1deg/input.nml | 703 +++++++ .../AM2_SIS2_MOM6i_1deg/static_input.nml | 670 +++++++ .../AM2_SIS2_MOM6i_1deg/timestats.intel | 7 + .../AM2_SIS2_MOM6i_1deg/timestats.pgi | 7 + .../SIS2_bergs_cgrid/INPUT/.datasets | 1 + .../ocean_SIS2/SIS2_bergs_cgrid/INPUT/README | 1 + .../SIS2_bergs_cgrid/MOM_channel_list | 20 + .../ocean_SIS2/SIS2_bergs_cgrid/MOM_input | 661 +++++++ .../ocean_SIS2/SIS2_bergs_cgrid/MOM_override | 1 + .../SIS2_bergs_cgrid/MOM_parameter_doc.all | 1708 +++++++++++++++++ .../SIS2_bergs_cgrid/MOM_parameter_doc.short | 647 +++++++ .../SIS2_bergs_cgrid/SIS.available_diags | 267 +++ .../ocean_SIS2/SIS2_bergs_cgrid/SIS_input | 99 + .../ocean_SIS2/SIS2_bergs_cgrid/SIS_override | 1 + .../SIS2_bergs_cgrid/SIS_parameter_doc.all | 251 +++ .../SIS2_bergs_cgrid/SIS_parameter_doc.short | 75 + .../ocean_SIS2/SIS2_bergs_cgrid/data_table | 49 + .../ocean_SIS2/SIS2_bergs_cgrid/diag_table | 360 ++++ .../ocean_SIS2/SIS2_bergs_cgrid/field_table | 71 + .../ocean_SIS2/SIS2_bergs_cgrid/input.nml | 87 + .../SIS2_bergs_cgrid/static_input.nml | 50 + .../ocean_SIS2/SIS2_bergs_cgrid/timestats.gnu | 7 + .../SIS2_bergs_cgrid/timestats.intel | 7 + .../ocean_SIS2/SIS2_bergs_cgrid/timestats.pgi | 7 + .../ocean_SIS2/SIS2_cgrid/INPUT/.datasets | 1 + examples/ocean_SIS2/SIS2_cgrid/INPUT/README | 1 + .../ocean_SIS2/SIS2_cgrid/MOM_channel_list | 20 + examples/ocean_SIS2/SIS2_cgrid/MOM_input | 661 +++++++ examples/ocean_SIS2/SIS2_cgrid/MOM_memory.h | 51 + examples/ocean_SIS2/SIS2_cgrid/MOM_override | 1 + .../SIS2_cgrid/MOM_parameter_doc.all | 1708 +++++++++++++++++ .../SIS2_cgrid/MOM_parameter_doc.short | 647 +++++++ .../ocean_SIS2/SIS2_cgrid/SIS.available_diags | 267 +++ examples/ocean_SIS2/SIS2_cgrid/SIS_input | 93 + examples/ocean_SIS2/SIS2_cgrid/SIS_override | 1 + .../SIS2_cgrid/SIS_parameter_doc.all | 251 +++ .../SIS2_cgrid/SIS_parameter_doc.short | 70 + examples/ocean_SIS2/SIS2_cgrid/data_table | 49 + examples/ocean_SIS2/SIS2_cgrid/diag_table | 367 ++++ examples/ocean_SIS2/SIS2_cgrid/field_table | 71 + examples/ocean_SIS2/SIS2_cgrid/input.nml | 72 + .../ocean_SIS2/SIS2_cgrid/static_input.nml | 36 + examples/ocean_SIS2/SIS2_cgrid/timestats.gnu | 7 + .../ocean_SIS2/SIS2_cgrid/timestats.intel | 7 + examples/ocean_SIS2/SIS2_cgrid/timestats.pgi | 7 + src/framework/MOM_coms.F90 | 4 +- src/parameterizations/vertical/MOM_KPP.F90 | 60 +- 181 files changed, 24857 insertions(+), 15 deletions(-) create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/.datasets create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/BetaDistributionTable.txt create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README_atmos2004 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/aerosol.optical.dat create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/annual_mean_ozone create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ch4_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/co2_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/coupler.res create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/cover_type_field create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/eftsw4str create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f113_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f11_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f12_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f22_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ground_type_field create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/groundwater_residence_time_field create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi00_data create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi92_data create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_data create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1ch4n2 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1o3 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdckd2p1 create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdfull create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2orbts create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/n2o_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi00_data create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi92_data create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/randelo3data create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/river_destination_field create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/seasonal_ozone create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/stdlvls create mode 120000 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/swstratendramadata create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_input create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_memory.h create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_override create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.all create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.short create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/data_table create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/diag_table create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/field_table create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/input.nml create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/static_input.nml create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.gnu create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.intel create mode 100644 examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.pgi create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_input create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_memory.h create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_override create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.all create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.short create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_input create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_override create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.all create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.short create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/data_table create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/diag_table create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/field_table create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/input.nml create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/static_input.nml create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.intel create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.pgi create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/.datasets create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/BetaDistributionTable.txt create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README_atmos2004 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/aerosol.optical.dat create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/annual_mean_ozone create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ch4_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/co2_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/coupler.res create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/cover_type_field create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/eftsw4str create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f113_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f11_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f12_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f22_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ground_type_field create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/groundwater_residence_time_field create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi00_data create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi92_data create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_data create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1ch4n2 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1o3 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdckd2p1 create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdfull create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2orbts create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/n2o_gblannualdata create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi00_data create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi92_data create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/randelo3data create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/river_destination_field create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/seasonal_ozone create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/stdlvls create mode 120000 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/swstratendramadata create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_input create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_memory.h create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_override create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.all create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.short create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_input create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_override create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.all create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.short create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/data_table create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/diag_table create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/field_table create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/input.nml create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/static_input.nml create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.intel create mode 100644 examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.pgi create mode 120000 examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/.datasets create mode 120000 examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/README create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_channel_list create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_input create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_override create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.all create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.short create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/SIS.available_diags create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_input create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_override create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.all create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.short create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/data_table create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/diag_table create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/field_table create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/input.nml create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/static_input.nml create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.gnu create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.intel create mode 100644 examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.pgi create mode 120000 examples/ocean_SIS2/SIS2_cgrid/INPUT/.datasets create mode 120000 examples/ocean_SIS2/SIS2_cgrid/INPUT/README create mode 100644 examples/ocean_SIS2/SIS2_cgrid/MOM_channel_list create mode 100644 examples/ocean_SIS2/SIS2_cgrid/MOM_input create mode 100644 examples/ocean_SIS2/SIS2_cgrid/MOM_memory.h create mode 100644 examples/ocean_SIS2/SIS2_cgrid/MOM_override create mode 100644 examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.all create mode 100644 examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.short create mode 100644 examples/ocean_SIS2/SIS2_cgrid/SIS.available_diags create mode 100644 examples/ocean_SIS2/SIS2_cgrid/SIS_input create mode 100644 examples/ocean_SIS2/SIS2_cgrid/SIS_override create mode 100644 examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.all create mode 100644 examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.short create mode 100644 examples/ocean_SIS2/SIS2_cgrid/data_table create mode 100644 examples/ocean_SIS2/SIS2_cgrid/diag_table create mode 100644 examples/ocean_SIS2/SIS2_cgrid/field_table create mode 100644 examples/ocean_SIS2/SIS2_cgrid/input.nml create mode 100644 examples/ocean_SIS2/SIS2_cgrid/static_input.nml create mode 100644 examples/ocean_SIS2/SIS2_cgrid/timestats.gnu create mode 100644 examples/ocean_SIS2/SIS2_cgrid/timestats.intel create mode 100644 examples/ocean_SIS2/SIS2_cgrid/timestats.pgi diff --git a/.doxygen b/.doxygen index 113403c60d..2ef8f144ad 100644 --- a/.doxygen +++ b/.doxygen @@ -1416,7 +1416,7 @@ FORMULA_TRANSPARENT = YES # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -USE_MATHJAX = NO +USE_MATHJAX = YES # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: diff --git a/config_src/solo_driver/MOM_driver.F90 b/config_src/solo_driver/MOM_driver.F90 index cfad521a4c..0f8beb581c 100644 --- a/config_src/solo_driver/MOM_driver.F90 +++ b/config_src/solo_driver/MOM_driver.F90 @@ -144,7 +144,7 @@ program MOM_main type(time_type) :: energysavedays ! The interval between writing the energies ! and other integral quantities of the run. - integer :: nthreads = 1 ! Number of Openmp threads + integer :: ocean_nthreads = 1 ! Number of Openmp threads integer :: date_init(6)=0 ! The start date of the whole simulation. integer :: date(6)=-1 ! Possibly the start date of this run segment. integer :: years=0, months=0, days=0 ! These may determine the segment run @@ -174,7 +174,7 @@ program MOM_main #include "version_variable.h" character(len=40) :: mod = "MOM_main (MOM_driver)" ! This module's name. - namelist /ocean_solo_nml/ date_init, calendar, months, days, hours, minutes, seconds, nthreads + namelist /ocean_solo_nml/ date_init, calendar, months, days, hours, minutes, seconds, ocean_nthreads !####################################################################### @@ -224,7 +224,7 @@ program MOM_main call set_calendar_type(calendar_type) #ifndef NOT_SET_AFFINITY -!$ call omp_set_num_threads(nthreads) +!$ call omp_set_num_threads(ocean_nthreads) !$ base_cpu = get_cpu_affinity() !$OMP PARALLEL !$ call set_cpu_affinity( base_cpu + omp_get_thread_num() ) diff --git a/examples/.datasets b/examples/.datasets index 8b926ea130..26703e8acb 120000 --- a/examples/.datasets +++ b/examples/.datasets @@ -1 +1 @@ -/lustre/fs/pdata/gfdl_O/datasets \ No newline at end of file +/lustre/f1/pdata/gfdl_O/datasets \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/.datasets b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/.datasets new file mode 120000 index 0000000000..086a13aa04 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/.datasets @@ -0,0 +1 @@ +../../../.datasets \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/BetaDistributionTable.txt b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/BetaDistributionTable.txt new file mode 120000 index 0000000000..e9c59bdbb2 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/BetaDistributionTable.txt @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/BetaDistributionTable.txt \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README new file mode 120000 index 0000000000..5c85f37f2b --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/mosaic.unpacked/README \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README_atmos2004 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README_atmos2004 new file mode 120000 index 0000000000..31c0da7b3a --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/README_atmos2004 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/README_atmos2004 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/aerosol.optical.dat b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/aerosol.optical.dat new file mode 120000 index 0000000000..18855f2a0d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/aerosol.optical.dat @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/aerosol.optical.dat \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/annual_mean_ozone b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/annual_mean_ozone new file mode 120000 index 0000000000..93740aaba7 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/annual_mean_ozone @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/annual_mean_ozone \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ch4_gblannualdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ch4_gblannualdata new file mode 120000 index 0000000000..c894870a04 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ch4_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/ch4_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/co2_gblannualdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/co2_gblannualdata new file mode 120000 index 0000000000..c7ed97ac9f --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/co2_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/co2_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/coupler.res b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/coupler.res new file mode 120000 index 0000000000..aea75f93ae --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/coupler.res @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/RESTART/CM2G.initCond_2011.12.16.unpacked/coupler.res \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/cover_type_field b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/cover_type_field new file mode 120000 index 0000000000..eed4daa13f --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/cover_type_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/cover_type_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/eftsw4str b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/eftsw4str new file mode 120000 index 0000000000..a148577762 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/eftsw4str @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/eftsw4str \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 new file mode 120000 index 0000000000..8cd3ca1194 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/esf_sw_input_data_n38b18 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 new file mode 120000 index 0000000000..85d156e031 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/esf_sw_input_data_n72b25 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f113_gblannualdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f113_gblannualdata new file mode 120000 index 0000000000..2d5416430a --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f113_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f113_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f11_gblannualdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f11_gblannualdata new file mode 120000 index 0000000000..f664d39185 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f11_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f11_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f12_gblannualdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f12_gblannualdata new file mode 120000 index 0000000000..18ca43a476 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f12_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f12_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f22_gblannualdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f22_gblannualdata new file mode 120000 index 0000000000..f8981d2549 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/f22_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f22_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ground_type_field b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ground_type_field new file mode 120000 index 0000000000..d35693046c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/ground_type_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/ground_type_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/groundwater_residence_time_field b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/groundwater_residence_time_field new file mode 120000 index 0000000000..ade40b9165 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/groundwater_residence_time_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/groundwater_residence_time_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi00_data b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi00_data new file mode 120000 index 0000000000..1896652afb --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi00_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2o12001400_hi00_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi92_data b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi92_data new file mode 120000 index 0000000000..b4b1f338a0 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2o12001400_hi92_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2o12001400_hi92_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata new file mode 120000 index 0000000000..0d12259ea4 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ockd2.1_corrdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_data b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_data new file mode 120000 index 0000000000..f9f05e8f63 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.1_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ockd2.1_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata new file mode 120000 index 0000000000..385b13b77d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ockd2.4_corrdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 new file mode 120000 index 0000000000..36c8d97cba --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 new file mode 120000 index 0000000000..b9ccc818fd --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 new file mode 120000 index 0000000000..d6ee762faf --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 new file mode 120000 index 0000000000..5a0c77e1e5 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 new file mode 120000 index 0000000000..ccadc74a94 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 new file mode 120000 index 0000000000..2a1e17b23d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1ch4n2 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1ch4n2 new file mode 120000 index 0000000000..588274a96f --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1ch4n2 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id1ch4n2 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1o3 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1o3 new file mode 120000 index 0000000000..083a14aa9b --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id1o3 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id1o3 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdckd2p1 b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdckd2p1 new file mode 120000 index 0000000000..1447d7d443 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdckd2p1 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id2h2obdckd2p1 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdfull b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdfull new file mode 120000 index 0000000000..6601d06213 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2obdfull @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id2h2obdfull \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2orbts b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2orbts new file mode 120000 index 0000000000..1c4db818d1 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/id2h2orbts @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id2h2orbts \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat new file mode 120000 index 0000000000..f196591148 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/lean_solar_spectral_data.dat \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/n2o_gblannualdata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/n2o_gblannualdata new file mode 120000 index 0000000000..def81ea7da --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/n2o_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/n2o_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi00_data b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi00_data new file mode 120000 index 0000000000..53a07fe2f6 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi00_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/o39001200_hi00_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi92_data b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi92_data new file mode 120000 index 0000000000..44405896c8 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/o39001200_hi92_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/o39001200_hi92_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k new file mode 120000 index 0000000000..13995a588c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/radfn_5-2995_100-490k \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/randelo3data b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/randelo3data new file mode 120000 index 0000000000..f0c9d42071 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/randelo3data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/randelo3data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/river_destination_field b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/river_destination_field new file mode 120000 index 0000000000..f661f020fe --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/river_destination_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/river_destination_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/seasonal_ozone b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/seasonal_ozone new file mode 120000 index 0000000000..031bb8ceb9 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/seasonal_ozone @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/seasonal_ozone \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/stdlvls b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/stdlvls new file mode 120000 index 0000000000..ca0059e88c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/stdlvls @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/stdlvls \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/swstratendramadata b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/swstratendramadata new file mode 120000 index 0000000000..c77a2ce945 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/INPUT/swstratendramadata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/swstratendramadata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_input b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_input new file mode 100644 index 0000000000..09508141a5 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_input @@ -0,0 +1,633 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in AM2_MOM6i_1deg. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_kappa_shear === +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "B" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_memory.h b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_memory.h new file mode 100644 index 0000000000..83d8a57b35 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_memory.h @@ -0,0 +1,45 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This include file determines the compile-time settings for the * +!* for the Modular Ocean Model (MOM), versions 6 and later. * +!********+*********+*********+*********+*********+*********+*********+* + +! Specify the numerical domain. +#define NIGLOBAL_ 360 +#define NJGLOBAL_ 210 + ! NIGLOBAL_ and NJGLOBAL_ are the number of thickness + ! grid points in the zonal and meridional + ! directions of the physical domain. +#define NK_ 63 + ! The number of layers. + +#define STATIC_MEMORY_ + ! If STATIC_MEMORY_ is defined, the principle + ! variables will have sizes that are statically + ! determined at compile time. Otherwise the + ! sizes are not determined until run time. The + ! STATIC option is substantially faster, but + ! does not allow the PE count to be changed at + ! run time. + +#define NIPROC_ 10 + ! NIPROC_ is the number of processors in the + ! x-direction. +#define NJPROC_ 6 + ! NJPROC_ is the number of processors in the + ! y-direction. + +#define MAX_FIELDS_ 80 + ! The maximum permitted number (each) of + ! restart variables, time derivatives, etc. + ! This is mostly used for the size of pointer + ! arrays, so it should be set generously. + +#define NIHALO_ 4 +#define NJHALO_ 4 + ! NIHALO_ and NJHALO_ are the sizes of the + ! memory halos on each side. +#define BTHALO_ 10 + ! BTHALO_ is the size of the memory halos in + ! the barotropic solver. + +#include diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_override b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_override new file mode 100644 index 0000000000..5d67420dc4 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_override @@ -0,0 +1 @@ +! Blank file in which we can put "overrides" for parameters diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.all b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.all new file mode 100644 index 0000000000..c2a60b29c6 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.all @@ -0,0 +1,1655 @@ +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +LAYOUT = 0, 0 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to + ! calculate accelerations and the mass for conservation + ! properties, or with BOUSSINSEQ false to convert some + ! parameters from vertical units of m to kg m-2. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first + ! in parts of the code that use directionally split + ! updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minumum layer thickness, usually one-Angstrom. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths + ! at velocity points. Otherwise the effects of of + ! topography are entirely determined from thickness points. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +AVAILABLE_DIAGS_FILE = "available_diags.000030" ! default = "available_diags.000030" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +SPLIT = True ! [Boolean] default = True + ! Use the split time stepping if true. +USE_LEGACY_SPLIT = False ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state + ! variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and + ! salinity with an equation of state. If USE_EOS is + ! true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, + ! including buoyancy forcing and mass gain or loss, + ! before stepping the dynamics forward. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is + ! true. This assumes that KD = KDML = 0.0 and that + ! there is no buoyancy forcing, but makes the model + ! faster by eliminating subroutine calls. +BULKMIXEDLAYER = True ! [Boolean] default = True + ! If true, use a Kraus-Turner-like bulk mixed layer + ! with transitional buffer layers. Layers 1 through + ! NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. + ! The default is the same setting as ENABLE_THERMODYNAMICS. +USE_REGRIDDING = False ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for + ! debugging truncations. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure + ! over the coupling time step, using the specified value + ! at the end of the step. +SSH_SMOOTHING_PASSES = 0.0 ! [nondim] default = 0.0 + ! The number of Laplacian smoothing passes to apply to the + ! the sea surface height that is reported to the sea-ice. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate + ! density. (1 Pa = 1e4 dbar, so 2e7 is commonly used.) + ! This is only used if USE_EOS and ENABLE_THERMODYNAMICS + ! are true. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state + ! should be used. Currently, the valid choices are + ! "LINEAR", "UNESCO", and "WRIGHT". + ! This is only used if USE_EOS is true. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code + ! code for the integrals of density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be + ! used for the freezing point. Currently, the valid + ! choices are "LINEAR", "MILLERO_78". +TFREEZE_S0_P0 = 0.0 ! [deg C] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the freezing potential temperature at + ! S=0, P=0. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure. +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +LARGE_FILE_SUPPORT = True ! [Boolean] default = True + ! If true, use the file-size limits with NetCDF large + ! file support (4Gb), otherwise the limit is 2Gb. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a + ! preprocessor macro, use the MOM_generic_tracer packages. + +! === module ideal_age_example === +DO_IDEAL_AGE = True ! [Boolean] default = True + ! If true, use an ideal age tracer that is set to 0 age + ! in the mixed layer and ages at unit rate in the interior. +DO_IDEAL_VINTAGE = False ! [Boolean] default = False + ! If true, use an ideal vintage tracer that is set to an + ! exponentially increasing value in the mixed layer and + ! is conserved thereafter. +DO_IDEAL_AGE_DATED = False ! [Boolean] default = False + ! If true, use an ideal age tracer that is everywhere 0 + ! before IDEAL_AGE_DATED_START_YEAR, but the behaves like + ! the standard ideal age tracer - i.e. is set to 0 age in + ! the mixed layer and ages at unit rate in the interior. +AGE_IC_FILE = "" ! default = "" + ! The file in which the age-tracer initial values can be + ! found, or an empty string for internal initialization. +AGE_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, AGE_IC_FILE is in depth space, not layer space +MASK_MASSLESS_TRACERS = False ! [Boolean] default = False + ! If true, the tracers are masked out in massless layer. + ! This can be a problem with time-averages. +TRACERS_MAY_REINIT = False ! [Boolean] default = False + ! If true, tracers may go through the initialization code + ! if they are not found in the restart files. Otherwise + ! it is a fatal error if the tracers are not found in the + ! restart files of a restarted run. + +! === module MOM_OCMIP2_CFC === +CFC_IC_FILE = "" ! default = "" + ! The file in which the CFC initial values can be + ! found, or an empty string for internal initialization. +CFC_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, CFC_IC_FILE is in depth space, not layer space +CFC11_A1 = 3501.8 ! [nondim] default = 3501.8 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A2 = -210.31 ! [degC-1] default = -210.31 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A3 = 6.1851 ! [degC-2] default = 6.1851 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A4 = -0.07513 ! [degC-3] default = -0.07513 + ! A coefficient in the Schmidt number of CFC11. +CFC12_A1 = 3845.4 ! [nondim] default = 3845.4 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A2 = -228.95 ! [degC-1] default = -228.95 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A3 = 6.1908 ! [degC-2] default = 6.1908 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A4 = -0.06743 ! [degC-3] default = -0.06743 + ! A coefficient in the Schmidt number of CFC12. +CFC11_D1 = -229.9261 ! [none] default = -229.9261 + ! A coefficient in the solubility of CFC11. +CFC11_D2 = 319.6552 ! [hK] default = 319.6552 + ! A coefficient in the solubility of CFC11. +CFC11_D3 = 119.4471 ! [none] default = 119.4471 + ! A coefficient in the solubility of CFC11. +CFC11_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC11. +CFC11_E1 = -0.142382 ! [PSU-1] default = -0.142382 + ! A coefficient in the solubility of CFC11. +CFC11_E2 = 0.091459 ! [PSU-1 hK-1] default = 0.091459 + ! A coefficient in the solubility of CFC11. +CFC11_E3 = -0.0157274 ! [PSU-1 hK-2] default = -0.0157274 + ! A coefficient in the solubility of CFC11. +CFC12_D1 = -218.0971 ! [none] default = -218.0971 + ! A coefficient in the solubility of CFC12. +CFC12_D2 = 298.9702 ! [hK] default = 298.9702 + ! A coefficient in the solubility of CFC12. +CFC12_D3 = 113.8049 ! [none] default = 113.8049 + ! A coefficient in the solubility of CFC12. +CFC12_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC12. +CFC12_E1 = -0.143566 ! [PSU-1] default = -0.143566 + ! A coefficient in the solubility of CFC12. +CFC12_E2 = 0.091015 ! [PSU-1 hK-1] default = 0.091015 + ! A coefficient in the solubility of CFC12. +CFC12_E3 = -0.0153924 ! [PSU-1 hK-2] default = -0.0153924 + ! A coefficient in the solubility of CFC12. +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. +COORD_VAR = "Layer" ! default = "Layer" + ! The variable in COORD_FILE that is to be used for the + ! coordinate densities. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +TOPO_FILE = "topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative. +APPLY_OBC_U_FLATHER_EAST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the eastern + ! side of the global domain +APPLY_OBC_U_FLATHER_WEST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the western + ! side of the global domain +APPLY_OBC_V_FLATHER_NORTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the northern + ! side of the global domain +APPLY_OBC_V_FLATHER_SOUTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the southern + ! side of the global domain +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ROTATION = "2omegasinlat" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +USE_OLD_HINTERP = True ! [Boolean] default = True + ! If true, use older version of hinterp, + ! in order to reproduce siena answers.Recommended setting is False +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = False ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated + ! initial conditions. +Z_INIT_ALE_REMAPPING = False ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAPPING_SCHEME = "PPM_IH4" ! default = "PPM_IH4" + ! The remapping scheme to use if using Z_INIT_ALE_REMAPPING + ! is True. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +FIT_TO_TARGET_DENSITY_IC = True ! [Boolean] default = True + ! If true, all the interior layers are adjusted to + ! their target densities using mostly temperature + ! This approach can be problematic, particularly in the + ! high latitudes. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities + ! are specified for a new run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! paremters TORUS_U and TORUS_V). + ! USER - call a user modified routine. +CONVERT_THICKNESS_UNITS = False ! [Boolean] default = False + ! If true, convert the thickness initial conditions from + ! units of m to kg m-2 or vice versa, depending on whether + ! BOUSSINESQ is defined. This does not apply if a restart + ! file is read. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge + ! tsunamis when a large surface pressure is applied. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. + ! The exact location and properties of those sponges are + ! specified via SPONGE_CONFIG. +APPLY_OBC_U = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! u-points, with the configuration controlled by OBC_CONFIG +APPLY_OBC_V = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! v-points, with the configuration controlled by OBC_CONFIG + +! === module MOM_MEKE === +MEKE_DAMPING = 0.0 ! [s-1] default = 0.0 + ! The local depth-indepented MEKE dissipation rate. +MEKE_CD_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scaling for the bottom drag applied to MEKE. This + ! should be less than 1 to account for the surface + ! intensification of MEKE and the fraction of MEKE that + ! may be temporarily stored as potential energy. +MEKE_GMCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_FRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into + ! MEKE. If MEKE_FRCOEFF is negative, this conversion + ! is not used or calculated. +MEKE_BGSRC = 0.0 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KH = -1.0 ! [m2 s-1] default = -1.0 + ! A background lateral diffusivity of MEKE, or a + ! Use a negative value to not apply lateral diffusion to MEKE. +MEKE_DTSCALE = 1.0 ! [nondim] default = 1.0 + ! A scaling factor to accelerate the time evolution of MEKE. +MEKE_KHCOEFF = -1.0 ! [nondim] default = -1.0 + ! A scaling factor which is combined with the square root + ! of MEKE times the grid-cell area to give MEKE%Kh, or a + ! negative value not to calculate MEKE%Kh. + ! This factor must be >0 for MEKE to contribute to the + ! thickness/tracer mixing in the rest of the model. +MEKE_USCALE = 1.0 ! [m s-1] default = 1.0 + ! The background velocity that is combined with MEKE to + ! calculate the bottom drag. +CDRAG = 0.003 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of + ! the velocity field to the bottom stress. +MEKE_VISC_DRAG = False ! [Boolean] default = False + ! If true, use the vertvisc_type to calculate the bottom + ! drag acting on MEKE. +MEKE_KHTH_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_RD_MAX_SCALE = True ! [nondim] default = True + ! If true, the maximum length scale used by MEKE is + ! the deformation radius. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled + ! away when the first baroclinic deformation radius is + ! well resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +KH_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if + ! RESOLN_SCALED_... is true, as + ! F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). +KH_RES_FN_POWER = 2 ! [nondim] default = 2 + ! The power of dx/Ld in the resolution function. Any + ! positive integer may be used, although even integers + ! are more efficient to calculate. Setting this greater + ! than 100 results in a step-function being used. +TIDES = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing. +BE = 0.6 ! [nondim] default = 0.6 + ! If SPLIT is true, BE determines the relative weighting + ! of a 2nd-order Runga-Kutta baroclinic time stepping + ! scheme (0.5) and a backward Euler scheme (1) that is + ! used for the Coriolis and inertial terms. BE may be + ! from 0.5 to 1, but instability may occur near 0.5. + ! BE is also applicable if SPLIT is false and USE_RK2 + ! is true. +BEGW = 0.0 ! [nondim] default = 0.0 + ! If SPILT is true, BEGW is a number from 0 to 1 that + ! controls the extent to which the treatment of gravity + ! waves is forward-backward (0) or simulated backward + ! Euler (1). 0 is almost always used. + ! If SPLIT is false and USE_RK2 is true, BEGW can be + ! between 0 and 0.5 to damp gravity waves. +SPLIT_BOTTOM_STRESS = False ! [Boolean] default = False + ! If true, provide the bottom stress calculated by the + ! vertical viscosity to the barotropic solver. +BT_USE_LAYER_FLUXES = True ! [Boolean] default = True + ! If true, use the summed layered fluxes plus an + ! adjustment due to the change in the barotropic velocity + ! in the barotropic continuity equation. +CONTINUITY_SCHEME = "PPM" ! default = "PPM" + ! CONTINUITY_SCHEME selects the discretization for the + ! continuity solver. The only valid value currently is: + ! PPM - use a positive-definite (or monotonic) + ! piecewise parabolic reconstruction solver. +MONOTONIC_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order + ! (arithmetic mean) interpolation of the edge values. + ! This may give better PV conservation propterties. While + ! it formally reduces the accuracy of the continuity + ! solver itself in the strongly advective limit, it does + ! not reduce the overall order of accuracy of the dynamic + ! core. +UPWIND_1ST_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind + ! continuity solver. This scheme is highly diffusive + ! but may be useful for debugging or in single-column + ! mode where its minimal stensil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 1.0E-06 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a + ! relative CFL change up to 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the + ! tracer cell areas when estimating CFL numbers. The + ! default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity + ! based criterion and only stop if the iteration is + ! better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for + ! corrections in strongly viscous columns. +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise + ! free slip boundary conditions are assumed. The + ! implementation of the free slip BCs on a C-grid is much + ! cleaner than the no slip BCs. The use of free slip BCs + ! is strongly encouraged, and no slip BCs are not used with + ! the biharmonic viscosity. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration + ! due to the kinetic energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV + ! advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated + ! with a finite volume form that analytically integrates + ! the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as + ! described in Adcroft et al., O. Mod. (2008). +MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +BIHARMONIC = True ! [Boolean] default = True + ! If true, se a biharmonic horizontal viscosity. + ! BIHARMONIC may be used with LAPLACIAN. +KH = 0.0 ! [m2 s-1] default = 0.0 + ! The background Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +SMAGORINSKY_KH = False ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable. +BETTER_BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable with a better bounding than just BOUND_KH. +AH = 0.0 ! [m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable. +BETTER_BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable with a better bounding than just BOUND_AH. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. +BOUND_CORIOLIS_BIHARM = True ! [Boolean] default = True + ! If true use a viscosity that increases with the square + ! of the velocity shears, so that the resulting viscous + ! drag is of comparable magnitude to the Coriolis terms + ! when the velocity differences between adjacent grid + ! points is 0.5*BOUND_CORIOLIS_VEL. The default is the + ! value of BOUND_CORIOLIS (or false). +BOUND_CORIOLIS_VEL = 6.0 ! [m s-1] default = 6.0 + ! The velocity scale at which BOUND_CORIOLIS_BIHARM causes + ! the biharmonic drag to have comparable magnitude to the + ! Coriolis acceleration. The default is set by MAXVEL. +HORVISC_BOUND_COEF = 0.8 ! [nondim] default = 0.8 + ! The nondimensional coefficient of the ratio of the + ! viscosity bounds to the theoretical maximum for + ! stability without considering other terms. + +! === module MOM_vert_friction === +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag + ! law of the form c_drag*|u|*u. The velocity magnitude + ! may be an assumed value or it may be based on the + ! actual velocity in the bottommost HBBL, depending on + ! LINEAR_DRAG. +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the + ! topmost HMIX_STRESS of fluid (like in HYCOM), and KVML + ! may be set to a very small value. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +HARMONIC_VISC = False ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for + ! calculating the vertical viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an + ! absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity + ! components to be truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations + ! to be reported; the default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0 + ! The time over which the CFL trunction value is ramped + ! up at the beginning of the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when + ! ramping up CFL_TRUNC. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of colums of truncations that any PE + ! will write out during a run. + +! === module MOM_set_visc === +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag + ! law is cdrag*DRAG_BG_VEL*u. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivitives for temperature or salt + ! based on double-diffusive paramaterization from MOM4/KPP. +PRANDTL_TURB = 0.0 ! [nondim] default = 0.0 + ! The turbulent Prandtl number applied to shear + ! instability. +BULK_RI_ML_VISC = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. By default, + ! BULK_RI_ML_VISC = BULK_RI_ML or 0. +TKE_DECAY_VISC = 10.0 ! [nondim] default = 10.0 + ! TKE_DECAY_VISC relates the vertical rate of decay of + ! the TKE available for mechanical entrainment to the + ! natural Ekman depth for use in calculating the dynamic + ! mixed layer viscosity. By default, + ! TKE_DECAY_VISC = TKE_DECAY or 0. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_USE_EOS = False ! [Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-top viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are + ! averaged for the drag law under an ice shelf. By + ! default this is the same as HBBL +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the top boundary layer. +SMAG_CONST_CHANNEL = 0.15 ! [nondim] default = 0.15 + ! The nondimensional Laplacian Smagorinsky constant used + ! in calculating the channel drag if it is enabled. The + ! default is to use the same value as SMAG_LAP_CONST if + ! it is defined, or 0.15 if it is not. The value used is + ! also 0.15 if the specified value is negative. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +GRADUAL_BT_ICS = False ! [Boolean] default = False + ! If true, adjust the initial conditions for the + ! barotropic solver to the values from the layered + ! solution over a whole timestep instead of instantly. + ! This is a decent approximation to the inclusion of + ! sum(u dh_dt) while also correcting for truncation errors. +BT_USE_WIDE_HALOS = True ! [Boolean] default = True + ! If true, use wide halos and march in during the + ! barotropic time stepping for efficiency. +BTHALO = 0 ! default = 0 + ! The minimum halo size for the barotropic solver. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +USE_BT_CONT_TYPE = True ! [Boolean] default = True + ! If true, use a structure with elements that describe + ! effective face areas from the summed continuity solver + ! as a function the barotropic flow in coupling between + ! the barotropic and baroclinic flow. This is only used + ! if SPLIT is true. +NONLINEAR_BT_CONTINUITY = False ! [Boolean] default = False + ! If true, use nonlinear transports in the barotropic + ! continuity equation. This does not apply if + ! USE_BT_CONT_TYPE is true. +BT_MASS_SOURCE_LIMIT = 0.0 ! [nondim] default = 0.0 + ! The fraction of the initial depth of the ocean that can + ! be added to or removed from the bartropic solution + ! within a thermodynamic time step. By default this is 0 + ! for no correction. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +DYNAMIC_SURFACE_PRESSURE = False ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +SADOURNY = True ! [Boolean] default = True + ! If true, the Coriolis terms are discretized with the + ! Sadourny (1975) energy conserving scheme, otherwise + ! the Arakawa & Hsu scheme is used. If the internal + ! deformation radius is not resolved, the Sadourny scheme + ! should probably be used. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +CLIP_BT_VELOCITY = False ! [Boolean] default = False + ! If true, limit any velocity components that exceed + ! MAXVEL. This should only be used as a desperate + ! debugging measure. +MAXCFL_BT_CONT = 0.1 ! [nondim] default = 0.1 + ! The maximum permitted CFL number associated with the + ! barotropic accelerations from the summed velocities + ! times the time-derivatives of thicknesses. +DT_BT_FILTER = -0.25 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +G_BT_EXTRA = 0.0 ! [nondim] default = 0.0 + ! A nondimensional factor by which gtot is enhanced. +SSH_EXTRA = 10.0 ! [m] default = 10.0 + ! An estimate of how much higher SSH might get, for use + ! in calculating the safe external wave speed. The + ! default is the minimum of 10 m or 5% of MAXIMUM_DEPTH. +DEBUG_BT = False ! [Boolean] default = False + ! If true, write out verbose debugging data within the + ! barotropic time-stepping loop. The data volume can be + ! quite large if this is true. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height + ! diffusivities to horizonally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is + ! not reliable and is scaled away. This is used with + ! FULL_THICKNESSDIFFUSE. +KD_SMOOTH = 1.0E-06 ! [not defined] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate + ! more sensible values of T & S into thin layers. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_MIX_FIRST = 0.0 ! [nondim] default = 0.0 + ! The fraction of the mixed layer mixing that is applied + ! before interior diapycnal mixing. 0 by default. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances as separate set of + ! equations for the internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers + ! are kept consistent with their target densities. + ! Otherwise the properties of massless layers evolve + ! diffusively to match massive neighboring layers. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at + ! the bottom into the interior as though a diffusivity of + ! KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to + ! tracers, especially in massless layers near the bottom. + ! The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will + ! allow for explicitly specified bottom fluxes. The + ! entrainment at the bottom is at least sqrt(Kd_BBL_tr*dt) + ! over the same distance. +FLUX_RI_MAX = 0.2 ! [not defined] default = 0.2 + ! The flux Richardson number where the stratification is + ! large enough that N2 > omega2. The full expression for + ! the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_EFOLD_COEFF = 0.2 ! [nondim] default = 0.2 + ! A coefficient that is used to scale the penetration + ! depth for turbulence below the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_KD_MAX = 0.001 ! [m2 s-1] default = 0.001 + ! The maximum diapycnal diffusivity due to turbulence + ! radiated from the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_APPLY_TKE_DECAY = True ! [Boolean] default = True + ! If true, apply the same exponential decay to ML_rad as + ! is applied to the other surface sources of TKE in the + ! mixed layer code. This is only used if ML_RADIATION is true. +MSTAR = 0.3 ! [units=nondim] default = 0.3 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by + ! bottom drag drives BBL diffusion. This is only + ! used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 0.0 ! [m] default = 0.0 + ! The maximum decay scale for the BBL diffusion, or 0 + ! to allow the mixing to penetrate as far as + ! stratification and rotation permit. The default is 0. + ! This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh + ! profile of background diapycnal diffusivity with depth. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +HENYEY_N0_2OMEGA = 20.0 ! [nondim] default = 20.0 + ! The ratio of the typical Buoyancy frequency to twice + ! the Earth's rotation period, used with the Henyey + ! scaling from the mixing. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, + ! like CM2.1/CM2M. There is no physical justification + ! for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +KD_MAX = -1.0 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added + ! everywhere without any filtering or scaling. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "STLAURENT_02" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +LEE_WAVE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an lee wave driven dissipation scheme to + ! drive diapycnal mixing, along the lines of Nikurashin + ! (2010) and using the St. Laurent et al. (2002) + ! and Simmons et al. (2004) vertical profile +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower + ! bound of Kd (a floor). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +MU_ITIDES = 0.2 ! [nondim] default = 0.2 + ! A dimensionless turbulent mixing efficiency used with + ! INT_TIDE_DISSIPATION, often 0.2. +GAMMA_ITIDES = 0.3333 ! [nondim] default = 0.3333 + ! The fraction of the internal tidal energy that is + ! dissipated locally with INT_TIDE_DISSIPATION. + ! THIS NAME COULD BE BETTER. +MIN_ZBOT_ITIDES = 0.0 ! [m] default = 0.0 + ! Turn off internal tidal dissipation when the total + ! ocean depth is less than this value. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +UTIDE = 0.0 ! [m s-1] default = 0.0 + ! The constant tidal amplitude used with INT_TIDE_DISSIPATION. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tideamp.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. + ! Jackson et al find values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the + ! density and shear profiles before solving for the + ! diffusivities. Defaults to value of KD. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the + ! Richardson number in the kappa source term in the + ! Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to + ! stratification (i.e. proportional to N*tke). + ! The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. + ! proportional to |S|*tke). The values found by Jackson + ! et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the + ! kappa equation. The values found by Jackson et al. are + ! in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the + ! buoyancy and shear scales in the diffusivity equation, + ! Set this to 0 (the default) to eliminate the shear scale. + ! This is only used if USE_JACKSON_PARAM is true. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. + ! Iteration stops when changes between subsequent + ! iterations are smaller than this everywhere in a + ! column. The peak diffusivities usually converge most + ! rapidly, and have much smaller errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration + ! of the kappa equation. TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring + ! massive layers in this calculation. The default is + ! true and I can think of no good reason why it should + ! be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! [nondim] default = 13 + ! The maximum number of iterations that may be used to + ! estimate the time-averaged diffusivity. +DEBUG_KAPPA_SHEAR = False ! [Boolean] default = False + ! If true, write debugging data for the kappa-shear code. + ! Caution: this option is _very_ verbose and should only + ! be used in single-column mode! +KAPPA_SHEAR_MERGE_ML = True ! [Boolean] default = True + ! If true, combine the mixed layers together before + ! solving the kappa-shear equations. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +USE_KPP = False ! [Boolean] default = False + ! If true, turns on the [CVmix] KPP scheme of Large et al., 1984, + ! to calculate diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +APPLY_NONLOCAL_TRANSPORT = True ! [Boolean] default = True + ! If True, applies the non-local transport to heat and scalars. + ! If False, calculates the non-local transport and tendencies but + ! purely for diagnostic purposes. +RI_CRIT = 0.3 ! [nondim] default = 0.3 + ! Critical bulk Richardson number used to define depth of the + ! Oceab Boundary Layer (OBL). +VON_KARMAN = 0.4 ! [nondim] default = 0.4 + ! von Karman constant. +INTERP_TYPE = "quadratic" ! default = "quadratic" + ! Type of interpolation to use to determine the OBL depth. + ! Allowed types are: linear, quadratic, cubic. +COMPUTE_EKMAN = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the Ekman depth. +COMPUTE_MONIN_OBUKHOV = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the + ! Monin-Obukhov depth. +CS = 98.96 ! [nondim] default = 98.96 + ! Parameter for computing velocity scale function. +DEEP_OBL_OFFSET = 0.0 ! [m] default = 0.0 + ! If non-zero, the distance above the bottom to which the OBL is clipped + ! if it would otherwise reach the bottom. The smaller of this and 0.1D is used. +CORRECT_SURFACE_LAYER_AVERAGE = False ! [Boolean] default = False + ! If true, applies a correction step to the averaging of surface layer + ! properties. +FIRST_GUESS_SURFACE_LAYER_DEPTH = 0.0 ! [m] default = 0.0 + ! The first guess at the depth of the surface layer used for averaging + ! the surface layer properties. If =0, the top model level properties + ! will be used for the surface layer. If CORRECT_SURFACE_LAYER_AVERAGE=True, a + ! subsequent correction is applied. +NLT_SHAPE = "CVMIX" ! default = "CVMIX" + ! The shape of the nonlocal transport (or redistribution of surface + ! forcina. Allowed values are: + ! CVMIX - Uses the profile from CVmix + ! LINEAR - A linear profile, 1-sigma + ! PARABOLIC - A paroblic profile, (1-sigma)^2 + ! CUBIC - A cubic profile, (1-sigma)^2(1+2*sigma) + ! CUBIC_LMD - The original KPP profile +KPP_ZERO_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, sets both the diffusivity and viscosity from KPP to zero; for testing. +KPP_IS_ADDITIVE = False ! [Boolean] default = False + ! If true, adds KPP diffusivity to the existing diffusivity. If false, replaces exisiting diffusivity with KPP diffusivity wherever the latter is non-zero. +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +USE_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the diffusive convection scheme that + ! increases diapycnal diffusivities at statically unstable + ! interfaces. Relevant parameters are contained in the + ! CONVECTION% parameter block. +CONVECTION% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +KD_CONV = 1.0 ! [m2/s] default = 1.0 + ! DIffusivity used in statically unstable regions of column. +%CONVECTION + +! === module MOM_entrain_diffusive === +CORRECT_DENSITY = True ! [Boolean] default = True + ! If true, and USE_EOS is true, the layer densities are + ! restored toward their target values by the diapycnal + ! mixing, as described in Hallberg (MWR, 2000). +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_THICKNESS = 0.1 ! [m] default = 0.1 + ! The thickness over which to apply geothermal heating. +GEOTHERMAL_DRHO_DT_INPLACE = -0.01 ! [kg m-3 K-1] default = -0.01 + ! The value of drho_dT above which geothermal heating + ! simply heats water in place instead of moving it between + ! isopycnal layers. This must be negative. +GEOTHERMAL_VARNAME = "geo_heat" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === module MOM_mixed_layer === +NSTAR = 0.15 ! [nondim] default = 0.15 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +CONV_DECAY = 0.5 ! [nondim] default = 0.5 + ! CONV_DECAY relates the vertical rate of decay of the + ! convectively released TKE available for penetrating + ! entrainment to the natural Ekman length. +NSTAR2 = 0.15 ! [nondim] default = 0.15 + ! The portion of any potential energy released by + ! convective adjustment that is available to drive + ! entrainment at the base of mixed layer. By default + ! NSTAR2=NSTAR. +BULK_RI_CONVECTIVE = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which convectively released mean + ! kinetic energy is converted to turbulent kinetic + ! energy. By default BULK_RI_CONVECTIVE=BULK_RI_ML. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +ALLOWED_DETRAIN_TEMP_CHG = 0.5 ! [K] default = 0.5 + ! The amount by which temperature is allowed to exceed + ! previous values during detrainment. +ALLOWED_DETRAIN_SALT_CHG = 0.1 ! [PSU] default = 0.1 + ! The amount by which salinity is allowed to exceed + ! previous values during detrainment. +ML_DT_DS_WEIGHT = 6.0 ! [degC PSU-1] default = 6.0 + ! When forced to extrapolate T & S to match the layer + ! densities, this factor (in deg C / PSU) is combined + ! with the derivatives of density with T & S to determine + ! what direction is orthogonal to density contours. It + ! should be a typical value of (dR/dS) / (dR/dT) in + ! oceanic profiles. +BUFFER_LAYER_EXTRAP_LIMIT = -1.0 ! [nondim] default = -1.0 + ! A limit on the density range over which extrapolation + ! can occur when detraining from the buffer layers, + ! relative to the density range within the mixed and + ! buffer layers, when the detrainment is going into the + ! lightest interior layer, nondimensional, or a negative + ! value not to apply this limit. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +RESOLVE_EKMAN = False ! [Boolean] default = False + ! If true, the NKML>1 layers in the mixed layer are + ! chosen to optimally represent the impact of the Ekman + ! transport on the mixed layer TKE budget. Otherwise, + ! the sublayers are distributed uniformly through the + ! mixed layer. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*froz_runoff. +LIMIT_BUFFER_DET_DH_SFC = 0.5 ! [nondim] default = 0.5 + ! The fractional limit in the change between grid points + ! of the surface region (mixed & buffer layer) thickness. +LIMIT_BUFFER_DET_DH_BATHY = 0.2 ! [nondim] default = 0.2 + ! The fraction of the total depth by which the thickness + ! of the surface region (mixed & buffer layer) is allowed + ! to change between grid points. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. +REGULARIZE_SURFACE_DETRAIN = True ! [Boolean] default = True + ! If true, allow the buffer layers to detrain into the + ! interior as a part of the restructuring when + ! REGULARIZE_SURFACE_LAYERS is true. +REG_SFC_DEFICIT_TOLERANCE = 0.5 ! [nondim] default = 0.5 + ! The value of the relative thickness deficit at which + ! to start modifying the layer structure when + ! REGULARIZE_SURFACE_LAYERS is true. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll + ! concentrations are translated into opacities. Currently + ! valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation + ! that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is + ! 10 m-1 - a value for muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PLM" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between + ! along isopycnal mxiing of tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use 1 iteration. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +RESTART_CONTROL = 1 ! default = 1 + ! An integer whose bits encode which restart files are + ! written. Add 2 (bit 1) for a time-stamped file, and odd + ! (bit 0) for a non-time-stamped file. A restart file + ! will be saved at the end of the run segment for any + ! non-negative value. +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit for ENERGYSAVEDAYS. +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "B" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = False ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = False ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +ICE_SALT_CONCENTRATION = 0.005 ! [kg/kg] default = 0.005 + ! The assumed sea-ice salinity needed to reverse engineer the + ! melt flux (or ice-ocean fresh-water flux). +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "B" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_CONST = 0.02 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. +USE_RIGID_SEA_ICE = False ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout + ! when the energy files are written. +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the + ! model will be stopped if there is more energy than + ! this. If zero or negative, this is set to 10*MAXVEL^2. +ENERGYFILE = "timestats" ! default = "timestats" + ! The file to use to write the energies and globally + ! summed diagnostics. +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or + ! create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the + ! entries in the depth-list file. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in MOM_parameter_doc.short . diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.short b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.short new file mode 100644 index 0000000000..f28816730c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/MOM_parameter_doc.short @@ -0,0 +1,617 @@ +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "B" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/data_table b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/data_table new file mode 100644 index 0000000000..a9dbbea3c8 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/data_table @@ -0,0 +1,7 @@ + +"ICE", "sic_obs", "SIC","./INPUT/sst_ice_clim.nc",.false.,0.01 +"ICE", "sit_obs", "SIT","./INPUT/sst_ice_clim.nc",.false.,1.06 +"ICE", "sst_obs", "SST","./INPUT/sst_ice_clim.nc",.false.,1 +"ATM", "cfc_11_flux_pcair_atm","CFC_11","INPUT/cfc.bc.nc",.false., 1 +"ATM", "cfc_12_flux_pcair_atm","CFC_12","INPUT/cfc.bc.nc",.false., 1 + diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/diag_table b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/diag_table new file mode 100644 index 0000000000..21fbfd813e --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/diag_table @@ -0,0 +1,657 @@ +CM2.2 +1900 1 1 0 0 0 +#output files +"atmos_daily", 24, "hours", 1, "days", "time", +"atmos_8xdaily", 3, "hours", 1, "days", "time", +"atmos_8xdaily_instant", 3, "hours", 1, "days", "time", +"atmos_month", 1, "months", 1, "days", "time", +"atmos_month_aer",1, "months", 1, "days", "time", +"atmos_scalar", 1, "months", 1, "days", "time", +"ice_daily", 24, "hours", 1, "days", "time", +"ice_month", 1, "months", 1, "days", "time", +"land_daily", 24, "hours", 1, "days", "time", +"land_instant", 1, "months", 1, "days", "time", +"land_month", 1, "months", 1, "days", "time", +"ocean_month", 1, "months", 1, "days", "time" +"ocean_month_z", 1, "months", 1, "days", "time" +#"ocean_scalar", 1, "months", 1, "days", "time" +# +#output variables +# +#================== +# OCEAN DIAGNOSTICS +#================== +# +# Prognostic Ocean fields: +#========================= +"ocean_model","u","u","ocean_month","all",.true.,"none",2 +"ocean_model","v","v","ocean_month","all",.true.,"none",2 +"ocean_model","h","h","ocean_month","all",.true.,"none",1 +"ocean_model","e","e","ocean_month","all",.true.,"none",2 +"ocean_model","temp","temp","ocean_month","all",.true.,"none",2 +"ocean_model","salt","salt","ocean_month","all",.true.,"none",2 +# +# Auxilary Tracers: +#================== +"ocean_model","vintage","vintage","ocean_month","all",.true.,"none",2 +"ocean_model","age","age","ocean_month","all",.true.,"none",2 +"ocean_model","CFC11","CFC11","ocean_month","all",.true.,"none",2 +"ocean_model","CFC12","CFC12","ocean_month","all",.true.,"none",2 + + +# Z-space fields: +#================== +"ocean_model","u_z","u","ocean_month_z","all",.true.,"none",2 +"ocean_model","v_z","v","ocean_month_z","all",.true.,"none",2 +"ocean_model","temp_z","temp","ocean_month_z","all",.true.,"none",2 +"ocean_model","salt_z","salt","ocean_month_z","all",.true.,"none",2 +"ocean_model","vintage_z","vintage","ocean_month_z","all",.true.,"none",2 +"ocean_model","age_z","age","ocean_month_z","all",.true.,"none",2 +"ocean_model","CFC11_z","CFC11","ocean_month_z","all",.true.,"none",2 +"ocean_model","CFC12_z","CFC12","ocean_month_z","all",.true.,"none",2 +"ocean_model","geolon","geolon","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat","geolat","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolon_u","geolon_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat_u","geolat_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolon_v","geolon_v","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat_v","geolat_v","ocean_month_z","all",.false.,"none",2 +"ocean_model","area_t","area_t","ocean_month_z","all",.false.,"none",2 +"ocean_model","depth_ocean","depth_ocean","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet","wet","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet_u","wet_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet_v","wet_v","ocean_month_z","all",.false.,"none",2 + +# +#=========================== +# Continuity Equation Terms: +#=========================== +"ocean_model","wd","wd","ocean_month","all",.true.,"none",2 +"ocean_model","uh","uh","ocean_month","all",.true.,"none",2 +"ocean_model","vh","vh","ocean_month","all",.true.,"none",2 +"ocean_model","uhGM","uhGM","ocean_month","all",.true.,"none",2 +"ocean_model","vhGM","vhGM","ocean_month","all",.true.,"none",2 +"ocean_model","uhml","uhml","ocean_month","all",.true.,"none",2 +"ocean_model","vhml","vhml","ocean_month","all",.true.,"none",2 +"ocean_model","MLu_restrat_time","MLu_restrat_time","ocean_month","all",.true.,"none",2 +"ocean_model","MLv_restrat_time","MLv_restrat_time","ocean_month","all",.true.,"none",2 +"ocean_model","h_rho","h_rho","ocean_month","all",.true.,"none",2 +"ocean_model","uh_rho","uh_rho","ocean_month","all",.true.,"none",2 +"ocean_model","vh_rho","vh_rho","ocean_month","all",.true.,"none",2 +"ocean_model","uhGM_rho","uhGM_rho","ocean_month","all",.true.,"none",2 +"ocean_model","vhGM_rho","vhGM_rho","ocean_month","all",.true.,"none",2 +"ocean_model","GMwork","GMwork","ocean_month","all",.true.,"none",2 +"ocean_model","FrictWork","FrictWork","ocean_month","all",.true.,"none",2 + +# +# Mixed Layer TKE Budget Terms: +#=========================== +"ocean_model","TKE_wind","TKE_wind","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_RiBulk","TKE_RiBulk","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv","TKE_conv","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_pen_SW","TKE_pen_SW","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_mixing","TKE_mixing","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_mech_decay","TKE_mech_decay","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv_decay","TKE_conv_decay","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv_s2","TKE_conv_s2","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_tidal","TKE_tidal","ocean_month","all",.true.,"none",2 +"ocean_model","h_ML","h_ML","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_effective","Kd_effective","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_itides","Kd_itides","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_Work","Kd_Work","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_ITidal_Work","Kd_Itidal_Work","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_Nikurashin_Work","Kd_Nikurashin_Work","ocean_month","all",.true.,"none",2 +"ocean_model","PE_detrain","PE_detrain","ocean_month","all",.true.,"none",2 +"ocean_model","PE_detrain2","PE_detrain2","ocean_month","all",.true.,"none",2 +"ocean_model","Rayleigh_u","Rayleigh_u","ocean_month","all",.true.,"none",2 +"ocean_model","Rayleigh_v","Rayleigh_v","ocean_month","all",.true.,"none",2 +# +#=========================== +# Tracer Fluxes: +#================== +"ocean_model","T_adx", "T_adx", "ocean_month","all",.true.,"none",2 +"ocean_model","T_ady", "T_ady", "ocean_month","all",.true.,"none",2 +"ocean_model","T_diffx","T_diffx","ocean_month","all",.true.,"none",2 +"ocean_model","T_diffy","T_diffy","ocean_month","all",.true.,"none",2 +"ocean_model","S_adx", "S_adx", "ocean_month","all",.true.,"none",2 +"ocean_model","S_ady", "S_ady", "ocean_month","all",.true.,"none",2 +"ocean_model","S_diffx","S_diffx","ocean_month","all",.true.,"none",2 +"ocean_model","S_diffy","S_diffy","ocean_month","all",.true.,"none",2 + + +# Momentum Balance Terms: +#======================= +#"ocean_model","dudt","dudt","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt","dvdt","ocean_month","all",.true.,"none",2 +#"ocean_model","CAu","CAu","ocean_month","all",.true.,"none",2 +#"ocean_model","CAv","CAv","ocean_month","all",.true.,"none",2 +#"ocean_model","PFu","PFu","ocean_month","all",.true.,"none",2 +#"ocean_model","PFv","PFv","ocean_month","all",.true.,"none",2 +"ocean_model","du_dt_visc","du_dt_visc","ocean_month","all",.true.,"none",2 +"ocean_model","dv_dt_visc","dv_dt_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","diffu","diffu","ocean_month","all",.true.,"none",2 +#"ocean_model","diffv","diffv","ocean_month","all",.true.,"none",2 +#"ocean_model","dudt_dia","dudt_dia","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt_dia","dvdt_dia","ocean_month","all",.true.,"none",2 +# Subterms that should not be added to a closed budget. +#"ocean_model","gKEu","gKEu","ocean_month","all",.true.,"none",2 +#"ocean_model","gKEv","gKEv","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxu","rvxu","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxv","rvxv","ocean_month","all",.true.,"none",2 +"ocean_model","PFu_bc","PFu_bc","ocean_month","all",.true.,"none",2 +"ocean_model","PFv_bc","PFv_bc","ocean_month","all",.true.,"none",2 + +# Barotropic Momentum Balance Terms: +# (only available with split time stepping.) +#=========================================== +"ocean_model","PFuBT","PFuBT","ocean_month","all",.true.,"none",2 +"ocean_model","PFvBT","PFvBT","ocean_month","all",.true.,"none",2 +"ocean_model","CoruBT","CoruBT","ocean_month","all",.true.,"none",2 +"ocean_model","CorvBT","CorvBT","ocean_month","all",.true.,"none",2 +"ocean_model","ubtforce","ubtforce","ocean_month","all",.true.,"none",2 +"ocean_model","vbtforce","vbtforce","ocean_month","all",.true.,"none",2 +"ocean_model","u_accel_bt","u_accel_bt","ocean_month","all",.true.,"none",2 +"ocean_model","v_accel_bt","v_accel_bt","ocean_month","all",.true.,"none",2 +# +# Viscosities and diffusivities: +#=============================== +#"ocean_model","Kd","Kd","ocean_month","all",.true.,"none",2 +#"ocean_model","Ahh","Ahh","ocean_month","all",.true.,"none",2 +#"ocean_model","Ahq","Ahq","ocean_month","all",.true.,"none",2 +#"ocean_model","Khh","Khh","ocean_month","all",.true.,"none",2 +#"ocean_model","Khq","Khq","ocean_month","all",.true.,"none",2 +#"ocean_model","bbl_thick_u","bbl_thick_u","ocean_month","all",.true.,"none",2 +#"ocean_model","kv_bbl_u","kv_bbl_u","ocean_month","all",.true.,"none",2 +#"ocean_model","bbl_thick_v","bbl_thick_v","ocean_month","all",.true.,"none",2 +#"ocean_model","kv_bbl_v","kv_bbl_v","ocean_month","all",.true.,"none",2 +#"ocean_model","av_visc","av_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","au_visc","au_visc","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_u","KHTH_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_v","KHTH_v","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_u","KHTR_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_v","KHTR_v","ocean_month","all",.true.,"none",2 + +# MEKE: +#====== +"ocean_model","MEKE","MEKE","ocean_month","all",.true.,"none",2 +"ocean_model","MEKE_src","MEKE_src","ocean_month","all",.true.,"none",2 +"ocean_model","MEKE_Kh","MEKE_Kh","ocean_month","all",.true.,"none",2 + +# +# Kinetic Energy Balance Terms: +#============================= +#"ocean_model","KE","KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","dKE_dt","dKE_dt","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","PE_to_KE","PE_to_KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_Coradv","KE_Coradv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_adv","KE_adv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_visc","KE_visc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_horvisc","KE_horvisc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_dia","KE_dia","energy_%4yr_%3dy","all",.true.,"none",2 +# +#================== +# Surface Forcing: +#================= +"ocean_model","taux", "taux", "ocean_month","all",.true.,"none",2 +"ocean_model","tauy", "tauy", "ocean_month","all",.true.,"none",2 +"ocean_model","ustar", "ustar", "ocean_month","all",.true.,"none",2 +"ocean_model","PmE", "PmE", "ocean_month","all",.true.,"none",2 +"ocean_model","SW", "SW", "ocean_month","all",.true.,"none",2 +"ocean_model","LwLatSens","LwLatSens","ocean_month","all",.true.,"none",2 +"ocean_model","p_surf", "p_surf", "ocean_month","all",.true.,"none",2 +"ocean_model","salt_flux","salt_flux","ocean_month","all",.true.,"none",2 + +# Static ocean fields: +#===================== +"ocean_model", "geolon", "geolon", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat", "geolat", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_c", "geolon_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_c", "geolat_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_u", "geolon_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_u", "geolat_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_v", "geolon_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_v", "geolat_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "area_t", "area_t", "ocean_month", "all", .false., "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet", "wet", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_c", "wet_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_u", "wet_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_v", "wet_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "Coriolis", "Coriolis", "ocean_month", "all", .false., "none", 2 + +#================ +# ICE DIAGNOSTICS +#================ +# +"ice_model", "FRAZIL", "FRAZIL", "ice_month", "all", .true., "none", 2, +"ice_model", "HI", "HI", "ice_month", "all", .true., "none", 2, +"ice_model", "HS", "HS", "ice_month", "all", .true., "none", 2, +"ice_model", "TS", "TS", "ice_month", "all", .true., "none", 2, +"ice_model", "T1", "T1", "ice_month", "all", .true., "none", 2, +"ice_model", "T2", "T2", "ice_month", "all", .true., "none", 2, +"ice_model", "CN", "CN", "ice_month", "all", .true., "none", 2, +"ice_model", "EXT", "EXT", "ice_month", "all", .true., "none", 2, +"ice_model", "MI", "MI", "ice_month", "all", .true., "none", 2, +"ice_model", "XPRT", "XPRT", "ice_month", "all", .true., "none", 2, +"ice_model", "LSRC", "LSRC", "ice_month", "all", .true., "none", 2, +"ice_model", "LSNK", "LSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "BSNK", "BSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "SN2IC", "SN2IC", "ice_month", "all", .true., "none", 2, +"ice_model", "ALB", "ALB", "ice_month", "all", .true., "none", 2, +"ice_model", "SW", "SW", "ice_month", "all", .true., "none", 2, +"ice_model", "LW", "LW", "ice_month", "all", .true., "none", 2, +"ice_model", "SH", "SH", "ice_month", "all", .true., "none", 2, +"ice_model", "LH", "LH", "ice_month", "all", .true., "none", 2, +"ice_model", "TMELT", "TMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BMELT", "BMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BHEAT", "BHEAT", "ice_month", "all", .true., "none", 2, +"ice_model", "UI", "UI", "ice_month", "all", .true., "none", 2, +"ice_model", "VI", "VI", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_X", "FA_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_Y", "FA_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_X", "FI_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_Y", "FI_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "SST", "SST", "ice_month", "all", .true., "none", 2, +"ice_model", "SSS", "SSS", "ice_month", "all", .true., "none", 2, +"ice_model", "SSH", "SSH", "ice_month", "all", .true., "none", 2, +"ice_model", "UO", "UO", "ice_month", "all", .true., "none", 2, +"ice_model", "VO", "VO", "ice_month", "all", .true., "none", 2, +"ice_model", "SNOWFL", "SNOWFL", "ice_month", "all", .true., "none", 2, +"ice_model", "RAIN", "RAIN", "ice_month", "all", .true., "none", 2, +"ice_model", "CALVING", "CALVING", "ice_month", "all", .true., "none", 2, +"ice_model", "RUNOFF", "RUNOFF", "ice_month", "all", .true., "none", 2, +"ice_model", "CELL_AREA", "CELL_AREA", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLON", "GEOLON", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLAT", "GEOLAT", "ice_month", "all", .false., "none", 2, +"ice_model", "SINROT", "SINROT", "ice_month", "all", .false., "none", 2, +"ice_model", "COSROT", "COSROT", "ice_month", "all", .false., "none", 2, +"ice_model", "SALTF", "SALTF", "ice_month", "all", .true., "none", 2, +"ice_model", "IX_TRANS", "IX_TRANS", "ice_month", "all", .true., "none", 2, +"ice_model", "IY_TRANS", "IY_TRANS", "ice_month", "all", .true., "none", 2, +#======================= +# LAND MODEL DIAGNOSTICS +#======================= +# +## daily output + "soil","water", "water", "land_daily", "all", .true., "none", 2 + "soil","wroff", "wroff", "land_daily", "all", .true., "none", 2 +# +## instantaneous output + "soil","cover_type", "cover_type", "land_instant", "all", .false., "none", 2 + "soil","frozen", "frozen", "land_instant", "all", .false., "none", 2 + "soil","groundwater", "groundwater", "land_instant", "all", .false., "none", 2 + "soil","snow", "snow", "land_instant", "all", .false., "none", 2 + "soil","temp", "temp", "land_instant", "all", .false., "none", 2 + "soil","water", "water", "land_instant", "all", .false., "none", 2 +# +## river discharge + "rivers", "discharge","disch_w", "land_month", "all", .true., "none", 2 + "rivers", "discharge_snow","disch_s","land_month", "all", .true., "none", 2 +# +## static fields + "soil","area", "area", "land_month", "all", .false., "none", 2 + "soil","ground_type", "ground_type", "land_month", "all", .false., "none", 2 + "soil","hlf", "hlf", "land_month", "all", .false., "none", 2 + "soil","hlv", "hlv", "land_month", "all", .false., "none", 2 + "soil","lfrac", "lfrac", "land_month", "all", .false., "none", 2 + "soil","max_water", "max_water", "land_month", "all", .false., "none", 2 + "soil","rho_cap", "rho_cap", "land_month", "all", .false., "none", 2 +# + "soil","albedo", "albedo", "land_month", "all", .true., "none", 2 + "soil","evap", "evap", "land_month", "all", .true., "none", 2 + "soil","flw", "flw", "land_month", "all", .true., "none", 2 + "soil","fsw", "fsw", "land_month", "all", .true., "none", 2 + "soil","frozen", "frozen", "land_month", "all", .true., "none", 2 + "soil","gmelt", "gmelt", "land_month", "all", .true., "none", 2 + "soil","groundwater", "groundwater", "land_month", "all", .true., "none", 2 + "soil","latent", "latent", "land_month", "all", .true., "none", 2 + "soil","precip", "precip", "land_month", "all", .true., "none", 2 + "soil","sens", "sens", "land_month", "all", .true., "none", 2 + "soil","smelt", "smelt", "land_month", "all", .true., "none", 2 + "soil","snow", "snow", "land_month", "all", .true., "none", 2 + "soil","snowfall", "snowfall", "land_month", "all", .true., "none", 2 + "soil","sroff", "sroff", "land_month", "all", .true., "none", 2 + "soil","sublim", "sublim", "land_month", "all", .true., "none", 2 + "soil","temp", "temp", "land_month", "all", .true., "none", 2 + "soil","water", "water", "land_month", "all", .true., "none", 2 + "soil","wroff", "wroff", "land_month", "all", .true., "none", 2 +# +#======================= +# ATMOSPHERE DIAGNOSTICS +#======================= +# +## daily output + "flux", "evap", "evap", "atmos_daily", "all", .true., "none", 2 + "flux", "lwflx", "lwflx", "atmos_daily", "all", .true., "none", 2 + "flux", "shflx", "shflx", "atmos_daily", "all", .true., "none", 2 + "flux", "tau_x", "tau_x", "atmos_daily", "all", .true., "none", 2 + "flux", "tau_y", "tau_y", "atmos_daily", "all", .true., "none", 2 + "flux", "t_ref", "t_ref_min", "atmos_daily", "all", min, "none", 2 + "flux", "t_ref", "t_ref_max", "atmos_daily", "all", max, "none", 2 + "flux", "t_surf", "t_surf", "atmos_daily", "all", .true., "none", 2 + "flux", "wind", "wind", "atmos_daily", "all", max, "none", 2 +## "flux" forcing fields for land model: wind, sphum_ref atmos_8xdaily +#"flux", "sphum_ref", "sphum_ref", "atmos_8xdaily", "all", .true., "none", 2 +#"flux", "wind", "wind", "atmos_8xdaily", "all", .true., "none", 2 +# +## instantaneous output + "flux", "t_ref", "t_ref", "atmos_8xdaily_instant","all",.false., "none", 2 +# + "flux", "drag_heat", "drag_heat", "atmos_month", "all", .true., "none", 2 + "flux", "drag_moist", "drag_moist", "atmos_month", "all", .true., "none", 2 + "flux", "drag_mom", "drag_mom", "atmos_month", "all", .true., "none", 2 + "flux", "evap", "evap", "atmos_month", "all", .true., "none", 2 + "flux", "ice_mask", "ice_mask", "atmos_month", "all", .true., "none", 2 + "flux", "land_mask", "land_mask", "atmos_month", "all", .false., "none", 2 + "flux", "lwflx", "lwflx", "atmos_month", "all", .true., "none", 2 + "flux", "rh_ref", "rh_ref", "atmos_month", "all", .true., "none", 2 + "flux", "shflx", "shflx", "atmos_month", "all", .true., "none", 2 + "flux", "tau_x", "tau_x", "atmos_month", "all", .true., "none", 2 + "flux", "tau_y", "tau_y", "atmos_month", "all", .true., "none", 2 + "flux", "t_ref", "t_ref", "atmos_month", "all", .true., "none", 2 + "flux", "t_ref", "t_ref_min", "atmos_month", "all", min, "none", 2 + "flux", "t_ref", "t_ref_max", "atmos_month", "all", max, "none", 2 + "flux", "t_surf", "t_surf", "atmos_month", "all", .true., "none", 2 + "flux", "u_ref", "u_ref", "atmos_month", "all", .true., "none", 2 + "flux", "v_ref", "v_ref", "atmos_month", "all", .true., "none", 2 + "flux", "wind", "wind", "atmos_month", "all", .true., "none", 2 +# + "dynamics", "bk", "bk", "atmos_daily", "all", .false., "none", 2 + "dynamics", "omega", "omega", "atmos_daily", "all", .true., "none", 2 + "dynamics", "pk", "pk", "atmos_daily", "all", .false., "none", 2 + "dynamics", "ps", "ps", "atmos_daily", "all", .true., "none", 2 + "dynamics", "sphum", "sphum", "atmos_daily", "all", .true., "none", 2 + "dynamics", "temp", "temp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "ucomp", "ucomp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "vcomp", "vcomp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "zsurf", "zsurf", "atmos_daily", "all", .false., "none", 2 + "dynamics", "bk", "bk", "atmos_month", "all", .false., "none", 2 + "dynamics", "pk", "pk", "atmos_month", "all", .false., "none", 2 + "dynamics", "zsurf", "zsurf", "atmos_month", "all", .false., "none", 2 + "dynamics", "cld_amt", "cld_amt", "atmos_month", "all", .true., "none", 2 + "dynamics", "ice_wat", "ice_wat", "atmos_month", "all", .true., "none", 2 + "dynamics", "liq_wat", "liq_wat", "atmos_month", "all", .true., "none", 2 + "dynamics", "omega", "omega", "atmos_month", "all", .true., "none", 2 +#"dynamics", "pres_full", "pres_full", "atmos_month", "all", .true., "none", 2 +#"dynamics", "pres_half", "pres_half", "atmos_month", "all", .true., "none", 2 + "dynamics", "ps", "ps", "atmos_month", "all", .true., "none", 2 + "dynamics", "sphum", "sphum", "atmos_month", "all", .true., "none", 2 + "dynamics", "temp", "temp", "atmos_month", "all", .true., "none", 2 +#"dynamics", "theta", "theta", "atmos_month", "all", .true., "none", 2 + "dynamics", "ucomp", "ucomp", "atmos_month", "all", .true., "none", 2 + "dynamics", "vcomp", "vcomp", "atmos_month", "all", .true., "none", 2 +# + "moist", "precip", "precip", "atmos_daily", "all", .true., "none", 2 + "moist", "prec_conv", "prec_conv", "atmos_daily", "all", .true., "none", 2 + "moist", "prec_ls", "prec_ls", "atmos_daily", "all", .true., "none", 2 + "moist", "snow_conv", "snow_conv", "atmos_daily", "all", .true., "none", 2 + "moist", "snow_ls", "snow_ls", "atmos_daily", "all", .true., "none", 2 + "moist", "precip", "precip", "atmos_8xdaily","all",.true., "none", 2 + "moist", "prec_conv", "prec_conv", "atmos_month", "all", .true., "none", 2 + "moist", "snow_conv", "snow_conv", "atmos_month", "all", .true., "none", 2 + "moist", "prec_ls", "prec_ls", "atmos_month", "all", .true., "none", 2 + "moist", "snow_ls", "snow_ls", "atmos_month", "all", .true., "none", 2 + "moist", "IWP", "IWP", "atmos_month", "all", .true., "none", 2 + "moist", "LWP", "LWP", "atmos_month", "all", .true., "none", 2 + "moist", "precip", "precip", "atmos_month", "all", .true., "none", 2 + "moist", "qdt_conv", "qdt_conv", "atmos_month", "all", .true., "none", 2 + "moist", "tdt_conv", "tdt_conv", "atmos_month", "all", .true., "none", 2 + "moist", "qdt_ls", "qdt_ls", "atmos_month", "all", .true., "none", 2 + "moist", "rh", "rh", "atmos_month", "all", .true., "none", 2 + "moist", "tdt_ls", "tdt_ls", "atmos_month", "all", .true., "none", 2 + "moist", "WVP", "WVP", "atmos_month", "all", .true., "none", 2 +# + "ras", "mc", "mc", "atmos_month", "all", .true., "none", 2 +# + "radiation", "lwdn_sfc", "lwdn_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "lwup_sfc", "lwup_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "olr", "olr", "atmos_daily", "all", .true., "none", 2 + "radiation", "swdn_sfc", "swdn_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "swup_sfc", "swup_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "swdn_toa", "swdn_toa", "atmos_daily", "all", .true., "none", 2 + "radiation", "swup_toa", "swup_toa", "atmos_daily", "all", .true., "none", 2 + "radiation", "alb_sfc", "alb_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "lwdn_sfc", "lwdn_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "lwup_sfc", "lwup_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "netrad_toa", "netrad_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "olr", "olr", "atmos_month", "all", .true., "none", 2 + "radiation", "qo3", "qo3", "atmos_month", "all", .true., "none", 2 + "radiation", "qo3_col", "qo3_col", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_sfc", "swdn_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_sfc", "swup_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_toa", "swdn_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_toa", "swup_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_lw", "tdt_lw", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_sw", "tdt_sw", "atmos_month", "all", .true., "none", 2 + "radiation", "lwdn_sfc_clr","lwdn_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "lwup_sfc_clr","lwup_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "netrad_toa_clr","netrad_toa_clr","atmos_month", "all", .true.,"none", 2 + "radiation", "olr_clr", "olr_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_sfc_clr","swdn_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swup_sfc_clr","swup_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swdn_toa_clr","swdn_toa_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swup_toa_clr","swup_toa_clr","atmos_month", "all", .true., "none", 2 + "radiation", "tdt_lw_clr", "tdt_lw_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_sw_clr", "tdt_sw_clr", "atmos_month", "all", .true., "none", 2 +# + "radiation", "netlw_lin_trop", "netlw_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "netlw_200hPa", "netlw_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_lin_trop", "swdn_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_200hPa", "swdn_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_200hPa", "swup_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_lin_trop", "swup_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "netlw_lin_trop_clr","netlw_lin_trop_clr","atmos_month", "all", .true., "none", 2 + "radiation", "netlw_200hPa_clr", "netlw_200hPa_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_lin_trop_clr", "swdn_lin_trop_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_200hPa_clr", "swdn_200hPa_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_lin_trop_clr", "swup_lin_trop_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_200hPa_clr", "swup_200hPa_clr", "atmos_month", "all", .true., "none", 2 +# +## aerosols +## for the aerosol fields, set do_cmip_diagnostics=.true. in shortwave_driver_nml + "radiation","olr_800_1200", "olr_800_1200", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_900_990", "olr_900_990", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_800_1200", "sfc_800_1200", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_900_990", "sfc_900_990", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_800_1200_cf", "olr_800_1200_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_900_990_cf", "olr_900_990_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_800_1200_cf", "sfc_800_1200_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_900_990_cf", "sfc_900_990_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_vis", "swup_toa_vis", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_1p6", "swup_toa_1p6", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_vis", "swnt_sfc_vis", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_1p6", "swnt_sfc_1p6", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_vis_cf", "swup_toa_vis_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_1p6_cf", "swup_toa_1p6_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_vis_cf", "swnt_sfc_vis_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_1p6_cf", "swnt_sfc_1p6_cf", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "bnd5_extopdep_vlcno", "bnd5_exopd_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "lw_b5_extopdep_vlcno_c", "b5_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "bnd6_lwext_vlcno", "bnd6_lwext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "bnd6_extopdep_vlcno_c", "bnd6_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swext_vlcno", "vis_swext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swssa_vlcno", "vis_swssa_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swasy_vlcno", "vis_swasy_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "vis_extopdep_vlcno_c", "vis_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swext_vlcno", "nir_swext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swssa_vlcno", "nir_swssa_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swasy_vlcno", "nir_swasy_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nir_extopdep_vlcno_c", "nir_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "small_dust", "sm_dust", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "small_dust_col", "sm_dust_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "large_dust", "lg_dust", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "large_dust_col", "lg_dust_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sulfate", "sulfate", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sulfate_col", "sulfate_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "black_carbon", "blk_crb", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "black_carbon_col", "blk_crb_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "organic_carbon", "org_crb", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "organic_carbon_col", "org_crb_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sea_salt", "salt", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sea_salt_col", "salt_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "aerosol", "aer", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "aerosol_col", "aer_c", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "small_dust_exopdep_vis", "sm_dst_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_nir", "sm_dst_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_con", "sm_dst_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_vis", "sm_dst_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_nir", "sm_dst_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_con", "sm_dst_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_vis", "sm_dst_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_nir", "sm_dst_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_con", "sm_dst_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_vis", "sm_dst_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_nir", "sm_dst_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_con", "sm_dst_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "large_dust_exopdep_vis", "lg_dst_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_nir", "lg_dst_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_con", "lg_dst_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_vis", "lg_dst_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_nir", "lg_dst_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_con", "lg_dst_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_vis", "lg_dst_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_nir", "lg_dst_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_con", "lg_dst_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_vis", "lg_dst_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_nir", "lg_dst_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_con", "lg_dst_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "organic_carbon_exopdep_vis", "org_crb_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_nir", "org_crb_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_con", "org_crb_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_vis", "org_crb_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_nir", "org_crb_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_con", "org_crb_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_vis", "org_crb_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_nir", "org_crb_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_con", "org_crb_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_vis", "org_crb_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_nir", "org_crb_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_con", "org_crb_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "sulfate_exopdep_vis", "sulfate_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_nir", "sulfate_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_con", "sulfate_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_vis", "sulfate_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_nir", "sulfate_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_con", "sulfate_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_vis", "sulfate_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_nir", "sulfate_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_con", "sulfate_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_vis", "sulfate_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_nir", "sulfate_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_con", "sulfate_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "black_carbon_exopdep_vis", "blk_crb_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_nir", "blk_crb_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_con", "blk_crb_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_vis", "blk_crb_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_nir", "blk_crb_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_con", "blk_crb_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_vis", "blk_crb_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_nir", "blk_crb_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_con", "blk_crb_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_vis", "blk_crb_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_nir", "blk_crb_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_con", "blk_crb_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "sea_salt_exopdep_vis", "salt_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_nir", "salt_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_con", "salt_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_vis", "salt_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_nir", "salt_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_con", "salt_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_vis", "salt_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_nir", "salt_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_con", "salt_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_vis", "salt_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_nir", "salt_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_con", "salt_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "aerosol_exopdep_vis", "aer_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_nir", "aer_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_con", "aer_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_vis", "aer_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_nir", "aer_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_con", "aer_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_vis", "aer_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_nir", "aer_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_con", "aer_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_vis", "aer_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_nir", "aer_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_con", "aer_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 +# +## globally averaged ghg + "radiation", "rrvch4", "rrvch4", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvco2", "rrvco2", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf11", "rrvf11", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf12", "rrvf12", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf113","rrvf113","atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf22", "rrvf22", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvn2o", "rrvn2o", "atmos_scalar", "all", .true., "none", 2 + "radiation", "solar_constant", "solar_constant", "atmos_scalar", "all", .true., "none", 2 + +## "radiation" forcing fields for land model: flux_sw_down (4), lwdn_sfc atmos_8xdaily +#"radiation", "flux_sw_down_total_dif", "swdn_tot_dif", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_total_dir", "swdn_tot_dir", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_vis_dif", "swdn_vis_dif", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_vis_dir", "swdn_vis_dir", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "lwdn_sfc", "lwdn_sfc", "atmos_8xdaily", "all", .true., "none", 2 +# + "cloudrad", "high_cld_amt","high_cld_amt","atmos_month", "all", .true., "none", 2 + "cloudrad", "low_cld_amt", "low_cld_amt", "atmos_month", "all", .true., "none", 2 + "cloudrad", "mid_cld_amt", "mid_cld_amt", "atmos_month", "all", .true., "none", 2 + "cloudrad", "tot_cld_amt", "tot_cld_amt", "atmos_month", "all", .true., "none", 2 +# + "damping", "taubx", "taubx", "atmos_month", "all", .true., "none", 2 + "damping", "tauby", "tauby", "atmos_month", "all", .true., "none", 2 + "damping", "udt_gwd", "udt_gwd", "atmos_month", "all", .true., "none", 2 + "damping", "vdt_gwd", "vdt_gwd", "atmos_month", "all", .true., "none", 2 + "damping", "udt_rdamp", "udt_rdamp", "atmos_month", "all", .true., "none", 2 + "damping", "vdt_rdamp", "vdt_rdamp", "atmos_month", "all", .true., "none", 2 +# + "vert_diff", "qdt_vdif", "qdt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "tdt_vdif", "tdt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "udt_vdif", "udt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "vdt_vdif", "vdt_vdif", "atmos_month", "all", .true., "none", 2 + + + + + +#============================================================================================= +# +# +# +# FORMATS FOR FILE ENTRIES (not all input values are used) +# ------------------------ +# +#"file_name", output_freq, "output_units", format, "time_units", "long_name", +# +# +#output_freq: > 0 output frequency in "output_units" +# = 0 output frequency every time step +# =-1 output frequency at end of run +# +#output_units = units used for output frequency +# (years, months, days, minutes, hours, seconds) +# +#time_units = units used to label the time axis +# (days, minutes, hours, seconds) +# +# +# FORMAT FOR FIELD ENTRIES (not all input values are used) +# ------------------------ +# +#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing +# +#time_avg = .true. or .false. +# +#packing = 1 double precision +# = 2 float +# = 4 packed 16-bit integers +# = 8 packed 1-byte (not tested?) + diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/field_table b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/field_table new file mode 100644 index 0000000000..f80202bf2d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/field_table @@ -0,0 +1,31 @@ + +# specific humidity for moist runs + + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / + +# prognotic cloud scheme tracers + + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud liquid specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice water specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud fraction" + "units", "none" / + +# test tracer for radon + +# "TRACER", "atmos_mod", "radon" +# "longname", "radon test tracer" +# "units", "kg/kg" / + +# added by FRE: sphum must be present on land + "TRACER", "land_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / + diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/input.nml b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/input.nml new file mode 100644 index 0000000000..90bd755d93 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/input.nml @@ -0,0 +1,717 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' +/ + + &aerosol_nml + use_aerosol_timeseries = .false. + aerosol_dataset_entry = 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + family_names = "small_dust", "large_dust", "sulfate", "aerosol" + in_family1 = F,F,F,F,F,T,T,T,T,T,F,F,F,T,T,T,T,T,F,F,F, + in_family2 = F,F,F,F,F,F,F,F,F,F,T,T,T,F,F,F,F,F,T,T,T, + in_family3 = T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F, + in_family4 = T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T, + data_names = "so4_anthro", "so4_natural", "organic_carbon", "black_carbon", "sea_salt", + "anthro_dust_0.1", "anthro_dust_0.2", "anthro_dust_0.4", "anthro_dust_0.8", + "anthro_dust_1.0", "anthro_dust_2.0", "anthro_dust_4.0", "anthro_dust_8.0", + "natural_dust_0.1", "natural_dust_0.2", "natural_dust_0.4", "natural_dust_0.8", + "natural_dust_1.0", "natural_dust_2.0", "natural_dust_4.0", "natural_dust_8.0", + filename = "aerosol.climatology.nc" +/ + + &aerosolrad_package_nml + volcanic_dataset_entry = 1, 1, 1, 0, 0, 0, + using_volcanic_lw_files = .false., + lw_ext_filename = " " + lw_ext_root = " " + lw_asy_filename = " " + lw_asy_root = " " + lw_ssa_filename = " " + lw_ssa_root = " " + using_volcanic_sw_files = .false., + sw_ext_filename = " " + sw_ext_root = " " + sw_ssa_filename = " " + sw_ssa_root = " " + sw_asy_filename = " " + sw_asy_root = " " + do_lwaerosol = .true., + do_swaerosol = .true., + aerosol_data_set = 'shettle_fenn', + optical_filename = "aerosol.optical.dat", + aerosol_optical_names = "sulfate_30%", "sulfate_35%", "sulfate_40%", "sulfate_45%", + "sulfate_50%", "sulfate_55%", "sulfate_60%", "sulfate_65%", + "sulfate_70%", "sulfate_75%", "sulfate_80%", "sulfate_82%", + "sulfate_84%", "sulfate_86%", "sulfate_88%", "sulfate_90%", + "sulfate_91%", "sulfate_92%", "sulfate_93%", "sulfate_94%", + "sulfate_95%", "sulfate_96%", "sulfate_97%", "sulfate_98%", + "sulfate_99%", "sulfate_100%","organic_carbon","soot", + "sea_salt", "dust_0.1", "dust_0.2", "dust_0.4", + "dust_0.8", "dust_1.0", "dust_2.0", "dust_4.0", + "dust_8.0" +/ + + &atmos_co2_nml + do_co2_restore = .true. + restore_tscale = 3.1536e7, + restore_klimit = 24 + co2_radiation_override = .true. + do_co2_emissions = .false. ! turn on for historical free co2 runs +/ + + &atmosphere_nml + physics_window = 0,0 +/ + + &amip_interp_nml + data_set = 'reynolds_oi', + date_out_of_range = 'fail' +/ + + &cg_drag_nml + cg_drag_freq = 1800, + cg_drag_offset = 0, + debug = .false., + calculate_ked = .false., + itest = 12, + jtest = 42, + ktest = 9, + Bt_0 = 0.0015, + lat_limit = 25.0 +/ + + &cloud_rad_nml + overlap = 2, + do_brenguier = .false. +/ + + &cloud_spec_nml + cloud_type_form = 'strat' +/ + + &cloudrad_package_nml + microphys_form = 'predicted' +/ + + &clouds_nml + do_zonal_clouds = .false., + do_obs_clouds = .false. +/ + + &coupler_nml + months = 0, + days = 1, + current_date = 1900,1,1,0,0,0, + calendar = 'NOLEAP', + dt_cpld = 7200, + dt_atmos = 1800, + do_atmos = .true., + do_land = .true., + do_ice = .true., + do_ocean = .true., + atmos_npes = 30, + ocean_npes = 60, + concurrent = .true. + use_lag_fluxes=.true. + check_stocks = 0 +/ + + &cu_mo_trans_nml + diff_norm = 2.0 +/ + + &damping_driver_nml + trayfric = -40., + nlev_rayfric = 1, + do_mg_drag = .true., + do_cg_drag = .false., + do_topo_drag = .false., + do_conserve_energy = .true. +/ + + &diag_cloud_nml + linvers = .false., lcnvcld = .false., + l_theqv = .true., lomega = .true., + low_lev_cloud_index = 16, nofog = .false. +/ + + &diag_cloud_rad_nml + l_har_anvil = .true., + l_har_coldcld = .true., + l_anom_abs_v = .true. +/ + + &diag_integral_nml + file_name = 'diag_integral.out', + time_units = 'days', + output_interval = 1.0 +/ + + &diag_manager_nml + max_files = 50, + max_axes = 200, + max_num_axis_sets = 200, + max_input_fields = 800 + max_output_fields = 1300 + mix_snapshot_average_fields=.false. + issue_oor_warnings = .false. ! (default=true) +/ + + &donner_deep_clouds_W_nml + using_dge_sw = .true., + using_dge_lw = .true. +/ + + &donner_deep_nml + donner_deep_offset = 0 + donner_deep_freq = 1800 + save_donner_deep_diagnostics=.true. + cell_liquid_size_type = 'bower' + cell_ice_size_type = 'default' + debug = .false. + kttest=5 + itest=53 + jtest=32 + ktest_model=17 +/ + + &edt_nml + n_print_levels = 14, + use_qcmin = .true., + num_pts_ij = 0, + min_adj_time = 1.0, + do_gaussian_cloud = .false., + use_extrapolated_ql = .false. +/ + + &entrain_nml + convect_shutoff = .true., + apply_entrain = .true., + parcel_buoy = 0.25, + parcel_option = 2, + beta_rad = 0.5, + Ashear = 25.0, + radperturb = 0.10, + critjump = 0.10, + num_pts_ij = 0, + i_entprt_gl = 112, 96, 89,105, 81, 97, + j_entprt_gl = 71, 61, 56, 64, 53, 46 +/ + + &esfsw_parameters_nml + sw_resolution = 'low', + sw_diff_streams = 1 +/ + + &flux_exchange_nml + debug_stocks = .FALSE. + divert_stocks_report = .TRUE. + do_area_weighted_flux = .FALSE. +/ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' + max_files_r = 300 + max_files_w = 300 +/ + + &fms_nml + clock_grain='COMPONENT' + clock_flags='SYNC' + domains_stack_size = 5000000 + stack_size =0 +/ + + &fv_core_nml + LAYOUT = 0,30 + nlon =144 + mlat=90 + nlev = 24 + ncnst = 4 + pnats = 0 + n_split = 5 + change_time = .true. + consv_te = 0.7 + restart_format='NETCDF' +/ + + &gas_tf_nml + interp_form = 'log' , + do_calcstdco2tfs = .true., + do_writestdco2tfs= .false., + do_readstdco2tfs = .false., + do_calcstdch4tfs = .true., + do_writestdch4tfs= .false., + do_readstdch4tfs = .false., + do_calcstdn2otfs = .true., + do_writestdn2otfs= .false., + do_readstdn2otfs = .false. +/ + +&generic_tracer_nml + do_generic_tracer=.false. + do_generic_CFC=.false. + do_generic_TOPAZ=.false. +/ + +&ice_albedo_nml + t_range = 10. +/ + +&ice_model_nml + nsteps_dyn=72 + nsteps_adv=1 + num_part = 6 + wd_turn = 0.0 + io_layout = 1,1 + spec_ice=.false. + ice_bulk_salin = 0.005 + alb_sno = 0.85 + alb_ice = 0.65 + t_range_melt = 1.0 + cm2_bugs = .false. + do_icebergs = .false. + add_diurnal_sw = .false. + h_lo_lim = 1.e-10 + channel_viscosity=5.e5 +/ + +&icebergs_nml + time_average_weight = .false. + speed_limit=0.50 + verbose=.TRUE. + traj_sample_hrs=0 + verbose_hrs=120 +/ + + &lscale_cond_nml + do_evap = .true. +/ + + &lw_gases_stdtf_nml + NSTDCO2LVLS=496 +/ + + &mg_drag_nml + gmax = 1., + acoef = 1., + do_conserve_energy = .true., + source_of_sgsmtn = 'computed' +/ + + µphys_rad_nml + lwem_form = 'fuliou' +/ + + &moist_conv_nml + beta = 0.0 +/ + + &moist_processes_nml + do_lsc=.false., do_strat=.true., do_mca=.false., do_ras=.true., + do_donner_deep = .false., + do_diag_clouds = .false., do_cmt=.true., + do_rh_clouds = .false., + do_gust_cv = .false. + include_donmca_in_cosp = .false. +/ + + &monin_obukhov_nml + stable_option = 2, + rich_crit = 10.0, + zeta_trans = 0.5 +/ + + &my25_turb_nml + do_thv_stab = .true., + TKEmin = 1.e-8, + AKmin_land = 5., + AKmin_sea = 0. +/ + +&ocean_albedo_nml + ocean_albedo_option = 5 +/ + +&ocean_rough_nml + rough_scheme = 'beljaars' +/ + + &ozone_nml + basic_ozone_type = 'fixed_year' , + ozone_dataset_entry = 1990, 1, 1, 0, 0, 0, + data_name = "ozone", + filename = "o3.climatology.nc" +/ + + &physics_driver_nml + do_modis_yim = .false. +/ + + &rad_output_file_nml + write_data_file=.true. +/ + + &rad_utilities_nml +/ + + &radiation_diag_nml + iradprt_gl = 20, 6, + jradprt_gl = 12, 20, + num_pts_ij = 0 +/ + + &radiation_driver_nml + rad_time_step= 10800, + time_varying_solar_constant = .false., + solar_dataset_entry = 1990,1,1,0,0,0, + rad_package = 'sea_esf', + do_clear_sky_pass=.true., + calc_hemi_integrals = .false., + renormalize_sw_fluxes=.true., + all_step_diagnostics = .true., + zenith_spec = 'diurnally_varying', + use_co2_tracer_field = .false. ! not using co2 tracer field + using_restart_file = .false. +/ + + &radiative_gases_nml + verbose = 3 + gas_printout_freq = 240 + + time_varying_co2 = .false., + co2_variation_type = 'linear', + co2_dataset_entry = 1990,1,1,0,0,0, + co2_specification_type = 'time_series', + co2_floor = 100.0E-06, + co2_ceiling = 1600.0E-06, + co2_data_source = 'input' + + time_varying_ch4 = .false., + ch4_variation_type = 'linear' + ch4_dataset_entry = 1990, 1, 1, 0, 0, 0, + ch4_specification_type = 'time_series' + ch4_data_source = 'input' + + time_varying_n2o = .false., + n2o_variation_type = 'linear' + n2o_dataset_entry = 1990, 1, 1, 0, 0, 0, + n2o_specification_type = 'time_series' + n2o_data_source = 'input' + + time_varying_f11 = .false., + f11_variation_type = 'linear' + f11_dataset_entry = 1990, 1, 1, 0, 0, 0, + f11_specification_type = 'time_series' + f11_data_source = 'input' + + time_varying_f12 = .false., + f12_variation_type = 'linear' + f12_dataset_entry = 1990, 1, 1, 0, 0, 0, + f12_specification_type = 'time_series' + f12_data_source = 'input' + + time_varying_f113 = .false., + f113_variation_type = 'linear' + f113_dataset_entry = 1990, 1, 1, 0, 0, 0, + f113_specification_type = 'time_series' + f113_data_source = 'input' + + time_varying_f22 = .false., + f22_variation_type = 'linear' + f22_dataset_entry = 1990, 1, 1, 0, 0, 0, + f22_specification_type = 'time_series' + f22_data_source = 'input' +/ + + &ras_nml + aratio = 1.0, + modify_pbl=.true. + rn_frac_bot = 0.5, + rn_pbot = 800.0e2, + puplim = 20.0e02, + rn_ptop = 500.0e2, + rn_frac_top = 0.975, + Tokioka_on = .true., + Tokioka_con = 0.025, + Tokioka_plim = 500.0e2, + a = 1.6851, 1.1686, 0.7663, 0.5255, 0.4100, 0.3677, + 0.3151, 0.2216, 0.1521, 0.0750, 0.0000, 0.0000, + 0.0000, 0.0000, 0.0000 +/ + + &rh_based_clouds_nml + cirrus_cld_prop_form = 'part', + cldht_type_form = '93' +/ + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. +/ + + &sealw99_nml + do_thick = .false., + do_nlte = .false., + do_lwcldemiss = .true., + do_n2olbltmpint = .false., + continuum_form = 'ckd2.1', + linecatalog_form = 'hitran_2000', + calc_co2_tfs_on_first_step = .true., + calc_co2_tfs_monthly = .false., + co2_tf_time_displacement = 0.0, + calc_ch4_tfs_on_first_step = .true., + calc_ch4_tfs_monthly = .false., + ch4_tf_time_displacement = 0.0, + calc_n2o_tfs_on_first_step = .true., + calc_n2o_tfs_monthly = .false., + n2o_tf_time_displacement = 0.0, + verbose = 5 +/ + + &shortwave_driver_nml + do_cmip_diagnostics = .true., + calculate_volcanic_sw_heating = .false., + swform = 'esfsw99' +/ + + &stable_bl_turb_nml + alsm = 500.0, + alsh = 500.0 +/ + + &strat_cloud_nml + do_old_snowmelt = .true. + U00 = 0.800, + U00_profile = .true., + rthresh = 8.0, + Dmin = 1.0e-07, + n_land = 300.e6, + diff_thresh = 0.1, + mc_thresh = 0.001, + eros_scale = 1.e-6, + eros_choice = .true., + eros_scale_c = 8.e-6, + eros_scale_t = 5.e-5, + super_choice = .true., + tracer_advec = .true. +/ + +&topography_nml + topog_file = 'INPUT/navy_topography.data.nc' +/ + + &vert_diff_driver_nml + do_conserve_energy = .true. +/ + + &vert_turb_driver_nml + use_tau = .false., + gust_scheme = 'beljaars', + do_mellor_yamada = .false., + do_entrain = .true., + do_edt = .false., + do_diffusivity = .false., + do_stable_bl = .true., + do_shallow_conv = .false. +/ + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' +/ + + + &cana_nml + turbulence_to_use = "lm3v" + init_co2 = 286.0e-6 + canopy_air_mass_for_tracers = 10.0 +/ + &glac_data_nml + use_lm2_awc = .true., + rsa_exp_global = 10., + dat_emis_dry = 1., + dat_emis_sat = 1., +/ + &glac_nml + conserve_glacier_mass = .true. + lm2 = .true. +/ + &harvesting_nml + do_harvesting = .FALSE. !!! turn on for LAND USE + grazing_intensity = 0.25 + grazing_residue = 0.1 + frac_wood_wasted_harv = 0.25 + frac_wood_wasted_clear = 0.25 + !frac_wood_fast = ONETHIRD + !frac_wood_med = ONETHIRD + !frac_wood_slow = ONETHIRD + crop_seed_density = 0.1 +/ + &lake_data_nml + lake_to_use = 'from-rivers' + num_l = 20, + dat_emis_dry = 1., + dat_emis_sat = 1., + dat_heat_capacity_ref = 0., + f_iso_liq = 0.02, 0.01 + f_iso_ice = 0.02, 0.01 + f_vol_liq = 0.003, 0. + f_vol_ice = 0.003, 0. + f_geo_liq = 0., 0. + f_geo_ice = 0., 0. +/ + &lake_nml + albedo_to_use = 'brdf-params' + float_ice_to_top = .true. +/ + &land_debug_nml + watch_point = 0,0,0,1 +/ + &land_model_nml + layout = 1,0 + io_layout = 1,1 + tau_snow_T_adj = 604800. +/ + &landuse_nml + do_landuse_change = .false., !!! turn on for LAND USE + input_file = 'INPUT/landuse.nc' +/ + &river_nml + dt_slow = 86400. + land_area_called_cellarea = .true. + all_big_outlet_ctn0 = .true. +/ + &river_physics_nml + lake_sfc_w_min = 20. +/ + &snow_data_nml + emis_snow_max = 1. + emis_snow_min = 1. + z0_momentum = 0.01 + num_l = 5 + dz = 0.05, 0.2, 0.5, 0.2, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0 + f_iso_cold = 0.90, 0.60 + f_vol_cold = 0.09, 0.13 + f_geo_cold = 0.00, 0.00 + f_iso_warm = 0.90, 0.60 + f_vol_warm = 0.09, 0.13 + f_geo_warm = 0.00, 0.00 + depth_crit = 0.05 +/ + &snow_nml + min_snow_mass = 1.e-10 + max_snow = 1000. + albedo_to_use = 'brdf-params' +/ + &soil_data_nml + dat_emis_dry = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_emis_sat = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_tf_depr = 2., 2., 2., 2., 2., 2., 2., 2., 2. + geohydrology_to_use = 'hill_ar5' + gw_scale_soil_depth = 10. + freeze_factor = 2.0 + comp = 1e-4 + num_l = 20 + dz = 0.020, 0.040, 0.040, 0.050, 0.05, 0.100, 0.10, 0.200, 0.200, 0.2, + 0.40, 0.40, 0.40, 0.4, 0.4, 1.0, 1.0, 1.0, 1.5, 2.5 +/ + &soil_nml + init_w = 500. + albedo_to_use = 'brdf-maps' + uptake_to_use = 'darcy2d-linearized' + uptake_oneway = .true. + active_layer_drainage_acceleration = 100. + write_soil_carbon_restart = .FALSE. !To reproduce siena answers +/ + &static_veg_nml + use_static_veg = .FALSE. + timeline = 'loop' + start_loop = 2420, 1, 1, 0, 0, 0 + end_loop = 2470, 1, 1, 0, 0, 0 + fill_land_mask = .TRUE. +/ + &topo_rough_nml + use_topo_rough = .true. + max_topo_rough = 100.0 + topo_rough_factor = 0.01 +/ + &vegn_data_nml + vegn_to_use = 'uniform' + K1=10, + K2=0.1, + fsc_liv=0.9, + fsc_wood=0.45, + c1(4) = 0.3 + c2(4) = 0.3 + Vmax = 2.0E-5, 2.0E-5, 2.0E-5, 2.0E-5, 1.50E-5, + m_cond = 4., 9., 9., 7., 7., + alpha_phot = 0.05, 0.06, 0.06, 0.06, 0.06, + gamma_resp = 0.03, 0.02, 0.02, 0.02, 0.02, + fact_crit_phen(0:4) = 0., 0., 0., 0., 0. + fact_crit_fire(0:4) = 0., 0., 0., 0., 0. + cnst_crit_phen(0:4) = 0.30, 0.15, 0.15, 0.30, 0.30 + cnst_crit_fire(0:4) = 0.15, 0.40, 0.15, 0.15, 0.15 + wet_leaf_dreg(0:4) = .3, .3, .3, .3, .3 + ksi = 0, 0, 0, 0, 0, + leaf_refl(0:4,1) = 0.11, 0.11, 0.10, 0.10, 0.10 + leaf_refl(0:4,2) = 0.58, 0.58, 0.5, 0.5, 0.5, + dat_root_zeta(0:4) = 0.35212, 0.17039, 0.28909, 0.25813, 0.17039 + critical_root_density = 0.0, + tau_drip_s = 259200.0 + cmc_lai(0:4) = 0.02, 0.02, 0.02, 0.02, 0.02 + csc_lai(0:4) = 0.2, 0.2, 0.2, 0.2, 0.2 + dat_snow_crit = 0.0167, 0.0167, 0.0333, 0.2, 0.2 + t_transp_min = 268. + srl(0:1) = 112.0e3, 150.0e3 + root_perm = 14*5e-7 + alpha(1,3) = 4 + leaf_age_tau(2) = 150 + smoke_fraction = 0.9, 0.9, 0.6, 0.6, 0.6 + tg_c3_thresh = 1 + phen_ev2 = 0.925 + cmc_eps = 0.01 + alpha(0:4,6) = 0.0, 0.0, 0.012, 0.012, 0.012 + treefall_disturbance_rate = 0.175, 0.185, 0.025, 0.0275, 0.027 +/ + &vegn_nml + init_Tv = 288.0 + rad_to_use = 'two-stream' + photosynthesis_to_use = 'leuning' + snow_rad_to_use = 'paint-leaves' + co2_to_use_for_photosynthesis ='interactive' + co2_for_photosynthesis = 286.0e-6 + do_cohort_dynamics = .TRUE., + do_patch_disturbance = .TRUE., + do_phenology = .TRUE., + do_biogeography = .TRUE., + do_seed_transport = .TRUE., + tau_smooth_ncm = 22.0 +/ diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/static_input.nml b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/static_input.nml new file mode 100644 index 0000000000..989fe929dd --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/static_input.nml @@ -0,0 +1,685 @@ + + &aerosol_nml + use_aerosol_timeseries = .false. + aerosol_dataset_entry = 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + family_names = "small_dust", "large_dust", "sulfate", "aerosol" + in_family1 = F,F,F,F,F,T,T,T,T,T,F,F,F,T,T,T,T,T,F,F,F, + in_family2 = F,F,F,F,F,F,F,F,F,F,T,T,T,F,F,F,F,F,T,T,T, + in_family3 = T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F, + in_family4 = T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T, + data_names = "so4_anthro", "so4_natural", "organic_carbon", "black_carbon", "sea_salt", + "anthro_dust_0.1", "anthro_dust_0.2", "anthro_dust_0.4", "anthro_dust_0.8", + "anthro_dust_1.0", "anthro_dust_2.0", "anthro_dust_4.0", "anthro_dust_8.0", + "natural_dust_0.1", "natural_dust_0.2", "natural_dust_0.4", "natural_dust_0.8", + "natural_dust_1.0", "natural_dust_2.0", "natural_dust_4.0", "natural_dust_8.0", + filename = "aerosol.climatology.nc" +/ + + &aerosolrad_package_nml + volcanic_dataset_entry = 1, 1, 1, 0, 0, 0, + using_volcanic_lw_files = .false., + lw_ext_filename = " " + lw_ext_root = " " + lw_asy_filename = " " + lw_asy_root = " " + lw_ssa_filename = " " + lw_ssa_root = " " + using_volcanic_sw_files = .false., + sw_ext_filename = " " + sw_ext_root = " " + sw_ssa_filename = " " + sw_ssa_root = " " + sw_asy_filename = " " + sw_asy_root = " " + do_lwaerosol = .true., + do_swaerosol = .true., + aerosol_data_set = 'shettle_fenn', + optical_filename = "aerosol.optical.dat", + aerosol_optical_names = "sulfate_30%", "sulfate_35%", "sulfate_40%", "sulfate_45%", + "sulfate_50%", "sulfate_55%", "sulfate_60%", "sulfate_65%", + "sulfate_70%", "sulfate_75%", "sulfate_80%", "sulfate_82%", + "sulfate_84%", "sulfate_86%", "sulfate_88%", "sulfate_90%", + "sulfate_91%", "sulfate_92%", "sulfate_93%", "sulfate_94%", + "sulfate_95%", "sulfate_96%", "sulfate_97%", "sulfate_98%", + "sulfate_99%", "sulfate_100%","organic_carbon","soot", + "sea_salt", "dust_0.1", "dust_0.2", "dust_0.4", + "dust_0.8", "dust_1.0", "dust_2.0", "dust_4.0", + "dust_8.0" +/ + + &atmos_co2_nml + do_co2_restore = .true. + restore_tscale = 3.1536e7, + restore_klimit = 24 + co2_radiation_override = .true. + do_co2_emissions = .false. ! turn on for historical free co2 runs +/ + + &atmosphere_nml + physics_window = 0,0 +/ + + &amip_interp_nml + data_set = 'reynolds_oi', + date_out_of_range = 'fail' +/ + + &cg_drag_nml + cg_drag_freq = 1800, + cg_drag_offset = 0, + debug = .false., + calculate_ked = .false., + itest = 12, + jtest = 42, + ktest = 9, + Bt_0 = 0.0015, + lat_limit = 25.0 +/ + + &cloud_rad_nml + overlap = 2, + do_brenguier = .false. +/ + + &cloud_spec_nml + cloud_type_form = 'strat' +/ + + &cloudrad_package_nml + microphys_form = 'predicted' +/ + + &clouds_nml + do_zonal_clouds = .false., + do_obs_clouds = .false. +/ + + + &cu_mo_trans_nml + diff_norm = 2.0 +/ + + &damping_driver_nml + trayfric = -40., + nlev_rayfric = 1, + do_mg_drag = .true., + do_cg_drag = .false., + do_topo_drag = .false., + do_conserve_energy = .true. +/ + + &diag_cloud_nml + linvers = .false., lcnvcld = .false., + l_theqv = .true., lomega = .true., + low_lev_cloud_index = 16, nofog = .false. +/ + + &diag_cloud_rad_nml + l_har_anvil = .true., + l_har_coldcld = .true., + l_anom_abs_v = .true. +/ + + &diag_integral_nml + file_name = 'diag_integral.out', + time_units = 'days', + output_interval = 1.0 +/ + + &diag_manager_nml + max_files = 50, + max_axes = 200, + max_num_axis_sets = 200, + max_input_fields = 800 + max_output_fields = 1300 + mix_snapshot_average_fields=.false. + issue_oor_warnings = .false. ! (default=true) +/ + + &donner_deep_clouds_W_nml + using_dge_sw = .true., + using_dge_lw = .true. +/ + + &donner_deep_nml + donner_deep_offset = 0 + donner_deep_freq = 1800 + save_donner_deep_diagnostics=.true. + cell_liquid_size_type = 'bower' + cell_ice_size_type = 'default' + debug = .false. + kttest=5 + itest=53 + jtest=32 + ktest_model=17 +/ + + &edt_nml + n_print_levels = 14, + use_qcmin = .true., + num_pts_ij = 0, + min_adj_time = 1.0, + do_gaussian_cloud = .false., + use_extrapolated_ql = .false. +/ + + &entrain_nml + convect_shutoff = .true., + apply_entrain = .true., + parcel_buoy = 0.25, + parcel_option = 2, + beta_rad = 0.5, + Ashear = 25.0, + radperturb = 0.10, + critjump = 0.10, + num_pts_ij = 0, + i_entprt_gl = 112, 96, 89,105, 81, 97, + j_entprt_gl = 71, 61, 56, 64, 53, 46 +/ + + &esfsw_parameters_nml + sw_resolution = 'low', + sw_diff_streams = 1 +/ + + &flux_exchange_nml + debug_stocks = .FALSE. + divert_stocks_report = .TRUE. + do_area_weighted_flux = .FALSE. +/ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' + max_files_r = 300 + max_files_w = 300 +/ + + &fv_core_nml + LAYOUT = 0,30 + nlon =144 + mlat=90 + nlev = 24 + ncnst = 4 + pnats = 0 + n_split = 5 + change_time = .true. + consv_te = 0.7 + restart_format='NETCDF' +/ + + &gas_tf_nml + interp_form = 'log' , + do_calcstdco2tfs = .true., + do_writestdco2tfs= .false., + do_readstdco2tfs = .false., + do_calcstdch4tfs = .true., + do_writestdch4tfs= .false., + do_readstdch4tfs = .false., + do_calcstdn2otfs = .true., + do_writestdn2otfs= .false., + do_readstdn2otfs = .false. +/ + +&generic_tracer_nml + do_generic_tracer=.false. + do_generic_CFC=.false. + do_generic_TOPAZ=.false. +/ + +&ice_albedo_nml + t_range = 10. +/ + +&ice_model_nml + nsteps_dyn=72 + nsteps_adv=1 + num_part = 6 + wd_turn = 0.0 + io_layout = 1,1 + spec_ice=.false. + ice_bulk_salin = 0.005 + alb_sno = 0.85 + alb_ice = 0.65 + t_range_melt = 1.0 + cm2_bugs = .false. + do_icebergs = .false. + add_diurnal_sw = .false. + h_lo_lim = 1.e-10 + channel_viscosity=5.e5 +/ + +&icebergs_nml + time_average_weight = .false. + speed_limit=0.50 + verbose=.TRUE. + traj_sample_hrs=0 + verbose_hrs=120 +/ + + &lscale_cond_nml + do_evap = .true. +/ + + &lw_gases_stdtf_nml + NSTDCO2LVLS=496 +/ + + &mg_drag_nml + gmax = 1., + acoef = 1., + do_conserve_energy = .true., + source_of_sgsmtn = 'computed' +/ + + µphys_rad_nml + lwem_form = 'fuliou' +/ + + &moist_conv_nml + beta = 0.0 +/ + + &moist_processes_nml + do_lsc=.false., do_strat=.true., do_mca=.false., do_ras=.true., + do_donner_deep = .false., + do_diag_clouds = .false., do_cmt=.true., + do_rh_clouds = .false., + do_gust_cv = .false. + include_donmca_in_cosp = .false. +/ + + &monin_obukhov_nml + stable_option = 2, + rich_crit = 10.0, + zeta_trans = 0.5 +/ + + &my25_turb_nml + do_thv_stab = .true., + TKEmin = 1.e-8, + AKmin_land = 5., + AKmin_sea = 0. +/ + +&ocean_albedo_nml + ocean_albedo_option = 5 +/ + +&ocean_rough_nml + rough_scheme = 'beljaars' +/ + + &ozone_nml + basic_ozone_type = 'fixed_year' , + ozone_dataset_entry = 1990, 1, 1, 0, 0, 0, + data_name = "ozone", + filename = "o3.climatology.nc" +/ + + &physics_driver_nml + do_modis_yim = .false. +/ + + &rad_output_file_nml + write_data_file=.true. +/ + + &rad_utilities_nml +/ + + &radiation_diag_nml + iradprt_gl = 20, 6, + jradprt_gl = 12, 20, + num_pts_ij = 0 +/ + + &radiation_driver_nml + rad_time_step= 10800, + time_varying_solar_constant = .false., + solar_dataset_entry = 1990,1,1,0,0,0, + rad_package = 'sea_esf', + do_clear_sky_pass=.true., + calc_hemi_integrals = .false., + renormalize_sw_fluxes=.true., + all_step_diagnostics = .true., + zenith_spec = 'diurnally_varying', + use_co2_tracer_field = .false. ! not using co2 tracer field + using_restart_file = .false. +/ + + &radiative_gases_nml + verbose = 3 + gas_printout_freq = 240 + + time_varying_co2 = .false., + co2_variation_type = 'linear', + co2_dataset_entry = 1990,1,1,0,0,0, + co2_specification_type = 'time_series', + co2_floor = 100.0E-06, + co2_ceiling = 1600.0E-06, + co2_data_source = 'input' + + time_varying_ch4 = .false., + ch4_variation_type = 'linear' + ch4_dataset_entry = 1990, 1, 1, 0, 0, 0, + ch4_specification_type = 'time_series' + ch4_data_source = 'input' + + time_varying_n2o = .false., + n2o_variation_type = 'linear' + n2o_dataset_entry = 1990, 1, 1, 0, 0, 0, + n2o_specification_type = 'time_series' + n2o_data_source = 'input' + + time_varying_f11 = .false., + f11_variation_type = 'linear' + f11_dataset_entry = 1990, 1, 1, 0, 0, 0, + f11_specification_type = 'time_series' + f11_data_source = 'input' + + time_varying_f12 = .false., + f12_variation_type = 'linear' + f12_dataset_entry = 1990, 1, 1, 0, 0, 0, + f12_specification_type = 'time_series' + f12_data_source = 'input' + + time_varying_f113 = .false., + f113_variation_type = 'linear' + f113_dataset_entry = 1990, 1, 1, 0, 0, 0, + f113_specification_type = 'time_series' + f113_data_source = 'input' + + time_varying_f22 = .false., + f22_variation_type = 'linear' + f22_dataset_entry = 1990, 1, 1, 0, 0, 0, + f22_specification_type = 'time_series' + f22_data_source = 'input' +/ + + &ras_nml + aratio = 1.0, + modify_pbl=.true. + rn_frac_bot = 0.5, + rn_pbot = 800.0e2, + puplim = 20.0e02, + rn_ptop = 500.0e2, + rn_frac_top = 0.975, + Tokioka_on = .true., + Tokioka_con = 0.025, + Tokioka_plim = 500.0e2, + a = 1.6851, 1.1686, 0.7663, 0.5255, 0.4100, 0.3677, + 0.3151, 0.2216, 0.1521, 0.0750, 0.0000, 0.0000, + 0.0000, 0.0000, 0.0000 +/ + + &rh_based_clouds_nml + cirrus_cld_prop_form = 'part', + cldht_type_form = '93' +/ + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. +/ + + &sealw99_nml + do_thick = .false., + do_nlte = .false., + do_lwcldemiss = .true., + do_n2olbltmpint = .false., + continuum_form = 'ckd2.1', + linecatalog_form = 'hitran_2000', + calc_co2_tfs_on_first_step = .true., + calc_co2_tfs_monthly = .false., + co2_tf_time_displacement = 0.0, + calc_ch4_tfs_on_first_step = .true., + calc_ch4_tfs_monthly = .false., + ch4_tf_time_displacement = 0.0, + calc_n2o_tfs_on_first_step = .true., + calc_n2o_tfs_monthly = .false., + n2o_tf_time_displacement = 0.0, + verbose = 5 +/ + + &shortwave_driver_nml + do_cmip_diagnostics = .true., + calculate_volcanic_sw_heating = .false., + swform = 'esfsw99' +/ + + &stable_bl_turb_nml + alsm = 500.0, + alsh = 500.0 +/ + + &strat_cloud_nml + do_old_snowmelt = .true. + U00 = 0.800, + U00_profile = .true., + rthresh = 8.0, + Dmin = 1.0e-07, + n_land = 300.e6, + diff_thresh = 0.1, + mc_thresh = 0.001, + eros_scale = 1.e-6, + eros_choice = .true., + eros_scale_c = 8.e-6, + eros_scale_t = 5.e-5, + super_choice = .true., + tracer_advec = .true. +/ + +&topography_nml + topog_file = 'INPUT/navy_topography.data.nc' +/ + + &vert_diff_driver_nml + do_conserve_energy = .true. +/ + + &vert_turb_driver_nml + use_tau = .false., + gust_scheme = 'beljaars', + do_mellor_yamada = .false., + do_entrain = .true., + do_edt = .false., + do_diffusivity = .false., + do_stable_bl = .true., + do_shallow_conv = .false. +/ + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' +/ + + + &cana_nml + turbulence_to_use = "lm3v" + init_co2 = 286.0e-6 + canopy_air_mass_for_tracers = 10.0 +/ + &glac_data_nml + use_lm2_awc = .true., + rsa_exp_global = 10., + dat_emis_dry = 1., + dat_emis_sat = 1., +/ + &glac_nml + conserve_glacier_mass = .true. + lm2 = .true. +/ + &harvesting_nml + do_harvesting = .FALSE. !!! turn on for LAND USE + grazing_intensity = 0.25 + grazing_residue = 0.1 + frac_wood_wasted_harv = 0.25 + frac_wood_wasted_clear = 0.25 + !frac_wood_fast = ONETHIRD + !frac_wood_med = ONETHIRD + !frac_wood_slow = ONETHIRD + crop_seed_density = 0.1 +/ + &lake_data_nml + lake_to_use = 'from-rivers' + num_l = 20, + dat_emis_dry = 1., + dat_emis_sat = 1., + dat_heat_capacity_ref = 0., + f_iso_liq = 0.02, 0.01 + f_iso_ice = 0.02, 0.01 + f_vol_liq = 0.003, 0. + f_vol_ice = 0.003, 0. + f_geo_liq = 0., 0. + f_geo_ice = 0., 0. +/ + &lake_nml + albedo_to_use = 'brdf-params' + float_ice_to_top = .true. +/ + &land_debug_nml + watch_point = 0,0,0,1 +/ + &land_model_nml + layout = 1,0 + io_layout = 1,1 + tau_snow_T_adj = 604800. +/ + &landuse_nml + do_landuse_change = .false., !!! turn on for LAND USE + input_file = 'INPUT/landuse.nc' +/ + &river_nml + dt_slow = 86400. + land_area_called_cellarea = .true. + all_big_outlet_ctn0 = .true. +/ + &river_physics_nml + lake_sfc_w_min = 20. +/ + &snow_data_nml + emis_snow_max = 1. + emis_snow_min = 1. + z0_momentum = 0.01 + num_l = 5 + dz = 0.05, 0.2, 0.5, 0.2, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0 + f_iso_cold = 0.90, 0.60 + f_vol_cold = 0.09, 0.13 + f_geo_cold = 0.00, 0.00 + f_iso_warm = 0.90, 0.60 + f_vol_warm = 0.09, 0.13 + f_geo_warm = 0.00, 0.00 + depth_crit = 0.05 +/ + &snow_nml + min_snow_mass = 1.e-10 + max_snow = 1000. + albedo_to_use = 'brdf-params' +/ + &soil_data_nml + dat_emis_dry = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_emis_sat = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_tf_depr = 2., 2., 2., 2., 2., 2., 2., 2., 2. + geohydrology_to_use = 'hill_ar5' + gw_scale_soil_depth = 10. + freeze_factor = 2.0 + comp = 1e-4 + num_l = 20 + dz = 0.020, 0.040, 0.040, 0.050, 0.05, 0.100, 0.10, 0.200, 0.200, 0.2, + 0.40, 0.40, 0.40, 0.4, 0.4, 1.0, 1.0, 1.0, 1.5, 2.5 +/ + &soil_nml + init_w = 500. + albedo_to_use = 'brdf-maps' + uptake_to_use = 'darcy2d-linearized' + uptake_oneway = .true. + active_layer_drainage_acceleration = 100. + write_soil_carbon_restart = .FALSE. !To reproduce siena answers +/ + &static_veg_nml + use_static_veg = .FALSE. + timeline = 'loop' + start_loop = 2420, 1, 1, 0, 0, 0 + end_loop = 2470, 1, 1, 0, 0, 0 + fill_land_mask = .TRUE. +/ + &topo_rough_nml + use_topo_rough = .true. + max_topo_rough = 100.0 + topo_rough_factor = 0.01 +/ + &vegn_data_nml + vegn_to_use = 'uniform' + K1=10, + K2=0.1, + fsc_liv=0.9, + fsc_wood=0.45, + c1(4) = 0.3 + c2(4) = 0.3 + Vmax = 2.0E-5, 2.0E-5, 2.0E-5, 2.0E-5, 1.50E-5, + m_cond = 4., 9., 9., 7., 7., + alpha_phot = 0.05, 0.06, 0.06, 0.06, 0.06, + gamma_resp = 0.03, 0.02, 0.02, 0.02, 0.02, + fact_crit_phen(0:4) = 0., 0., 0., 0., 0. + fact_crit_fire(0:4) = 0., 0., 0., 0., 0. + cnst_crit_phen(0:4) = 0.30, 0.15, 0.15, 0.30, 0.30 + cnst_crit_fire(0:4) = 0.15, 0.40, 0.15, 0.15, 0.15 + wet_leaf_dreg(0:4) = .3, .3, .3, .3, .3 + ksi = 0, 0, 0, 0, 0, + leaf_refl(0:4,1) = 0.11, 0.11, 0.10, 0.10, 0.10 + leaf_refl(0:4,2) = 0.58, 0.58, 0.5, 0.5, 0.5, + dat_root_zeta(0:4) = 0.35212, 0.17039, 0.28909, 0.25813, 0.17039 + critical_root_density = 0.0, + tau_drip_s = 259200.0 + cmc_lai(0:4) = 0.02, 0.02, 0.02, 0.02, 0.02 + csc_lai(0:4) = 0.2, 0.2, 0.2, 0.2, 0.2 + dat_snow_crit = 0.0167, 0.0167, 0.0333, 0.2, 0.2 + t_transp_min = 268. + srl(0:1) = 112.0e3, 150.0e3 + root_perm = 14*5e-7 + alpha(1,3) = 4 + leaf_age_tau(2) = 150 + smoke_fraction = 0.9, 0.9, 0.6, 0.6, 0.6 + tg_c3_thresh = 1 + phen_ev2 = 0.925 + cmc_eps = 0.01 + alpha(0:4,6) = 0.0, 0.0, 0.012, 0.012, 0.012 + treefall_disturbance_rate = 0.175, 0.185, 0.025, 0.0275, 0.027 +/ + &vegn_nml + init_Tv = 288.0 + rad_to_use = 'two-stream' + photosynthesis_to_use = 'leuning' + snow_rad_to_use = 'paint-leaves' + co2_to_use_for_photosynthesis ='interactive' + co2_for_photosynthesis = 286.0e-6 + do_cohort_dynamics = .TRUE., + do_patch_disturbance = .TRUE., + do_phenology = .TRUE., + do_biogeography = .TRUE., + do_seed_transport = .TRUE., + tau_smooth_ncm = 22.0 +/ diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.gnu b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.gnu new file mode 100644 index 0000000000..4ec6641832 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.gnu @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 693135.000, 0, En 6.941081183736E-01, CFL 0.00000, SL 4.5150E-11, M 1.37957E+21, S 34.7203, T 3.6137, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 693135.250, 0, En 7.168082413450E-01, CFL 0.14147, SL -8.2286E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.23E-15, Se 4.16E-14, Te 1.87E-14 + 6, 693135.500, 0, En 7.184162784984E-01, CFL 0.10971, SL -5.8906E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.43E-15, Se 4.74E-14, Te 2.08E-14 + 9, 693135.750, 0, En 7.180672590859E-01, CFL 0.17665, SL -4.5089E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.50E-15, Se 4.97E-14, Te 2.26E-14 + 12, 693136.000, 0, En 7.173371548813E-01, CFL 0.20176, SL -3.7073E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.01E-14, Te 2.32E-14 diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.intel b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.intel new file mode 100644 index 0000000000..48c873fcfd --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.intel @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 693135.000, 0, En 6.941081183736E-01, CFL 0.00000, SL 4.5150E-11, M 1.37957E+21, S 34.7203, T 3.6137, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 693135.250, 0, En 7.168022426153E-01, CFL 0.14147, SL -8.2286E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.23E-15, Se 4.16E-14, Te 1.87E-14 + 6, 693135.500, 0, En 7.184804548239E-01, CFL 0.10971, SL -5.8905E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.43E-15, Se 4.74E-14, Te 2.08E-14 + 9, 693135.750, 0, En 7.180387560656E-01, CFL 0.17994, SL -4.5058E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.50E-15, Se 4.98E-14, Te 2.26E-14 + 12, 693136.000, 0, En 7.173066818119E-01, CFL 0.20544, SL -3.7016E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.03E-14, Te 2.32E-14 diff --git a/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.pgi b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.pgi new file mode 100644 index 0000000000..25189de0ae --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS/AM2_MOM6i_1deg/timestats.pgi @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 693135.000, 0, En 6.941101031888E-01, CFL 0.00000, SL 4.4642E-11, M 1.37957E+21, S 34.7203, T 3.6137, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 693135.250, 0, En 7.168176085266E-01, CFL 0.14147, SL -8.0995E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.23E-15, Se 4.16E-14, Te 1.87E-14 + 6, 693135.500, 0, En 7.184381114806E-01, CFL 0.10943, SL -5.7345E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.43E-15, Se 4.74E-14, Te 2.08E-14 + 9, 693135.750, 0, En 7.179320907187E-01, CFL 0.15832, SL -4.3354E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.50E-15, Se 4.98E-14, Te 2.26E-14 + 12, 693136.000, 0, En 7.172676565134E-01, CFL 0.19696, SL -3.5259E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.01E-14, Te 2.32E-14 diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_input b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_input new file mode 100644 index 0000000000..104050cc29 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_input @@ -0,0 +1,639 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in AM2_MOM6i_1deg. + This particular file is for the example in SIS2. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_kappa_shear === +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "B" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "B" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_memory.h b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_memory.h new file mode 100644 index 0000000000..927abe339c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_memory.h @@ -0,0 +1,45 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This include file determines the compile-time memory settings * +!* for the Modular Ocean Model (MOM), versions 6 and later. * +!********+*********+*********+*********+*********+*********+*********+* + +! Specify the numerical domain. +#define NIGLOBAL_ 360 +#define NJGLOBAL_ 210 + ! NIGLOBAL_ and NJGLOBAL_ are the number of thickness + ! grid points in the zonal and meridional + ! directions of the physical domain. +#define NK_ 63 + ! The number of layers. + +#define STATIC_MEMORY_ + ! If STATIC_MEMORY_ is defined, the principle + ! variables will have sizes that are statically + ! determined at compile time. Otherwise the + ! sizes are not determined until run time. The + ! STATIC option is substantially faster, but + ! does not allow the PE count to be changed at + ! run time. + +#define NIPROC_ 10 + ! NIPROC_ is the number of processors in the + ! x-direction. +#define NJPROC_ 6 + ! NJPROC_ is the number of processors in the + ! y-direction. + +#define MAX_FIELDS_ 80 + ! The maximum permitted number (each) of + ! restart variables, time derivatives, etc. + ! This is mostly used for the size of pointer + ! arrays, so it should be set generously. + +#define NIHALO_ 4 +#define NJHALO_ 4 + ! NIHALO_ and NJHALO_ are the sizes of the + ! memory halos on each side. +#define BTHALO_ 10 + ! BTHALO_ is the size of the memory halos in + ! the barotropic solver. + +#include diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_override b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_override new file mode 100644 index 0000000000..5d67420dc4 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_override @@ -0,0 +1 @@ +! Blank file in which we can put "overrides" for parameters diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.all b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.all new file mode 100644 index 0000000000..c2a60b29c6 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.all @@ -0,0 +1,1655 @@ +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +LAYOUT = 0, 0 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to + ! calculate accelerations and the mass for conservation + ! properties, or with BOUSSINSEQ false to convert some + ! parameters from vertical units of m to kg m-2. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first + ! in parts of the code that use directionally split + ! updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minumum layer thickness, usually one-Angstrom. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths + ! at velocity points. Otherwise the effects of of + ! topography are entirely determined from thickness points. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +AVAILABLE_DIAGS_FILE = "available_diags.000030" ! default = "available_diags.000030" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +SPLIT = True ! [Boolean] default = True + ! Use the split time stepping if true. +USE_LEGACY_SPLIT = False ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state + ! variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and + ! salinity with an equation of state. If USE_EOS is + ! true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, + ! including buoyancy forcing and mass gain or loss, + ! before stepping the dynamics forward. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is + ! true. This assumes that KD = KDML = 0.0 and that + ! there is no buoyancy forcing, but makes the model + ! faster by eliminating subroutine calls. +BULKMIXEDLAYER = True ! [Boolean] default = True + ! If true, use a Kraus-Turner-like bulk mixed layer + ! with transitional buffer layers. Layers 1 through + ! NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. + ! The default is the same setting as ENABLE_THERMODYNAMICS. +USE_REGRIDDING = False ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for + ! debugging truncations. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure + ! over the coupling time step, using the specified value + ! at the end of the step. +SSH_SMOOTHING_PASSES = 0.0 ! [nondim] default = 0.0 + ! The number of Laplacian smoothing passes to apply to the + ! the sea surface height that is reported to the sea-ice. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate + ! density. (1 Pa = 1e4 dbar, so 2e7 is commonly used.) + ! This is only used if USE_EOS and ENABLE_THERMODYNAMICS + ! are true. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state + ! should be used. Currently, the valid choices are + ! "LINEAR", "UNESCO", and "WRIGHT". + ! This is only used if USE_EOS is true. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code + ! code for the integrals of density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be + ! used for the freezing point. Currently, the valid + ! choices are "LINEAR", "MILLERO_78". +TFREEZE_S0_P0 = 0.0 ! [deg C] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the freezing potential temperature at + ! S=0, P=0. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure. +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +LARGE_FILE_SUPPORT = True ! [Boolean] default = True + ! If true, use the file-size limits with NetCDF large + ! file support (4Gb), otherwise the limit is 2Gb. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a + ! preprocessor macro, use the MOM_generic_tracer packages. + +! === module ideal_age_example === +DO_IDEAL_AGE = True ! [Boolean] default = True + ! If true, use an ideal age tracer that is set to 0 age + ! in the mixed layer and ages at unit rate in the interior. +DO_IDEAL_VINTAGE = False ! [Boolean] default = False + ! If true, use an ideal vintage tracer that is set to an + ! exponentially increasing value in the mixed layer and + ! is conserved thereafter. +DO_IDEAL_AGE_DATED = False ! [Boolean] default = False + ! If true, use an ideal age tracer that is everywhere 0 + ! before IDEAL_AGE_DATED_START_YEAR, but the behaves like + ! the standard ideal age tracer - i.e. is set to 0 age in + ! the mixed layer and ages at unit rate in the interior. +AGE_IC_FILE = "" ! default = "" + ! The file in which the age-tracer initial values can be + ! found, or an empty string for internal initialization. +AGE_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, AGE_IC_FILE is in depth space, not layer space +MASK_MASSLESS_TRACERS = False ! [Boolean] default = False + ! If true, the tracers are masked out in massless layer. + ! This can be a problem with time-averages. +TRACERS_MAY_REINIT = False ! [Boolean] default = False + ! If true, tracers may go through the initialization code + ! if they are not found in the restart files. Otherwise + ! it is a fatal error if the tracers are not found in the + ! restart files of a restarted run. + +! === module MOM_OCMIP2_CFC === +CFC_IC_FILE = "" ! default = "" + ! The file in which the CFC initial values can be + ! found, or an empty string for internal initialization. +CFC_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, CFC_IC_FILE is in depth space, not layer space +CFC11_A1 = 3501.8 ! [nondim] default = 3501.8 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A2 = -210.31 ! [degC-1] default = -210.31 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A3 = 6.1851 ! [degC-2] default = 6.1851 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A4 = -0.07513 ! [degC-3] default = -0.07513 + ! A coefficient in the Schmidt number of CFC11. +CFC12_A1 = 3845.4 ! [nondim] default = 3845.4 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A2 = -228.95 ! [degC-1] default = -228.95 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A3 = 6.1908 ! [degC-2] default = 6.1908 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A4 = -0.06743 ! [degC-3] default = -0.06743 + ! A coefficient in the Schmidt number of CFC12. +CFC11_D1 = -229.9261 ! [none] default = -229.9261 + ! A coefficient in the solubility of CFC11. +CFC11_D2 = 319.6552 ! [hK] default = 319.6552 + ! A coefficient in the solubility of CFC11. +CFC11_D3 = 119.4471 ! [none] default = 119.4471 + ! A coefficient in the solubility of CFC11. +CFC11_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC11. +CFC11_E1 = -0.142382 ! [PSU-1] default = -0.142382 + ! A coefficient in the solubility of CFC11. +CFC11_E2 = 0.091459 ! [PSU-1 hK-1] default = 0.091459 + ! A coefficient in the solubility of CFC11. +CFC11_E3 = -0.0157274 ! [PSU-1 hK-2] default = -0.0157274 + ! A coefficient in the solubility of CFC11. +CFC12_D1 = -218.0971 ! [none] default = -218.0971 + ! A coefficient in the solubility of CFC12. +CFC12_D2 = 298.9702 ! [hK] default = 298.9702 + ! A coefficient in the solubility of CFC12. +CFC12_D3 = 113.8049 ! [none] default = 113.8049 + ! A coefficient in the solubility of CFC12. +CFC12_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC12. +CFC12_E1 = -0.143566 ! [PSU-1] default = -0.143566 + ! A coefficient in the solubility of CFC12. +CFC12_E2 = 0.091015 ! [PSU-1 hK-1] default = 0.091015 + ! A coefficient in the solubility of CFC12. +CFC12_E3 = -0.0153924 ! [PSU-1 hK-2] default = -0.0153924 + ! A coefficient in the solubility of CFC12. +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. +COORD_VAR = "Layer" ! default = "Layer" + ! The variable in COORD_FILE that is to be used for the + ! coordinate densities. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +TOPO_FILE = "topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative. +APPLY_OBC_U_FLATHER_EAST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the eastern + ! side of the global domain +APPLY_OBC_U_FLATHER_WEST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the western + ! side of the global domain +APPLY_OBC_V_FLATHER_NORTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the northern + ! side of the global domain +APPLY_OBC_V_FLATHER_SOUTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the southern + ! side of the global domain +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ROTATION = "2omegasinlat" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +USE_OLD_HINTERP = True ! [Boolean] default = True + ! If true, use older version of hinterp, + ! in order to reproduce siena answers.Recommended setting is False +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = False ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated + ! initial conditions. +Z_INIT_ALE_REMAPPING = False ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAPPING_SCHEME = "PPM_IH4" ! default = "PPM_IH4" + ! The remapping scheme to use if using Z_INIT_ALE_REMAPPING + ! is True. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +FIT_TO_TARGET_DENSITY_IC = True ! [Boolean] default = True + ! If true, all the interior layers are adjusted to + ! their target densities using mostly temperature + ! This approach can be problematic, particularly in the + ! high latitudes. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities + ! are specified for a new run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! paremters TORUS_U and TORUS_V). + ! USER - call a user modified routine. +CONVERT_THICKNESS_UNITS = False ! [Boolean] default = False + ! If true, convert the thickness initial conditions from + ! units of m to kg m-2 or vice versa, depending on whether + ! BOUSSINESQ is defined. This does not apply if a restart + ! file is read. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge + ! tsunamis when a large surface pressure is applied. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. + ! The exact location and properties of those sponges are + ! specified via SPONGE_CONFIG. +APPLY_OBC_U = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! u-points, with the configuration controlled by OBC_CONFIG +APPLY_OBC_V = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! v-points, with the configuration controlled by OBC_CONFIG + +! === module MOM_MEKE === +MEKE_DAMPING = 0.0 ! [s-1] default = 0.0 + ! The local depth-indepented MEKE dissipation rate. +MEKE_CD_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scaling for the bottom drag applied to MEKE. This + ! should be less than 1 to account for the surface + ! intensification of MEKE and the fraction of MEKE that + ! may be temporarily stored as potential energy. +MEKE_GMCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_FRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into + ! MEKE. If MEKE_FRCOEFF is negative, this conversion + ! is not used or calculated. +MEKE_BGSRC = 0.0 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KH = -1.0 ! [m2 s-1] default = -1.0 + ! A background lateral diffusivity of MEKE, or a + ! Use a negative value to not apply lateral diffusion to MEKE. +MEKE_DTSCALE = 1.0 ! [nondim] default = 1.0 + ! A scaling factor to accelerate the time evolution of MEKE. +MEKE_KHCOEFF = -1.0 ! [nondim] default = -1.0 + ! A scaling factor which is combined with the square root + ! of MEKE times the grid-cell area to give MEKE%Kh, or a + ! negative value not to calculate MEKE%Kh. + ! This factor must be >0 for MEKE to contribute to the + ! thickness/tracer mixing in the rest of the model. +MEKE_USCALE = 1.0 ! [m s-1] default = 1.0 + ! The background velocity that is combined with MEKE to + ! calculate the bottom drag. +CDRAG = 0.003 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of + ! the velocity field to the bottom stress. +MEKE_VISC_DRAG = False ! [Boolean] default = False + ! If true, use the vertvisc_type to calculate the bottom + ! drag acting on MEKE. +MEKE_KHTH_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_RD_MAX_SCALE = True ! [nondim] default = True + ! If true, the maximum length scale used by MEKE is + ! the deformation radius. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled + ! away when the first baroclinic deformation radius is + ! well resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +KH_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if + ! RESOLN_SCALED_... is true, as + ! F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). +KH_RES_FN_POWER = 2 ! [nondim] default = 2 + ! The power of dx/Ld in the resolution function. Any + ! positive integer may be used, although even integers + ! are more efficient to calculate. Setting this greater + ! than 100 results in a step-function being used. +TIDES = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing. +BE = 0.6 ! [nondim] default = 0.6 + ! If SPLIT is true, BE determines the relative weighting + ! of a 2nd-order Runga-Kutta baroclinic time stepping + ! scheme (0.5) and a backward Euler scheme (1) that is + ! used for the Coriolis and inertial terms. BE may be + ! from 0.5 to 1, but instability may occur near 0.5. + ! BE is also applicable if SPLIT is false and USE_RK2 + ! is true. +BEGW = 0.0 ! [nondim] default = 0.0 + ! If SPILT is true, BEGW is a number from 0 to 1 that + ! controls the extent to which the treatment of gravity + ! waves is forward-backward (0) or simulated backward + ! Euler (1). 0 is almost always used. + ! If SPLIT is false and USE_RK2 is true, BEGW can be + ! between 0 and 0.5 to damp gravity waves. +SPLIT_BOTTOM_STRESS = False ! [Boolean] default = False + ! If true, provide the bottom stress calculated by the + ! vertical viscosity to the barotropic solver. +BT_USE_LAYER_FLUXES = True ! [Boolean] default = True + ! If true, use the summed layered fluxes plus an + ! adjustment due to the change in the barotropic velocity + ! in the barotropic continuity equation. +CONTINUITY_SCHEME = "PPM" ! default = "PPM" + ! CONTINUITY_SCHEME selects the discretization for the + ! continuity solver. The only valid value currently is: + ! PPM - use a positive-definite (or monotonic) + ! piecewise parabolic reconstruction solver. +MONOTONIC_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order + ! (arithmetic mean) interpolation of the edge values. + ! This may give better PV conservation propterties. While + ! it formally reduces the accuracy of the continuity + ! solver itself in the strongly advective limit, it does + ! not reduce the overall order of accuracy of the dynamic + ! core. +UPWIND_1ST_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind + ! continuity solver. This scheme is highly diffusive + ! but may be useful for debugging or in single-column + ! mode where its minimal stensil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 1.0E-06 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a + ! relative CFL change up to 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the + ! tracer cell areas when estimating CFL numbers. The + ! default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity + ! based criterion and only stop if the iteration is + ! better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for + ! corrections in strongly viscous columns. +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise + ! free slip boundary conditions are assumed. The + ! implementation of the free slip BCs on a C-grid is much + ! cleaner than the no slip BCs. The use of free slip BCs + ! is strongly encouraged, and no slip BCs are not used with + ! the biharmonic viscosity. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration + ! due to the kinetic energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV + ! advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated + ! with a finite volume form that analytically integrates + ! the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as + ! described in Adcroft et al., O. Mod. (2008). +MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +BIHARMONIC = True ! [Boolean] default = True + ! If true, se a biharmonic horizontal viscosity. + ! BIHARMONIC may be used with LAPLACIAN. +KH = 0.0 ! [m2 s-1] default = 0.0 + ! The background Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +SMAGORINSKY_KH = False ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable. +BETTER_BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable with a better bounding than just BOUND_KH. +AH = 0.0 ! [m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable. +BETTER_BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable with a better bounding than just BOUND_AH. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. +BOUND_CORIOLIS_BIHARM = True ! [Boolean] default = True + ! If true use a viscosity that increases with the square + ! of the velocity shears, so that the resulting viscous + ! drag is of comparable magnitude to the Coriolis terms + ! when the velocity differences between adjacent grid + ! points is 0.5*BOUND_CORIOLIS_VEL. The default is the + ! value of BOUND_CORIOLIS (or false). +BOUND_CORIOLIS_VEL = 6.0 ! [m s-1] default = 6.0 + ! The velocity scale at which BOUND_CORIOLIS_BIHARM causes + ! the biharmonic drag to have comparable magnitude to the + ! Coriolis acceleration. The default is set by MAXVEL. +HORVISC_BOUND_COEF = 0.8 ! [nondim] default = 0.8 + ! The nondimensional coefficient of the ratio of the + ! viscosity bounds to the theoretical maximum for + ! stability without considering other terms. + +! === module MOM_vert_friction === +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag + ! law of the form c_drag*|u|*u. The velocity magnitude + ! may be an assumed value or it may be based on the + ! actual velocity in the bottommost HBBL, depending on + ! LINEAR_DRAG. +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the + ! topmost HMIX_STRESS of fluid (like in HYCOM), and KVML + ! may be set to a very small value. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +HARMONIC_VISC = False ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for + ! calculating the vertical viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an + ! absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity + ! components to be truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations + ! to be reported; the default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0 + ! The time over which the CFL trunction value is ramped + ! up at the beginning of the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when + ! ramping up CFL_TRUNC. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of colums of truncations that any PE + ! will write out during a run. + +! === module MOM_set_visc === +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag + ! law is cdrag*DRAG_BG_VEL*u. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivitives for temperature or salt + ! based on double-diffusive paramaterization from MOM4/KPP. +PRANDTL_TURB = 0.0 ! [nondim] default = 0.0 + ! The turbulent Prandtl number applied to shear + ! instability. +BULK_RI_ML_VISC = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. By default, + ! BULK_RI_ML_VISC = BULK_RI_ML or 0. +TKE_DECAY_VISC = 10.0 ! [nondim] default = 10.0 + ! TKE_DECAY_VISC relates the vertical rate of decay of + ! the TKE available for mechanical entrainment to the + ! natural Ekman depth for use in calculating the dynamic + ! mixed layer viscosity. By default, + ! TKE_DECAY_VISC = TKE_DECAY or 0. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_USE_EOS = False ! [Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-top viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are + ! averaged for the drag law under an ice shelf. By + ! default this is the same as HBBL +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the top boundary layer. +SMAG_CONST_CHANNEL = 0.15 ! [nondim] default = 0.15 + ! The nondimensional Laplacian Smagorinsky constant used + ! in calculating the channel drag if it is enabled. The + ! default is to use the same value as SMAG_LAP_CONST if + ! it is defined, or 0.15 if it is not. The value used is + ! also 0.15 if the specified value is negative. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +GRADUAL_BT_ICS = False ! [Boolean] default = False + ! If true, adjust the initial conditions for the + ! barotropic solver to the values from the layered + ! solution over a whole timestep instead of instantly. + ! This is a decent approximation to the inclusion of + ! sum(u dh_dt) while also correcting for truncation errors. +BT_USE_WIDE_HALOS = True ! [Boolean] default = True + ! If true, use wide halos and march in during the + ! barotropic time stepping for efficiency. +BTHALO = 0 ! default = 0 + ! The minimum halo size for the barotropic solver. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +USE_BT_CONT_TYPE = True ! [Boolean] default = True + ! If true, use a structure with elements that describe + ! effective face areas from the summed continuity solver + ! as a function the barotropic flow in coupling between + ! the barotropic and baroclinic flow. This is only used + ! if SPLIT is true. +NONLINEAR_BT_CONTINUITY = False ! [Boolean] default = False + ! If true, use nonlinear transports in the barotropic + ! continuity equation. This does not apply if + ! USE_BT_CONT_TYPE is true. +BT_MASS_SOURCE_LIMIT = 0.0 ! [nondim] default = 0.0 + ! The fraction of the initial depth of the ocean that can + ! be added to or removed from the bartropic solution + ! within a thermodynamic time step. By default this is 0 + ! for no correction. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +DYNAMIC_SURFACE_PRESSURE = False ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +SADOURNY = True ! [Boolean] default = True + ! If true, the Coriolis terms are discretized with the + ! Sadourny (1975) energy conserving scheme, otherwise + ! the Arakawa & Hsu scheme is used. If the internal + ! deformation radius is not resolved, the Sadourny scheme + ! should probably be used. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +CLIP_BT_VELOCITY = False ! [Boolean] default = False + ! If true, limit any velocity components that exceed + ! MAXVEL. This should only be used as a desperate + ! debugging measure. +MAXCFL_BT_CONT = 0.1 ! [nondim] default = 0.1 + ! The maximum permitted CFL number associated with the + ! barotropic accelerations from the summed velocities + ! times the time-derivatives of thicknesses. +DT_BT_FILTER = -0.25 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +G_BT_EXTRA = 0.0 ! [nondim] default = 0.0 + ! A nondimensional factor by which gtot is enhanced. +SSH_EXTRA = 10.0 ! [m] default = 10.0 + ! An estimate of how much higher SSH might get, for use + ! in calculating the safe external wave speed. The + ! default is the minimum of 10 m or 5% of MAXIMUM_DEPTH. +DEBUG_BT = False ! [Boolean] default = False + ! If true, write out verbose debugging data within the + ! barotropic time-stepping loop. The data volume can be + ! quite large if this is true. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height + ! diffusivities to horizonally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is + ! not reliable and is scaled away. This is used with + ! FULL_THICKNESSDIFFUSE. +KD_SMOOTH = 1.0E-06 ! [not defined] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate + ! more sensible values of T & S into thin layers. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_MIX_FIRST = 0.0 ! [nondim] default = 0.0 + ! The fraction of the mixed layer mixing that is applied + ! before interior diapycnal mixing. 0 by default. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances as separate set of + ! equations for the internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers + ! are kept consistent with their target densities. + ! Otherwise the properties of massless layers evolve + ! diffusively to match massive neighboring layers. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at + ! the bottom into the interior as though a diffusivity of + ! KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to + ! tracers, especially in massless layers near the bottom. + ! The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will + ! allow for explicitly specified bottom fluxes. The + ! entrainment at the bottom is at least sqrt(Kd_BBL_tr*dt) + ! over the same distance. +FLUX_RI_MAX = 0.2 ! [not defined] default = 0.2 + ! The flux Richardson number where the stratification is + ! large enough that N2 > omega2. The full expression for + ! the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_EFOLD_COEFF = 0.2 ! [nondim] default = 0.2 + ! A coefficient that is used to scale the penetration + ! depth for turbulence below the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_KD_MAX = 0.001 ! [m2 s-1] default = 0.001 + ! The maximum diapycnal diffusivity due to turbulence + ! radiated from the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_APPLY_TKE_DECAY = True ! [Boolean] default = True + ! If true, apply the same exponential decay to ML_rad as + ! is applied to the other surface sources of TKE in the + ! mixed layer code. This is only used if ML_RADIATION is true. +MSTAR = 0.3 ! [units=nondim] default = 0.3 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by + ! bottom drag drives BBL diffusion. This is only + ! used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 0.0 ! [m] default = 0.0 + ! The maximum decay scale for the BBL diffusion, or 0 + ! to allow the mixing to penetrate as far as + ! stratification and rotation permit. The default is 0. + ! This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh + ! profile of background diapycnal diffusivity with depth. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +HENYEY_N0_2OMEGA = 20.0 ! [nondim] default = 20.0 + ! The ratio of the typical Buoyancy frequency to twice + ! the Earth's rotation period, used with the Henyey + ! scaling from the mixing. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, + ! like CM2.1/CM2M. There is no physical justification + ! for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +KD_MAX = -1.0 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added + ! everywhere without any filtering or scaling. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "STLAURENT_02" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +LEE_WAVE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an lee wave driven dissipation scheme to + ! drive diapycnal mixing, along the lines of Nikurashin + ! (2010) and using the St. Laurent et al. (2002) + ! and Simmons et al. (2004) vertical profile +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower + ! bound of Kd (a floor). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +MU_ITIDES = 0.2 ! [nondim] default = 0.2 + ! A dimensionless turbulent mixing efficiency used with + ! INT_TIDE_DISSIPATION, often 0.2. +GAMMA_ITIDES = 0.3333 ! [nondim] default = 0.3333 + ! The fraction of the internal tidal energy that is + ! dissipated locally with INT_TIDE_DISSIPATION. + ! THIS NAME COULD BE BETTER. +MIN_ZBOT_ITIDES = 0.0 ! [m] default = 0.0 + ! Turn off internal tidal dissipation when the total + ! ocean depth is less than this value. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +UTIDE = 0.0 ! [m s-1] default = 0.0 + ! The constant tidal amplitude used with INT_TIDE_DISSIPATION. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tideamp.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. + ! Jackson et al find values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the + ! density and shear profiles before solving for the + ! diffusivities. Defaults to value of KD. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the + ! Richardson number in the kappa source term in the + ! Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to + ! stratification (i.e. proportional to N*tke). + ! The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. + ! proportional to |S|*tke). The values found by Jackson + ! et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the + ! kappa equation. The values found by Jackson et al. are + ! in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the + ! buoyancy and shear scales in the diffusivity equation, + ! Set this to 0 (the default) to eliminate the shear scale. + ! This is only used if USE_JACKSON_PARAM is true. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. + ! Iteration stops when changes between subsequent + ! iterations are smaller than this everywhere in a + ! column. The peak diffusivities usually converge most + ! rapidly, and have much smaller errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration + ! of the kappa equation. TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring + ! massive layers in this calculation. The default is + ! true and I can think of no good reason why it should + ! be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! [nondim] default = 13 + ! The maximum number of iterations that may be used to + ! estimate the time-averaged diffusivity. +DEBUG_KAPPA_SHEAR = False ! [Boolean] default = False + ! If true, write debugging data for the kappa-shear code. + ! Caution: this option is _very_ verbose and should only + ! be used in single-column mode! +KAPPA_SHEAR_MERGE_ML = True ! [Boolean] default = True + ! If true, combine the mixed layers together before + ! solving the kappa-shear equations. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +USE_KPP = False ! [Boolean] default = False + ! If true, turns on the [CVmix] KPP scheme of Large et al., 1984, + ! to calculate diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +APPLY_NONLOCAL_TRANSPORT = True ! [Boolean] default = True + ! If True, applies the non-local transport to heat and scalars. + ! If False, calculates the non-local transport and tendencies but + ! purely for diagnostic purposes. +RI_CRIT = 0.3 ! [nondim] default = 0.3 + ! Critical bulk Richardson number used to define depth of the + ! Oceab Boundary Layer (OBL). +VON_KARMAN = 0.4 ! [nondim] default = 0.4 + ! von Karman constant. +INTERP_TYPE = "quadratic" ! default = "quadratic" + ! Type of interpolation to use to determine the OBL depth. + ! Allowed types are: linear, quadratic, cubic. +COMPUTE_EKMAN = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the Ekman depth. +COMPUTE_MONIN_OBUKHOV = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the + ! Monin-Obukhov depth. +CS = 98.96 ! [nondim] default = 98.96 + ! Parameter for computing velocity scale function. +DEEP_OBL_OFFSET = 0.0 ! [m] default = 0.0 + ! If non-zero, the distance above the bottom to which the OBL is clipped + ! if it would otherwise reach the bottom. The smaller of this and 0.1D is used. +CORRECT_SURFACE_LAYER_AVERAGE = False ! [Boolean] default = False + ! If true, applies a correction step to the averaging of surface layer + ! properties. +FIRST_GUESS_SURFACE_LAYER_DEPTH = 0.0 ! [m] default = 0.0 + ! The first guess at the depth of the surface layer used for averaging + ! the surface layer properties. If =0, the top model level properties + ! will be used for the surface layer. If CORRECT_SURFACE_LAYER_AVERAGE=True, a + ! subsequent correction is applied. +NLT_SHAPE = "CVMIX" ! default = "CVMIX" + ! The shape of the nonlocal transport (or redistribution of surface + ! forcina. Allowed values are: + ! CVMIX - Uses the profile from CVmix + ! LINEAR - A linear profile, 1-sigma + ! PARABOLIC - A paroblic profile, (1-sigma)^2 + ! CUBIC - A cubic profile, (1-sigma)^2(1+2*sigma) + ! CUBIC_LMD - The original KPP profile +KPP_ZERO_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, sets both the diffusivity and viscosity from KPP to zero; for testing. +KPP_IS_ADDITIVE = False ! [Boolean] default = False + ! If true, adds KPP diffusivity to the existing diffusivity. If false, replaces exisiting diffusivity with KPP diffusivity wherever the latter is non-zero. +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +USE_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the diffusive convection scheme that + ! increases diapycnal diffusivities at statically unstable + ! interfaces. Relevant parameters are contained in the + ! CONVECTION% parameter block. +CONVECTION% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +KD_CONV = 1.0 ! [m2/s] default = 1.0 + ! DIffusivity used in statically unstable regions of column. +%CONVECTION + +! === module MOM_entrain_diffusive === +CORRECT_DENSITY = True ! [Boolean] default = True + ! If true, and USE_EOS is true, the layer densities are + ! restored toward their target values by the diapycnal + ! mixing, as described in Hallberg (MWR, 2000). +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_THICKNESS = 0.1 ! [m] default = 0.1 + ! The thickness over which to apply geothermal heating. +GEOTHERMAL_DRHO_DT_INPLACE = -0.01 ! [kg m-3 K-1] default = -0.01 + ! The value of drho_dT above which geothermal heating + ! simply heats water in place instead of moving it between + ! isopycnal layers. This must be negative. +GEOTHERMAL_VARNAME = "geo_heat" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === module MOM_mixed_layer === +NSTAR = 0.15 ! [nondim] default = 0.15 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +CONV_DECAY = 0.5 ! [nondim] default = 0.5 + ! CONV_DECAY relates the vertical rate of decay of the + ! convectively released TKE available for penetrating + ! entrainment to the natural Ekman length. +NSTAR2 = 0.15 ! [nondim] default = 0.15 + ! The portion of any potential energy released by + ! convective adjustment that is available to drive + ! entrainment at the base of mixed layer. By default + ! NSTAR2=NSTAR. +BULK_RI_CONVECTIVE = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which convectively released mean + ! kinetic energy is converted to turbulent kinetic + ! energy. By default BULK_RI_CONVECTIVE=BULK_RI_ML. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +ALLOWED_DETRAIN_TEMP_CHG = 0.5 ! [K] default = 0.5 + ! The amount by which temperature is allowed to exceed + ! previous values during detrainment. +ALLOWED_DETRAIN_SALT_CHG = 0.1 ! [PSU] default = 0.1 + ! The amount by which salinity is allowed to exceed + ! previous values during detrainment. +ML_DT_DS_WEIGHT = 6.0 ! [degC PSU-1] default = 6.0 + ! When forced to extrapolate T & S to match the layer + ! densities, this factor (in deg C / PSU) is combined + ! with the derivatives of density with T & S to determine + ! what direction is orthogonal to density contours. It + ! should be a typical value of (dR/dS) / (dR/dT) in + ! oceanic profiles. +BUFFER_LAYER_EXTRAP_LIMIT = -1.0 ! [nondim] default = -1.0 + ! A limit on the density range over which extrapolation + ! can occur when detraining from the buffer layers, + ! relative to the density range within the mixed and + ! buffer layers, when the detrainment is going into the + ! lightest interior layer, nondimensional, or a negative + ! value not to apply this limit. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +RESOLVE_EKMAN = False ! [Boolean] default = False + ! If true, the NKML>1 layers in the mixed layer are + ! chosen to optimally represent the impact of the Ekman + ! transport on the mixed layer TKE budget. Otherwise, + ! the sublayers are distributed uniformly through the + ! mixed layer. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*froz_runoff. +LIMIT_BUFFER_DET_DH_SFC = 0.5 ! [nondim] default = 0.5 + ! The fractional limit in the change between grid points + ! of the surface region (mixed & buffer layer) thickness. +LIMIT_BUFFER_DET_DH_BATHY = 0.2 ! [nondim] default = 0.2 + ! The fraction of the total depth by which the thickness + ! of the surface region (mixed & buffer layer) is allowed + ! to change between grid points. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. +REGULARIZE_SURFACE_DETRAIN = True ! [Boolean] default = True + ! If true, allow the buffer layers to detrain into the + ! interior as a part of the restructuring when + ! REGULARIZE_SURFACE_LAYERS is true. +REG_SFC_DEFICIT_TOLERANCE = 0.5 ! [nondim] default = 0.5 + ! The value of the relative thickness deficit at which + ! to start modifying the layer structure when + ! REGULARIZE_SURFACE_LAYERS is true. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll + ! concentrations are translated into opacities. Currently + ! valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation + ! that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is + ! 10 m-1 - a value for muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PLM" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between + ! along isopycnal mxiing of tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use 1 iteration. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +RESTART_CONTROL = 1 ! default = 1 + ! An integer whose bits encode which restart files are + ! written. Add 2 (bit 1) for a time-stamped file, and odd + ! (bit 0) for a non-time-stamped file. A restart file + ! will be saved at the end of the run segment for any + ! non-negative value. +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit for ENERGYSAVEDAYS. +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "B" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = False ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = False ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +ICE_SALT_CONCENTRATION = 0.005 ! [kg/kg] default = 0.005 + ! The assumed sea-ice salinity needed to reverse engineer the + ! melt flux (or ice-ocean fresh-water flux). +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "B" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_CONST = 0.02 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. +USE_RIGID_SEA_ICE = False ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout + ! when the energy files are written. +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the + ! model will be stopped if there is more energy than + ! this. If zero or negative, this is set to 10*MAXVEL^2. +ENERGYFILE = "timestats" ! default = "timestats" + ! The file to use to write the energies and globally + ! summed diagnostics. +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or + ! create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the + ! entries in the depth-list file. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in MOM_parameter_doc.short . diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.short b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.short new file mode 100644 index 0000000000..f28816730c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/MOM_parameter_doc.short @@ -0,0 +1,617 @@ +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "B" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_input b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_input new file mode 100644 index 0000000000..966240f79a --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_input @@ -0,0 +1,88 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This file determines the adjustable run-time parameters for the * +!* Sea Ice Simulator (SIS), versions 2 and later. Where * +!* appropriate, MKS units are used. * +!********+*********+*********+*********+*********+*********+*********+* +! >>> Global coupled ice-ocean SIS2 5 layer ice, 63 layer ocean test case. + +! Specify properties of the physical domain. +OMEGA = 7.2921e-5 ! The rotation rate of the earth in s-1. +ROTATION = "2omegasinlat" ! Rotation approximation (2omegasinlat, + ! betaplane or USER). +G_EARTH = 9.80 ! G_EARTH is the Earth's gravitational + ! acceleration, in m s-2. +GRID_CONFIG = "mosaic" ! Method for defining horizontal grid + ! = file|cartesian|spherical|mercator + ! file - read grid from file "GRID_FILE" + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +GRID_FILE = "ocean_hgrid.nc" + ! Name of file to read horizontal grid data +INPUTDIR = "INPUT" + ! INPUTDIR is a directory in which NetCDF + ! input files might be found. + +CGRID_ICE_DYNAMICS = False ! If true, use a C-grid discretization of the + ! sea-ice dynamics; if false use a B-grid + ! discretization. + +! Specify the numerical domain. +NIGLOBAL = 360 ! NIGLOBAL and NJGLOBAL are the number of thickness +NJGLOBAL = 210 ! grid points in the zonal and meridional + ! directions of the physical domain. +NK = 63 ! The number of layers. +NCAT_ICE = 5 ! The number of sea ice thickness categories. +NIHALO = 2 ! NIHALO and NJHALO are the number of halo +NJHALO = 2 ! points on each side in the x- and y-directions. + ! If static memory allocation is used, these + ! must match the values of NIHALO_ and NJHALO_ + ! in MOM_memory.h. +NIPROC_IO = 1 ! The number of processors used for I/O in the + ! x-direction, or 0 to equal NIPROC. NIPROC_IO + ! must be a factor of NIPROC. +NJPROC_IO = 1 ! The number of processors used for I/O in the + ! y-direction, or 0 to equal NJPROC. NJPROC_IO + ! must be a factor of NJPROC. + +REENTRANT_X = True ! If defined, the domain is zonally reentrant. +REENTRANT_Y = False ! If defined, the domain is meridionally + ! reentrant. +TRIPOLAR_N = True ! Use tripolar connectivity at the northern + ! edge of the domain. With TRIPOLAR_N, NIGLOBAL + ! must be even. + +DEBUG = False ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! If true, calculate all diagnostics that are + ! useful for debugging truncations. +SEND_LOG_TO_STDOUT = False ! If true write out log information to stdout. + +! Specify the time integration scheme for the ice dynamics. +NSTEPS_DYN = 72 ! The number of iterations in the EVP dynamics + ! for each slow time step. + +! Specify the ice properties. +ICE_STRENGTH_PSTAR = 2.75e4 ! ICE_STRENGTH_PSTAR is a constant in the + ! expression for the ice strength, P* in + ! Hunke & Dukowics '97, in Pa. +RHO_OCEAN = 1030.0 ! RHO_OCEAN is used in the Boussinesq + ! approximation to calculations of pressure and + ! pressure gradients, in units of kg m-3. +RHO_ICE = 905.0 ! RHO_ICE is the nominal density of sea ice + ! used in SIS, in units of kg m-3. +RHO_SNOW = 330.0 ! RHO_SNOW is the nominal density of snow + ! used in SIS, in units of kg m-3. +C_P_ICE = 2100.0 ! C_P_ICE is the heat capacity of fresh ice + ! in J kg-1 K-1, approximated as a constant. +C_P = 3925.0 ! C_P is the heat capacity of sea water in + ! J kg-1 K-1, approximated as a constant. +SNOW_ALBEDO = 0.88 ! The albedo of dry snow atop sea ice, ND. +ICE_ALBEDO = 0.68 ! The albedo of dry bare sea ice, ND. +ICE_BULK_SALINITY = 0.005 ! The fixed bulk salinity of sea ice, in kg/kg. + +! Specify the properties of the surface forcing. +ICE_OCEAN_STRESS_STAGGER = "B" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_override b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_override new file mode 100644 index 0000000000..8244328586 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_override @@ -0,0 +1 @@ +# Blank file in which we can put "overrides" for parameters diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.all b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.all new file mode 100644 index 0000000000..12c7d641d5 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.all @@ -0,0 +1,239 @@ +SPECIFIED_ICE = False ! [Boolean] default = False + ! If true, the ice is specified and there is no dynamics. +CGRID_ICE_DYNAMICS = False ! [Boolean] default = False + ! If true, use a C-grid discretization of the sea-ice + ! dynamics; if false use a B-grid discretization. +USE_SLAB_ICE = False ! [Boolean] default = False + ! If true, use the very old slab-style ice. +ICE_OCEAN_STRESS_STAGGER = "B" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RHO_OCEAN = 1030.0 ! [kg m-3] default = 1030.0 + ! The nominal density of sea water as used by SIS. +RHO_ICE = 905.0 ! [kg m-3] default = 905.0 + ! The nominal density of sea ice as used by SIS. +RHO_SNOW = 330.0 ! [kg m-3] default = 330.0 + ! The nominal density of snow as used by SIS. +MOMENTUM_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default momentum roughness length scale for the ocean. +HEAT_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default roughness length scale for the turbulent + ! transfer of heat into the ocean. +ICE_KMELT = 240.0 ! [W m-2 K-1] default = 240.0 + ! A constant giving the proportionality of the ocean/ice + ! base heat flux to the tempature difference, given by + ! the product of the heat capacity per unit volume of sea + ! water times a molecular diffusive piston velocity. +SNOW_CONDUCT = 0.31 ! [W m-1 K-1] default = 0.31 + ! The conductivity of heat in snow. +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_SW_PEN_FRAC = 0.3 ! [Nondimensional] default = 0.3 + ! The fraction of the unreflected shortwave radiation that + ! penetrates into the ice. +ICE_OPTICAL_DEPTH = 0.67 ! [m] default = 0.67 + ! The optical depth of shortwave radiation in sea ice. +ALBEDO_T_MELT_RANGE = 1.0 ! [degC] default = 1.0 + ! The temperature range below freezing over which the + ! albedos are changed by partial melting. +ICE_CONSERVATION_CHECK = True ! [Boolean] default = True + ! If true, do additional calculations to check for + ! internal conservation of heat, salt, and water mass in + ! the sea ice model. This does not change answers, but + ! can increase model run time. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +ICE_SEES_ATMOS_WINDS = True ! [Boolean] default = True + ! If true, the sea ice is being given wind stresses with + ! the atmospheric sign convention, and need to have their + ! sign changed. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +DO_ICE_RESTORE = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_ICE_LIMIT = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_SLP_TO_OCEAN = False ! [Boolean] default = False + ! If true, apply the atmospheric sea level pressure to + ! the ocean. +MIN_H_FOR_TEMP_CALC = 0.0 ! [m] default = 0.0 + ! The minimum ice thickness at which to do temperature + ! calculations. +VERBOSE = False ! [Boolean] default = False + ! If true, write out verbose diagnostics. +DO_ICEBERGS = False ! [Boolean] default = False + ! If true, call the iceberg module. +ADD_DIURNAL_SW = False ! [Boolean] default = False + ! If true, add a synthetic diurnal cycle to the shortwave + ! radiation. +DO_SUN_ANGLE_FOR_ALB = False ! [Boolean] default = False + ! If true, find the sun angle for calculating the ocean + ! albedo within the sea ice model. +DO_DELTA_EDDINGTON_SW = True ! [Boolean] default = True + ! If true, a delta-Eddington radiative transfer calculation + ! for the shortwave radiation within the sea-ice. +ICE_DELTA_EDD_R_ICE = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of sea ice with the delta-Eddington radiative + ! transfer calculation. +ICE_DELTA_EDD_R_SNOW = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of snow on sea ice with the delta-Eddington + ! radiative transfer calculation. +ICE_DELTA_EDD_R_POND = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of meltwater ponds on sea ice with the delta-Eddington + ! radiative transfer calculation. +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in SIS2_memory.h (if defined) or 2. +NJHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in SIS2_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +LAYOUT = 0, 0 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 5 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 6, 5 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so + ! that corresponding points on different processors have + ! the same index. This does not work with static memory. +NCAT_ICE = 5 ! [nondim] default = 5 + ! The number of sea ice thickness categories. +NK_ICE = 4 ! [nondim] default = 4 + ! The number of layers within the sea ice. +NK_SNOW = 1 ! [nondim] default = 1 + ! The number of layers within the snow atop the sea ice. +SET_GRID_LIKE_SIS1 = False ! [Boolean] default = False + ! If true, use SIS1 code to set the grid values. Otherwise + ! use code derived from MOM6. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +AVAILABLE_DIAGS_FILE = "SIS.available_diags" ! default = "SIS.available_diags" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +ICE_STRENGTH_PSTAR = 2.75E+04 ! [Pa] default = 2.75E+04 + ! A constant in the expression for the ice strength, + ! P* in Hunke & Dukowicz 1997. +ICE_STRENGTH_CSTAR = 20.0 ! [nondim] default = 20.0 + ! A constant in the exponent of the expression for the + ! ice strength, c* in Hunke & Dukowicz 1997. +ICE_CDRAG_WATER = 0.00324 ! [nondim] default = 0.00324 + ! The drag coefficient between the sea ice and water. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points. +AIR_WATER_STRESS_TURN_ANGLE = 0.0 ! [degrees] default = 0.0 + ! An angle by which to rotate the velocities at the air- + ! water boundary in calculating stresses. +NSTEPS_ADV = 1 ! default = 1 + ! The number of advective iterations for each slow time + ! step. +ICE_CHANNEL_VISCOSITY = 0.0 ! [m2 s-1] default = 0.0 + ! A viscosity used in one-cell wide channels to + ! parameterize transport, especially with B-grid sea ice + ! coupled to a C-grid ocean model. +ICE_CHANNEL_SMAG_COEF = 0.15 ! [Nondim] default = 0.15 + ! A Smagorinsky coefficient for viscosity in channels. +ICE_CHANNEL_CFL_LIMIT = 0.25 ! [Nondim] default = 0.25 + ! The CFL limit that is applied to the parameterized + ! viscous transport in single-point channels. +SIS1_ICE_TRANSPORT = True ! [Boolean] default = True + ! If true, use SIS1 code to solve the ice continuity + ! equation and transport tracers. +CHECK_ICE_TRANSPORT_CONSERVATION = False ! [Boolean] default = False + ! If true, use add multiple diagnostics of ice and snow + ! mass conservation in the sea-ice transport code. This + ! is expensive and should be used sparingly. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in SIS_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in SIS_parameter_doc.short . diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.short b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.short new file mode 100644 index 0000000000..6f842ab562 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/SIS_parameter_doc.short @@ -0,0 +1,59 @@ +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +!NIPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 5 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 6, 5 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/data_table b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/data_table new file mode 100644 index 0000000000..a9dbbea3c8 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/data_table @@ -0,0 +1,7 @@ + +"ICE", "sic_obs", "SIC","./INPUT/sst_ice_clim.nc",.false.,0.01 +"ICE", "sit_obs", "SIT","./INPUT/sst_ice_clim.nc",.false.,1.06 +"ICE", "sst_obs", "SST","./INPUT/sst_ice_clim.nc",.false.,1 +"ATM", "cfc_11_flux_pcair_atm","CFC_11","INPUT/cfc.bc.nc",.false., 1 +"ATM", "cfc_12_flux_pcair_atm","CFC_12","INPUT/cfc.bc.nc",.false., 1 + diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/diag_table b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/diag_table new file mode 100644 index 0000000000..21fbfd813e --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/diag_table @@ -0,0 +1,657 @@ +CM2.2 +1900 1 1 0 0 0 +#output files +"atmos_daily", 24, "hours", 1, "days", "time", +"atmos_8xdaily", 3, "hours", 1, "days", "time", +"atmos_8xdaily_instant", 3, "hours", 1, "days", "time", +"atmos_month", 1, "months", 1, "days", "time", +"atmos_month_aer",1, "months", 1, "days", "time", +"atmos_scalar", 1, "months", 1, "days", "time", +"ice_daily", 24, "hours", 1, "days", "time", +"ice_month", 1, "months", 1, "days", "time", +"land_daily", 24, "hours", 1, "days", "time", +"land_instant", 1, "months", 1, "days", "time", +"land_month", 1, "months", 1, "days", "time", +"ocean_month", 1, "months", 1, "days", "time" +"ocean_month_z", 1, "months", 1, "days", "time" +#"ocean_scalar", 1, "months", 1, "days", "time" +# +#output variables +# +#================== +# OCEAN DIAGNOSTICS +#================== +# +# Prognostic Ocean fields: +#========================= +"ocean_model","u","u","ocean_month","all",.true.,"none",2 +"ocean_model","v","v","ocean_month","all",.true.,"none",2 +"ocean_model","h","h","ocean_month","all",.true.,"none",1 +"ocean_model","e","e","ocean_month","all",.true.,"none",2 +"ocean_model","temp","temp","ocean_month","all",.true.,"none",2 +"ocean_model","salt","salt","ocean_month","all",.true.,"none",2 +# +# Auxilary Tracers: +#================== +"ocean_model","vintage","vintage","ocean_month","all",.true.,"none",2 +"ocean_model","age","age","ocean_month","all",.true.,"none",2 +"ocean_model","CFC11","CFC11","ocean_month","all",.true.,"none",2 +"ocean_model","CFC12","CFC12","ocean_month","all",.true.,"none",2 + + +# Z-space fields: +#================== +"ocean_model","u_z","u","ocean_month_z","all",.true.,"none",2 +"ocean_model","v_z","v","ocean_month_z","all",.true.,"none",2 +"ocean_model","temp_z","temp","ocean_month_z","all",.true.,"none",2 +"ocean_model","salt_z","salt","ocean_month_z","all",.true.,"none",2 +"ocean_model","vintage_z","vintage","ocean_month_z","all",.true.,"none",2 +"ocean_model","age_z","age","ocean_month_z","all",.true.,"none",2 +"ocean_model","CFC11_z","CFC11","ocean_month_z","all",.true.,"none",2 +"ocean_model","CFC12_z","CFC12","ocean_month_z","all",.true.,"none",2 +"ocean_model","geolon","geolon","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat","geolat","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolon_u","geolon_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat_u","geolat_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolon_v","geolon_v","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat_v","geolat_v","ocean_month_z","all",.false.,"none",2 +"ocean_model","area_t","area_t","ocean_month_z","all",.false.,"none",2 +"ocean_model","depth_ocean","depth_ocean","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet","wet","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet_u","wet_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet_v","wet_v","ocean_month_z","all",.false.,"none",2 + +# +#=========================== +# Continuity Equation Terms: +#=========================== +"ocean_model","wd","wd","ocean_month","all",.true.,"none",2 +"ocean_model","uh","uh","ocean_month","all",.true.,"none",2 +"ocean_model","vh","vh","ocean_month","all",.true.,"none",2 +"ocean_model","uhGM","uhGM","ocean_month","all",.true.,"none",2 +"ocean_model","vhGM","vhGM","ocean_month","all",.true.,"none",2 +"ocean_model","uhml","uhml","ocean_month","all",.true.,"none",2 +"ocean_model","vhml","vhml","ocean_month","all",.true.,"none",2 +"ocean_model","MLu_restrat_time","MLu_restrat_time","ocean_month","all",.true.,"none",2 +"ocean_model","MLv_restrat_time","MLv_restrat_time","ocean_month","all",.true.,"none",2 +"ocean_model","h_rho","h_rho","ocean_month","all",.true.,"none",2 +"ocean_model","uh_rho","uh_rho","ocean_month","all",.true.,"none",2 +"ocean_model","vh_rho","vh_rho","ocean_month","all",.true.,"none",2 +"ocean_model","uhGM_rho","uhGM_rho","ocean_month","all",.true.,"none",2 +"ocean_model","vhGM_rho","vhGM_rho","ocean_month","all",.true.,"none",2 +"ocean_model","GMwork","GMwork","ocean_month","all",.true.,"none",2 +"ocean_model","FrictWork","FrictWork","ocean_month","all",.true.,"none",2 + +# +# Mixed Layer TKE Budget Terms: +#=========================== +"ocean_model","TKE_wind","TKE_wind","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_RiBulk","TKE_RiBulk","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv","TKE_conv","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_pen_SW","TKE_pen_SW","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_mixing","TKE_mixing","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_mech_decay","TKE_mech_decay","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv_decay","TKE_conv_decay","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv_s2","TKE_conv_s2","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_tidal","TKE_tidal","ocean_month","all",.true.,"none",2 +"ocean_model","h_ML","h_ML","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_effective","Kd_effective","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_itides","Kd_itides","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_Work","Kd_Work","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_ITidal_Work","Kd_Itidal_Work","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_Nikurashin_Work","Kd_Nikurashin_Work","ocean_month","all",.true.,"none",2 +"ocean_model","PE_detrain","PE_detrain","ocean_month","all",.true.,"none",2 +"ocean_model","PE_detrain2","PE_detrain2","ocean_month","all",.true.,"none",2 +"ocean_model","Rayleigh_u","Rayleigh_u","ocean_month","all",.true.,"none",2 +"ocean_model","Rayleigh_v","Rayleigh_v","ocean_month","all",.true.,"none",2 +# +#=========================== +# Tracer Fluxes: +#================== +"ocean_model","T_adx", "T_adx", "ocean_month","all",.true.,"none",2 +"ocean_model","T_ady", "T_ady", "ocean_month","all",.true.,"none",2 +"ocean_model","T_diffx","T_diffx","ocean_month","all",.true.,"none",2 +"ocean_model","T_diffy","T_diffy","ocean_month","all",.true.,"none",2 +"ocean_model","S_adx", "S_adx", "ocean_month","all",.true.,"none",2 +"ocean_model","S_ady", "S_ady", "ocean_month","all",.true.,"none",2 +"ocean_model","S_diffx","S_diffx","ocean_month","all",.true.,"none",2 +"ocean_model","S_diffy","S_diffy","ocean_month","all",.true.,"none",2 + + +# Momentum Balance Terms: +#======================= +#"ocean_model","dudt","dudt","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt","dvdt","ocean_month","all",.true.,"none",2 +#"ocean_model","CAu","CAu","ocean_month","all",.true.,"none",2 +#"ocean_model","CAv","CAv","ocean_month","all",.true.,"none",2 +#"ocean_model","PFu","PFu","ocean_month","all",.true.,"none",2 +#"ocean_model","PFv","PFv","ocean_month","all",.true.,"none",2 +"ocean_model","du_dt_visc","du_dt_visc","ocean_month","all",.true.,"none",2 +"ocean_model","dv_dt_visc","dv_dt_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","diffu","diffu","ocean_month","all",.true.,"none",2 +#"ocean_model","diffv","diffv","ocean_month","all",.true.,"none",2 +#"ocean_model","dudt_dia","dudt_dia","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt_dia","dvdt_dia","ocean_month","all",.true.,"none",2 +# Subterms that should not be added to a closed budget. +#"ocean_model","gKEu","gKEu","ocean_month","all",.true.,"none",2 +#"ocean_model","gKEv","gKEv","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxu","rvxu","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxv","rvxv","ocean_month","all",.true.,"none",2 +"ocean_model","PFu_bc","PFu_bc","ocean_month","all",.true.,"none",2 +"ocean_model","PFv_bc","PFv_bc","ocean_month","all",.true.,"none",2 + +# Barotropic Momentum Balance Terms: +# (only available with split time stepping.) +#=========================================== +"ocean_model","PFuBT","PFuBT","ocean_month","all",.true.,"none",2 +"ocean_model","PFvBT","PFvBT","ocean_month","all",.true.,"none",2 +"ocean_model","CoruBT","CoruBT","ocean_month","all",.true.,"none",2 +"ocean_model","CorvBT","CorvBT","ocean_month","all",.true.,"none",2 +"ocean_model","ubtforce","ubtforce","ocean_month","all",.true.,"none",2 +"ocean_model","vbtforce","vbtforce","ocean_month","all",.true.,"none",2 +"ocean_model","u_accel_bt","u_accel_bt","ocean_month","all",.true.,"none",2 +"ocean_model","v_accel_bt","v_accel_bt","ocean_month","all",.true.,"none",2 +# +# Viscosities and diffusivities: +#=============================== +#"ocean_model","Kd","Kd","ocean_month","all",.true.,"none",2 +#"ocean_model","Ahh","Ahh","ocean_month","all",.true.,"none",2 +#"ocean_model","Ahq","Ahq","ocean_month","all",.true.,"none",2 +#"ocean_model","Khh","Khh","ocean_month","all",.true.,"none",2 +#"ocean_model","Khq","Khq","ocean_month","all",.true.,"none",2 +#"ocean_model","bbl_thick_u","bbl_thick_u","ocean_month","all",.true.,"none",2 +#"ocean_model","kv_bbl_u","kv_bbl_u","ocean_month","all",.true.,"none",2 +#"ocean_model","bbl_thick_v","bbl_thick_v","ocean_month","all",.true.,"none",2 +#"ocean_model","kv_bbl_v","kv_bbl_v","ocean_month","all",.true.,"none",2 +#"ocean_model","av_visc","av_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","au_visc","au_visc","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_u","KHTH_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_v","KHTH_v","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_u","KHTR_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_v","KHTR_v","ocean_month","all",.true.,"none",2 + +# MEKE: +#====== +"ocean_model","MEKE","MEKE","ocean_month","all",.true.,"none",2 +"ocean_model","MEKE_src","MEKE_src","ocean_month","all",.true.,"none",2 +"ocean_model","MEKE_Kh","MEKE_Kh","ocean_month","all",.true.,"none",2 + +# +# Kinetic Energy Balance Terms: +#============================= +#"ocean_model","KE","KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","dKE_dt","dKE_dt","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","PE_to_KE","PE_to_KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_Coradv","KE_Coradv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_adv","KE_adv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_visc","KE_visc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_horvisc","KE_horvisc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_dia","KE_dia","energy_%4yr_%3dy","all",.true.,"none",2 +# +#================== +# Surface Forcing: +#================= +"ocean_model","taux", "taux", "ocean_month","all",.true.,"none",2 +"ocean_model","tauy", "tauy", "ocean_month","all",.true.,"none",2 +"ocean_model","ustar", "ustar", "ocean_month","all",.true.,"none",2 +"ocean_model","PmE", "PmE", "ocean_month","all",.true.,"none",2 +"ocean_model","SW", "SW", "ocean_month","all",.true.,"none",2 +"ocean_model","LwLatSens","LwLatSens","ocean_month","all",.true.,"none",2 +"ocean_model","p_surf", "p_surf", "ocean_month","all",.true.,"none",2 +"ocean_model","salt_flux","salt_flux","ocean_month","all",.true.,"none",2 + +# Static ocean fields: +#===================== +"ocean_model", "geolon", "geolon", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat", "geolat", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_c", "geolon_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_c", "geolat_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_u", "geolon_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_u", "geolat_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_v", "geolon_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_v", "geolat_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "area_t", "area_t", "ocean_month", "all", .false., "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet", "wet", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_c", "wet_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_u", "wet_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_v", "wet_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "Coriolis", "Coriolis", "ocean_month", "all", .false., "none", 2 + +#================ +# ICE DIAGNOSTICS +#================ +# +"ice_model", "FRAZIL", "FRAZIL", "ice_month", "all", .true., "none", 2, +"ice_model", "HI", "HI", "ice_month", "all", .true., "none", 2, +"ice_model", "HS", "HS", "ice_month", "all", .true., "none", 2, +"ice_model", "TS", "TS", "ice_month", "all", .true., "none", 2, +"ice_model", "T1", "T1", "ice_month", "all", .true., "none", 2, +"ice_model", "T2", "T2", "ice_month", "all", .true., "none", 2, +"ice_model", "CN", "CN", "ice_month", "all", .true., "none", 2, +"ice_model", "EXT", "EXT", "ice_month", "all", .true., "none", 2, +"ice_model", "MI", "MI", "ice_month", "all", .true., "none", 2, +"ice_model", "XPRT", "XPRT", "ice_month", "all", .true., "none", 2, +"ice_model", "LSRC", "LSRC", "ice_month", "all", .true., "none", 2, +"ice_model", "LSNK", "LSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "BSNK", "BSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "SN2IC", "SN2IC", "ice_month", "all", .true., "none", 2, +"ice_model", "ALB", "ALB", "ice_month", "all", .true., "none", 2, +"ice_model", "SW", "SW", "ice_month", "all", .true., "none", 2, +"ice_model", "LW", "LW", "ice_month", "all", .true., "none", 2, +"ice_model", "SH", "SH", "ice_month", "all", .true., "none", 2, +"ice_model", "LH", "LH", "ice_month", "all", .true., "none", 2, +"ice_model", "TMELT", "TMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BMELT", "BMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BHEAT", "BHEAT", "ice_month", "all", .true., "none", 2, +"ice_model", "UI", "UI", "ice_month", "all", .true., "none", 2, +"ice_model", "VI", "VI", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_X", "FA_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_Y", "FA_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_X", "FI_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_Y", "FI_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "SST", "SST", "ice_month", "all", .true., "none", 2, +"ice_model", "SSS", "SSS", "ice_month", "all", .true., "none", 2, +"ice_model", "SSH", "SSH", "ice_month", "all", .true., "none", 2, +"ice_model", "UO", "UO", "ice_month", "all", .true., "none", 2, +"ice_model", "VO", "VO", "ice_month", "all", .true., "none", 2, +"ice_model", "SNOWFL", "SNOWFL", "ice_month", "all", .true., "none", 2, +"ice_model", "RAIN", "RAIN", "ice_month", "all", .true., "none", 2, +"ice_model", "CALVING", "CALVING", "ice_month", "all", .true., "none", 2, +"ice_model", "RUNOFF", "RUNOFF", "ice_month", "all", .true., "none", 2, +"ice_model", "CELL_AREA", "CELL_AREA", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLON", "GEOLON", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLAT", "GEOLAT", "ice_month", "all", .false., "none", 2, +"ice_model", "SINROT", "SINROT", "ice_month", "all", .false., "none", 2, +"ice_model", "COSROT", "COSROT", "ice_month", "all", .false., "none", 2, +"ice_model", "SALTF", "SALTF", "ice_month", "all", .true., "none", 2, +"ice_model", "IX_TRANS", "IX_TRANS", "ice_month", "all", .true., "none", 2, +"ice_model", "IY_TRANS", "IY_TRANS", "ice_month", "all", .true., "none", 2, +#======================= +# LAND MODEL DIAGNOSTICS +#======================= +# +## daily output + "soil","water", "water", "land_daily", "all", .true., "none", 2 + "soil","wroff", "wroff", "land_daily", "all", .true., "none", 2 +# +## instantaneous output + "soil","cover_type", "cover_type", "land_instant", "all", .false., "none", 2 + "soil","frozen", "frozen", "land_instant", "all", .false., "none", 2 + "soil","groundwater", "groundwater", "land_instant", "all", .false., "none", 2 + "soil","snow", "snow", "land_instant", "all", .false., "none", 2 + "soil","temp", "temp", "land_instant", "all", .false., "none", 2 + "soil","water", "water", "land_instant", "all", .false., "none", 2 +# +## river discharge + "rivers", "discharge","disch_w", "land_month", "all", .true., "none", 2 + "rivers", "discharge_snow","disch_s","land_month", "all", .true., "none", 2 +# +## static fields + "soil","area", "area", "land_month", "all", .false., "none", 2 + "soil","ground_type", "ground_type", "land_month", "all", .false., "none", 2 + "soil","hlf", "hlf", "land_month", "all", .false., "none", 2 + "soil","hlv", "hlv", "land_month", "all", .false., "none", 2 + "soil","lfrac", "lfrac", "land_month", "all", .false., "none", 2 + "soil","max_water", "max_water", "land_month", "all", .false., "none", 2 + "soil","rho_cap", "rho_cap", "land_month", "all", .false., "none", 2 +# + "soil","albedo", "albedo", "land_month", "all", .true., "none", 2 + "soil","evap", "evap", "land_month", "all", .true., "none", 2 + "soil","flw", "flw", "land_month", "all", .true., "none", 2 + "soil","fsw", "fsw", "land_month", "all", .true., "none", 2 + "soil","frozen", "frozen", "land_month", "all", .true., "none", 2 + "soil","gmelt", "gmelt", "land_month", "all", .true., "none", 2 + "soil","groundwater", "groundwater", "land_month", "all", .true., "none", 2 + "soil","latent", "latent", "land_month", "all", .true., "none", 2 + "soil","precip", "precip", "land_month", "all", .true., "none", 2 + "soil","sens", "sens", "land_month", "all", .true., "none", 2 + "soil","smelt", "smelt", "land_month", "all", .true., "none", 2 + "soil","snow", "snow", "land_month", "all", .true., "none", 2 + "soil","snowfall", "snowfall", "land_month", "all", .true., "none", 2 + "soil","sroff", "sroff", "land_month", "all", .true., "none", 2 + "soil","sublim", "sublim", "land_month", "all", .true., "none", 2 + "soil","temp", "temp", "land_month", "all", .true., "none", 2 + "soil","water", "water", "land_month", "all", .true., "none", 2 + "soil","wroff", "wroff", "land_month", "all", .true., "none", 2 +# +#======================= +# ATMOSPHERE DIAGNOSTICS +#======================= +# +## daily output + "flux", "evap", "evap", "atmos_daily", "all", .true., "none", 2 + "flux", "lwflx", "lwflx", "atmos_daily", "all", .true., "none", 2 + "flux", "shflx", "shflx", "atmos_daily", "all", .true., "none", 2 + "flux", "tau_x", "tau_x", "atmos_daily", "all", .true., "none", 2 + "flux", "tau_y", "tau_y", "atmos_daily", "all", .true., "none", 2 + "flux", "t_ref", "t_ref_min", "atmos_daily", "all", min, "none", 2 + "flux", "t_ref", "t_ref_max", "atmos_daily", "all", max, "none", 2 + "flux", "t_surf", "t_surf", "atmos_daily", "all", .true., "none", 2 + "flux", "wind", "wind", "atmos_daily", "all", max, "none", 2 +## "flux" forcing fields for land model: wind, sphum_ref atmos_8xdaily +#"flux", "sphum_ref", "sphum_ref", "atmos_8xdaily", "all", .true., "none", 2 +#"flux", "wind", "wind", "atmos_8xdaily", "all", .true., "none", 2 +# +## instantaneous output + "flux", "t_ref", "t_ref", "atmos_8xdaily_instant","all",.false., "none", 2 +# + "flux", "drag_heat", "drag_heat", "atmos_month", "all", .true., "none", 2 + "flux", "drag_moist", "drag_moist", "atmos_month", "all", .true., "none", 2 + "flux", "drag_mom", "drag_mom", "atmos_month", "all", .true., "none", 2 + "flux", "evap", "evap", "atmos_month", "all", .true., "none", 2 + "flux", "ice_mask", "ice_mask", "atmos_month", "all", .true., "none", 2 + "flux", "land_mask", "land_mask", "atmos_month", "all", .false., "none", 2 + "flux", "lwflx", "lwflx", "atmos_month", "all", .true., "none", 2 + "flux", "rh_ref", "rh_ref", "atmos_month", "all", .true., "none", 2 + "flux", "shflx", "shflx", "atmos_month", "all", .true., "none", 2 + "flux", "tau_x", "tau_x", "atmos_month", "all", .true., "none", 2 + "flux", "tau_y", "tau_y", "atmos_month", "all", .true., "none", 2 + "flux", "t_ref", "t_ref", "atmos_month", "all", .true., "none", 2 + "flux", "t_ref", "t_ref_min", "atmos_month", "all", min, "none", 2 + "flux", "t_ref", "t_ref_max", "atmos_month", "all", max, "none", 2 + "flux", "t_surf", "t_surf", "atmos_month", "all", .true., "none", 2 + "flux", "u_ref", "u_ref", "atmos_month", "all", .true., "none", 2 + "flux", "v_ref", "v_ref", "atmos_month", "all", .true., "none", 2 + "flux", "wind", "wind", "atmos_month", "all", .true., "none", 2 +# + "dynamics", "bk", "bk", "atmos_daily", "all", .false., "none", 2 + "dynamics", "omega", "omega", "atmos_daily", "all", .true., "none", 2 + "dynamics", "pk", "pk", "atmos_daily", "all", .false., "none", 2 + "dynamics", "ps", "ps", "atmos_daily", "all", .true., "none", 2 + "dynamics", "sphum", "sphum", "atmos_daily", "all", .true., "none", 2 + "dynamics", "temp", "temp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "ucomp", "ucomp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "vcomp", "vcomp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "zsurf", "zsurf", "atmos_daily", "all", .false., "none", 2 + "dynamics", "bk", "bk", "atmos_month", "all", .false., "none", 2 + "dynamics", "pk", "pk", "atmos_month", "all", .false., "none", 2 + "dynamics", "zsurf", "zsurf", "atmos_month", "all", .false., "none", 2 + "dynamics", "cld_amt", "cld_amt", "atmos_month", "all", .true., "none", 2 + "dynamics", "ice_wat", "ice_wat", "atmos_month", "all", .true., "none", 2 + "dynamics", "liq_wat", "liq_wat", "atmos_month", "all", .true., "none", 2 + "dynamics", "omega", "omega", "atmos_month", "all", .true., "none", 2 +#"dynamics", "pres_full", "pres_full", "atmos_month", "all", .true., "none", 2 +#"dynamics", "pres_half", "pres_half", "atmos_month", "all", .true., "none", 2 + "dynamics", "ps", "ps", "atmos_month", "all", .true., "none", 2 + "dynamics", "sphum", "sphum", "atmos_month", "all", .true., "none", 2 + "dynamics", "temp", "temp", "atmos_month", "all", .true., "none", 2 +#"dynamics", "theta", "theta", "atmos_month", "all", .true., "none", 2 + "dynamics", "ucomp", "ucomp", "atmos_month", "all", .true., "none", 2 + "dynamics", "vcomp", "vcomp", "atmos_month", "all", .true., "none", 2 +# + "moist", "precip", "precip", "atmos_daily", "all", .true., "none", 2 + "moist", "prec_conv", "prec_conv", "atmos_daily", "all", .true., "none", 2 + "moist", "prec_ls", "prec_ls", "atmos_daily", "all", .true., "none", 2 + "moist", "snow_conv", "snow_conv", "atmos_daily", "all", .true., "none", 2 + "moist", "snow_ls", "snow_ls", "atmos_daily", "all", .true., "none", 2 + "moist", "precip", "precip", "atmos_8xdaily","all",.true., "none", 2 + "moist", "prec_conv", "prec_conv", "atmos_month", "all", .true., "none", 2 + "moist", "snow_conv", "snow_conv", "atmos_month", "all", .true., "none", 2 + "moist", "prec_ls", "prec_ls", "atmos_month", "all", .true., "none", 2 + "moist", "snow_ls", "snow_ls", "atmos_month", "all", .true., "none", 2 + "moist", "IWP", "IWP", "atmos_month", "all", .true., "none", 2 + "moist", "LWP", "LWP", "atmos_month", "all", .true., "none", 2 + "moist", "precip", "precip", "atmos_month", "all", .true., "none", 2 + "moist", "qdt_conv", "qdt_conv", "atmos_month", "all", .true., "none", 2 + "moist", "tdt_conv", "tdt_conv", "atmos_month", "all", .true., "none", 2 + "moist", "qdt_ls", "qdt_ls", "atmos_month", "all", .true., "none", 2 + "moist", "rh", "rh", "atmos_month", "all", .true., "none", 2 + "moist", "tdt_ls", "tdt_ls", "atmos_month", "all", .true., "none", 2 + "moist", "WVP", "WVP", "atmos_month", "all", .true., "none", 2 +# + "ras", "mc", "mc", "atmos_month", "all", .true., "none", 2 +# + "radiation", "lwdn_sfc", "lwdn_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "lwup_sfc", "lwup_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "olr", "olr", "atmos_daily", "all", .true., "none", 2 + "radiation", "swdn_sfc", "swdn_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "swup_sfc", "swup_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "swdn_toa", "swdn_toa", "atmos_daily", "all", .true., "none", 2 + "radiation", "swup_toa", "swup_toa", "atmos_daily", "all", .true., "none", 2 + "radiation", "alb_sfc", "alb_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "lwdn_sfc", "lwdn_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "lwup_sfc", "lwup_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "netrad_toa", "netrad_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "olr", "olr", "atmos_month", "all", .true., "none", 2 + "radiation", "qo3", "qo3", "atmos_month", "all", .true., "none", 2 + "radiation", "qo3_col", "qo3_col", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_sfc", "swdn_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_sfc", "swup_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_toa", "swdn_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_toa", "swup_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_lw", "tdt_lw", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_sw", "tdt_sw", "atmos_month", "all", .true., "none", 2 + "radiation", "lwdn_sfc_clr","lwdn_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "lwup_sfc_clr","lwup_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "netrad_toa_clr","netrad_toa_clr","atmos_month", "all", .true.,"none", 2 + "radiation", "olr_clr", "olr_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_sfc_clr","swdn_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swup_sfc_clr","swup_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swdn_toa_clr","swdn_toa_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swup_toa_clr","swup_toa_clr","atmos_month", "all", .true., "none", 2 + "radiation", "tdt_lw_clr", "tdt_lw_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_sw_clr", "tdt_sw_clr", "atmos_month", "all", .true., "none", 2 +# + "radiation", "netlw_lin_trop", "netlw_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "netlw_200hPa", "netlw_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_lin_trop", "swdn_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_200hPa", "swdn_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_200hPa", "swup_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_lin_trop", "swup_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "netlw_lin_trop_clr","netlw_lin_trop_clr","atmos_month", "all", .true., "none", 2 + "radiation", "netlw_200hPa_clr", "netlw_200hPa_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_lin_trop_clr", "swdn_lin_trop_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_200hPa_clr", "swdn_200hPa_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_lin_trop_clr", "swup_lin_trop_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_200hPa_clr", "swup_200hPa_clr", "atmos_month", "all", .true., "none", 2 +# +## aerosols +## for the aerosol fields, set do_cmip_diagnostics=.true. in shortwave_driver_nml + "radiation","olr_800_1200", "olr_800_1200", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_900_990", "olr_900_990", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_800_1200", "sfc_800_1200", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_900_990", "sfc_900_990", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_800_1200_cf", "olr_800_1200_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_900_990_cf", "olr_900_990_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_800_1200_cf", "sfc_800_1200_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_900_990_cf", "sfc_900_990_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_vis", "swup_toa_vis", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_1p6", "swup_toa_1p6", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_vis", "swnt_sfc_vis", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_1p6", "swnt_sfc_1p6", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_vis_cf", "swup_toa_vis_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_1p6_cf", "swup_toa_1p6_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_vis_cf", "swnt_sfc_vis_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_1p6_cf", "swnt_sfc_1p6_cf", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "bnd5_extopdep_vlcno", "bnd5_exopd_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "lw_b5_extopdep_vlcno_c", "b5_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "bnd6_lwext_vlcno", "bnd6_lwext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "bnd6_extopdep_vlcno_c", "bnd6_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swext_vlcno", "vis_swext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swssa_vlcno", "vis_swssa_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swasy_vlcno", "vis_swasy_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "vis_extopdep_vlcno_c", "vis_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swext_vlcno", "nir_swext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swssa_vlcno", "nir_swssa_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swasy_vlcno", "nir_swasy_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nir_extopdep_vlcno_c", "nir_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "small_dust", "sm_dust", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "small_dust_col", "sm_dust_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "large_dust", "lg_dust", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "large_dust_col", "lg_dust_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sulfate", "sulfate", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sulfate_col", "sulfate_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "black_carbon", "blk_crb", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "black_carbon_col", "blk_crb_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "organic_carbon", "org_crb", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "organic_carbon_col", "org_crb_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sea_salt", "salt", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sea_salt_col", "salt_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "aerosol", "aer", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "aerosol_col", "aer_c", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "small_dust_exopdep_vis", "sm_dst_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_nir", "sm_dst_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_con", "sm_dst_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_vis", "sm_dst_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_nir", "sm_dst_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_con", "sm_dst_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_vis", "sm_dst_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_nir", "sm_dst_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_con", "sm_dst_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_vis", "sm_dst_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_nir", "sm_dst_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_con", "sm_dst_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "large_dust_exopdep_vis", "lg_dst_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_nir", "lg_dst_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_con", "lg_dst_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_vis", "lg_dst_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_nir", "lg_dst_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_con", "lg_dst_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_vis", "lg_dst_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_nir", "lg_dst_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_con", "lg_dst_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_vis", "lg_dst_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_nir", "lg_dst_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_con", "lg_dst_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "organic_carbon_exopdep_vis", "org_crb_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_nir", "org_crb_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_con", "org_crb_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_vis", "org_crb_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_nir", "org_crb_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_con", "org_crb_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_vis", "org_crb_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_nir", "org_crb_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_con", "org_crb_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_vis", "org_crb_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_nir", "org_crb_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_con", "org_crb_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "sulfate_exopdep_vis", "sulfate_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_nir", "sulfate_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_con", "sulfate_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_vis", "sulfate_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_nir", "sulfate_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_con", "sulfate_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_vis", "sulfate_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_nir", "sulfate_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_con", "sulfate_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_vis", "sulfate_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_nir", "sulfate_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_con", "sulfate_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "black_carbon_exopdep_vis", "blk_crb_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_nir", "blk_crb_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_con", "blk_crb_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_vis", "blk_crb_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_nir", "blk_crb_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_con", "blk_crb_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_vis", "blk_crb_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_nir", "blk_crb_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_con", "blk_crb_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_vis", "blk_crb_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_nir", "blk_crb_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_con", "blk_crb_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "sea_salt_exopdep_vis", "salt_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_nir", "salt_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_con", "salt_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_vis", "salt_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_nir", "salt_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_con", "salt_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_vis", "salt_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_nir", "salt_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_con", "salt_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_vis", "salt_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_nir", "salt_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_con", "salt_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "aerosol_exopdep_vis", "aer_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_nir", "aer_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_con", "aer_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_vis", "aer_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_nir", "aer_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_con", "aer_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_vis", "aer_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_nir", "aer_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_con", "aer_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_vis", "aer_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_nir", "aer_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_con", "aer_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 +# +## globally averaged ghg + "radiation", "rrvch4", "rrvch4", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvco2", "rrvco2", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf11", "rrvf11", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf12", "rrvf12", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf113","rrvf113","atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf22", "rrvf22", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvn2o", "rrvn2o", "atmos_scalar", "all", .true., "none", 2 + "radiation", "solar_constant", "solar_constant", "atmos_scalar", "all", .true., "none", 2 + +## "radiation" forcing fields for land model: flux_sw_down (4), lwdn_sfc atmos_8xdaily +#"radiation", "flux_sw_down_total_dif", "swdn_tot_dif", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_total_dir", "swdn_tot_dir", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_vis_dif", "swdn_vis_dif", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_vis_dir", "swdn_vis_dir", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "lwdn_sfc", "lwdn_sfc", "atmos_8xdaily", "all", .true., "none", 2 +# + "cloudrad", "high_cld_amt","high_cld_amt","atmos_month", "all", .true., "none", 2 + "cloudrad", "low_cld_amt", "low_cld_amt", "atmos_month", "all", .true., "none", 2 + "cloudrad", "mid_cld_amt", "mid_cld_amt", "atmos_month", "all", .true., "none", 2 + "cloudrad", "tot_cld_amt", "tot_cld_amt", "atmos_month", "all", .true., "none", 2 +# + "damping", "taubx", "taubx", "atmos_month", "all", .true., "none", 2 + "damping", "tauby", "tauby", "atmos_month", "all", .true., "none", 2 + "damping", "udt_gwd", "udt_gwd", "atmos_month", "all", .true., "none", 2 + "damping", "vdt_gwd", "vdt_gwd", "atmos_month", "all", .true., "none", 2 + "damping", "udt_rdamp", "udt_rdamp", "atmos_month", "all", .true., "none", 2 + "damping", "vdt_rdamp", "vdt_rdamp", "atmos_month", "all", .true., "none", 2 +# + "vert_diff", "qdt_vdif", "qdt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "tdt_vdif", "tdt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "udt_vdif", "udt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "vdt_vdif", "vdt_vdif", "atmos_month", "all", .true., "none", 2 + + + + + +#============================================================================================= +# +# +# +# FORMATS FOR FILE ENTRIES (not all input values are used) +# ------------------------ +# +#"file_name", output_freq, "output_units", format, "time_units", "long_name", +# +# +#output_freq: > 0 output frequency in "output_units" +# = 0 output frequency every time step +# =-1 output frequency at end of run +# +#output_units = units used for output frequency +# (years, months, days, minutes, hours, seconds) +# +#time_units = units used to label the time axis +# (days, minutes, hours, seconds) +# +# +# FORMAT FOR FIELD ENTRIES (not all input values are used) +# ------------------------ +# +#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing +# +#time_avg = .true. or .false. +# +#packing = 1 double precision +# = 2 float +# = 4 packed 16-bit integers +# = 8 packed 1-byte (not tested?) + diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/field_table b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/field_table new file mode 100644 index 0000000000..f80202bf2d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/field_table @@ -0,0 +1,31 @@ + +# specific humidity for moist runs + + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / + +# prognotic cloud scheme tracers + + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud liquid specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice water specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud fraction" + "units", "none" / + +# test tracer for radon + +# "TRACER", "atmos_mod", "radon" +# "longname", "radon test tracer" +# "units", "kg/kg" / + +# added by FRE: sphum must be present on land + "TRACER", "land_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / + diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/input.nml b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/input.nml new file mode 100644 index 0000000000..16610a4ed2 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/input.nml @@ -0,0 +1,703 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' +/ + + &SIS_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'SIS_input', + 'SIS_override' +/ + + &aerosol_nml + use_aerosol_timeseries = .false. + aerosol_dataset_entry = 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + family_names = "small_dust", "large_dust", "sulfate", "aerosol" + in_family1 = F,F,F,F,F,T,T,T,T,T,F,F,F,T,T,T,T,T,F,F,F, + in_family2 = F,F,F,F,F,F,F,F,F,F,T,T,T,F,F,F,F,F,T,T,T, + in_family3 = T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F, + in_family4 = T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T, + data_names = "so4_anthro", "so4_natural", "organic_carbon", "black_carbon", "sea_salt", + "anthro_dust_0.1", "anthro_dust_0.2", "anthro_dust_0.4", "anthro_dust_0.8", + "anthro_dust_1.0", "anthro_dust_2.0", "anthro_dust_4.0", "anthro_dust_8.0", + "natural_dust_0.1", "natural_dust_0.2", "natural_dust_0.4", "natural_dust_0.8", + "natural_dust_1.0", "natural_dust_2.0", "natural_dust_4.0", "natural_dust_8.0", + filename = "aerosol.climatology.nc" +/ + + &aerosolrad_package_nml + volcanic_dataset_entry = 1, 1, 1, 0, 0, 0, + using_volcanic_lw_files = .false., + lw_ext_filename = " " + lw_ext_root = " " + lw_asy_filename = " " + lw_asy_root = " " + lw_ssa_filename = " " + lw_ssa_root = " " + using_volcanic_sw_files = .false., + sw_ext_filename = " " + sw_ext_root = " " + sw_ssa_filename = " " + sw_ssa_root = " " + sw_asy_filename = " " + sw_asy_root = " " + do_lwaerosol = .true., + do_swaerosol = .true., + aerosol_data_set = 'shettle_fenn', + optical_filename = "aerosol.optical.dat", + aerosol_optical_names = "sulfate_30%", "sulfate_35%", "sulfate_40%", "sulfate_45%", + "sulfate_50%", "sulfate_55%", "sulfate_60%", "sulfate_65%", + "sulfate_70%", "sulfate_75%", "sulfate_80%", "sulfate_82%", + "sulfate_84%", "sulfate_86%", "sulfate_88%", "sulfate_90%", + "sulfate_91%", "sulfate_92%", "sulfate_93%", "sulfate_94%", + "sulfate_95%", "sulfate_96%", "sulfate_97%", "sulfate_98%", + "sulfate_99%", "sulfate_100%","organic_carbon","soot", + "sea_salt", "dust_0.1", "dust_0.2", "dust_0.4", + "dust_0.8", "dust_1.0", "dust_2.0", "dust_4.0", + "dust_8.0" +/ + + &atmos_co2_nml + do_co2_restore = .true. + restore_tscale = 3.1536e7, + restore_klimit = 24 + co2_radiation_override = .true. + do_co2_emissions = .false. ! turn on for historical free co2 runs +/ + + &atmosphere_nml + physics_window = 0,0 +/ + + &amip_interp_nml + data_set = 'reynolds_oi', + date_out_of_range = 'fail' +/ + + &cg_drag_nml + cg_drag_freq = 1800, + cg_drag_offset = 0, + debug = .false., + calculate_ked = .false., + itest = 12, + jtest = 42, + ktest = 9, + Bt_0 = 0.0015, + lat_limit = 25.0 +/ + + &cloud_rad_nml + overlap = 2, + do_brenguier = .false. +/ + + &cloud_spec_nml + cloud_type_form = 'strat' +/ + + &cloudrad_package_nml + microphys_form = 'predicted' +/ + + &clouds_nml + do_zonal_clouds = .false., + do_obs_clouds = .false. +/ + + &coupler_nml + months = 0, + days = 1, + current_date = 1900,1,1,0,0,0, + calendar = 'NOLEAP', + dt_cpld = 7200, + dt_atmos = 1800, + do_atmos = .true., + do_land = .true., + do_ice = .true., + do_ocean = .true., + atmos_npes = 30, + ocean_npes = 60, + concurrent = .true. + use_lag_fluxes=.true. +/ + + &cu_mo_trans_nml + diff_norm = 2.0 +/ + + &damping_driver_nml + trayfric = -40., + nlev_rayfric = 1, + do_mg_drag = .true., + do_cg_drag = .false., + do_topo_drag = .false., + do_conserve_energy = .true. +/ + + &diag_cloud_nml + linvers = .false., lcnvcld = .false., + l_theqv = .true., lomega = .true., + low_lev_cloud_index = 16, nofog = .false. +/ + + &diag_cloud_rad_nml + l_har_anvil = .true., + l_har_coldcld = .true., + l_anom_abs_v = .true. +/ + + &diag_integral_nml + file_name = 'diag_integral.out', + time_units = 'days', + output_interval = 1.0 +/ + + &diag_manager_nml + max_files = 50, + max_axes = 200, + max_num_axis_sets = 200, + max_input_fields = 800 + max_output_fields = 1300 + mix_snapshot_average_fields=.false. + issue_oor_warnings = .false. ! (default=true) +/ + + &donner_deep_clouds_W_nml + using_dge_sw = .true., + using_dge_lw = .true. +/ + + &donner_deep_nml + donner_deep_offset = 0 + donner_deep_freq = 1800 + save_donner_deep_diagnostics=.true. + cell_liquid_size_type = 'bower' + cell_ice_size_type = 'default' + debug = .false. + kttest=5 + itest=53 + jtest=32 + ktest_model=17 +/ + + &edt_nml + n_print_levels = 14, + use_qcmin = .true., + num_pts_ij = 0, + min_adj_time = 1.0, + do_gaussian_cloud = .false., + use_extrapolated_ql = .false. +/ + + &entrain_nml + convect_shutoff = .true., + apply_entrain = .true., + parcel_buoy = 0.25, + parcel_option = 2, + beta_rad = 0.5, + Ashear = 25.0, + radperturb = 0.10, + critjump = 0.10, + num_pts_ij = 0, + i_entprt_gl = 112, 96, 89,105, 81, 97, + j_entprt_gl = 71, 61, 56, 64, 53, 46 +/ + + &esfsw_parameters_nml + sw_resolution = 'low', + sw_diff_streams = 1 +/ + + &flux_exchange_nml + debug_stocks = .FALSE. + divert_stocks_report = .TRUE. + do_area_weighted_flux = .FALSE. +/ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' + max_files_r = 300 + max_files_w = 300 +/ + + &fv_core_nml + LAYOUT = 0,30 + nlon =144 + mlat=90 + nlev = 24 + ncnst = 4 + pnats = 0 + n_split = 5 + change_time = .true. + consv_te = 0.7 + restart_format='NETCDF' +/ + + &gas_tf_nml + interp_form = 'log' , + do_calcstdco2tfs = .true., + do_writestdco2tfs= .false., + do_readstdco2tfs = .false., + do_calcstdch4tfs = .true., + do_writestdch4tfs= .false., + do_readstdch4tfs = .false., + do_calcstdn2otfs = .true., + do_writestdn2otfs= .false., + do_readstdn2otfs = .false. +/ + +&generic_tracer_nml + do_generic_tracer=.false. + do_generic_CFC=.false. + do_generic_TOPAZ=.false. +/ + +&ice_albedo_nml + t_range = 10. +/ + +&ice_model_nml +/ + +&icebergs_nml + time_average_weight = .false. + speed_limit=0.50 + verbose=.TRUE. + traj_sample_hrs=0 + verbose_hrs=120 +/ + + &lscale_cond_nml + do_evap = .true. +/ + + &lw_gases_stdtf_nml + NSTDCO2LVLS=496 +/ + + &mg_drag_nml + gmax = 1., + acoef = 1., + do_conserve_energy = .true., + source_of_sgsmtn = 'computed' +/ + + µphys_rad_nml + lwem_form = 'fuliou' +/ + + &moist_conv_nml + beta = 0.0 +/ + + &moist_processes_nml + do_lsc=.false., do_strat=.true., do_mca=.false., do_ras=.true., + do_donner_deep = .false., + do_diag_clouds = .false., do_cmt=.true., + do_rh_clouds = .false., + do_gust_cv = .false. + include_donmca_in_cosp = .false. +/ + + &monin_obukhov_nml + stable_option = 2, + rich_crit = 10.0, + zeta_trans = 0.5 +/ + + &my25_turb_nml + do_thv_stab = .true., + TKEmin = 1.e-8, + AKmin_land = 5., + AKmin_sea = 0. +/ + +&ocean_albedo_nml + ocean_albedo_option = 5 +/ + +&ocean_rough_nml + rough_scheme = 'beljaars' +/ + + &ozone_nml + basic_ozone_type = 'fixed_year' , + ozone_dataset_entry = 1990, 1, 1, 0, 0, 0, + data_name = "ozone", + filename = "o3.climatology.nc" +/ + + &physics_driver_nml + do_modis_yim = .false. +/ + + &rad_output_file_nml + write_data_file=.true. +/ + + &rad_utilities_nml +/ + + &radiation_diag_nml + iradprt_gl = 20, 6, + jradprt_gl = 12, 20, + num_pts_ij = 0 +/ + + &radiation_driver_nml + rad_time_step= 10800, + time_varying_solar_constant = .false., + solar_dataset_entry = 1990,1,1,0,0,0, + rad_package = 'sea_esf', + do_clear_sky_pass=.true., + calc_hemi_integrals = .false., + renormalize_sw_fluxes=.true., + all_step_diagnostics = .true., + zenith_spec = 'diurnally_varying', + use_co2_tracer_field = .false. ! not using co2 tracer field + using_restart_file = .false. +/ + + &radiative_gases_nml + verbose = 3 + gas_printout_freq = 240 + + time_varying_co2 = .false., + co2_variation_type = 'linear', + co2_dataset_entry = 1990,1,1,0,0,0, + co2_specification_type = 'time_series', + co2_floor = 100.0E-06, + co2_ceiling = 1600.0E-06, + co2_data_source = 'input' + + time_varying_ch4 = .false., + ch4_variation_type = 'linear' + ch4_dataset_entry = 1990, 1, 1, 0, 0, 0, + ch4_specification_type = 'time_series' + ch4_data_source = 'input' + + time_varying_n2o = .false., + n2o_variation_type = 'linear' + n2o_dataset_entry = 1990, 1, 1, 0, 0, 0, + n2o_specification_type = 'time_series' + n2o_data_source = 'input' + + time_varying_f11 = .false., + f11_variation_type = 'linear' + f11_dataset_entry = 1990, 1, 1, 0, 0, 0, + f11_specification_type = 'time_series' + f11_data_source = 'input' + + time_varying_f12 = .false., + f12_variation_type = 'linear' + f12_dataset_entry = 1990, 1, 1, 0, 0, 0, + f12_specification_type = 'time_series' + f12_data_source = 'input' + + time_varying_f113 = .false., + f113_variation_type = 'linear' + f113_dataset_entry = 1990, 1, 1, 0, 0, 0, + f113_specification_type = 'time_series' + f113_data_source = 'input' + + time_varying_f22 = .false., + f22_variation_type = 'linear' + f22_dataset_entry = 1990, 1, 1, 0, 0, 0, + f22_specification_type = 'time_series' + f22_data_source = 'input' +/ + + &ras_nml + aratio = 1.0, + modify_pbl=.true. + rn_frac_bot = 0.5, + rn_pbot = 800.0e2, + puplim = 20.0e02, + rn_ptop = 500.0e2, + rn_frac_top = 0.975, + Tokioka_on = .true., + Tokioka_con = 0.025, + Tokioka_plim = 500.0e2, + a = 1.6851, 1.1686, 0.7663, 0.5255, 0.4100, 0.3677, + 0.3151, 0.2216, 0.1521, 0.0750, 0.0000, 0.0000, + 0.0000, 0.0000, 0.0000 +/ + + &rh_based_clouds_nml + cirrus_cld_prop_form = 'part', + cldht_type_form = '93' +/ + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. +/ + + &sealw99_nml + do_thick = .false., + do_nlte = .false., + do_lwcldemiss = .true., + do_n2olbltmpint = .false., + continuum_form = 'ckd2.1', + linecatalog_form = 'hitran_2000', + calc_co2_tfs_on_first_step = .true., + calc_co2_tfs_monthly = .false., + co2_tf_time_displacement = 0.0, + calc_ch4_tfs_on_first_step = .true., + calc_ch4_tfs_monthly = .false., + ch4_tf_time_displacement = 0.0, + calc_n2o_tfs_on_first_step = .true., + calc_n2o_tfs_monthly = .false., + n2o_tf_time_displacement = 0.0, + verbose = 5 +/ + + &shortwave_driver_nml + do_cmip_diagnostics = .true., + calculate_volcanic_sw_heating = .false., + swform = 'esfsw99' +/ + + &stable_bl_turb_nml + alsm = 500.0, + alsh = 500.0 +/ + + &strat_cloud_nml + do_old_snowmelt = .true. + U00 = 0.800, + U00_profile = .true., + rthresh = 8.0, + Dmin = 1.0e-07, + n_land = 300.e6, + diff_thresh = 0.1, + mc_thresh = 0.001, + eros_scale = 1.e-6, + eros_choice = .true., + eros_scale_c = 8.e-6, + eros_scale_t = 5.e-5, + super_choice = .true., + tracer_advec = .true. +/ + +&topography_nml + topog_file = 'INPUT/navy_topography.data.nc' +/ + + &vert_diff_driver_nml + do_conserve_energy = .true. +/ + + &vert_turb_driver_nml + use_tau = .false., + gust_scheme = 'beljaars', + do_mellor_yamada = .false., + do_entrain = .true., + do_edt = .false., + do_diffusivity = .false., + do_stable_bl = .true., + do_shallow_conv = .false. +/ + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' +/ + + + &cana_nml + turbulence_to_use = "lm3v" + init_co2 = 286.0e-6 + canopy_air_mass_for_tracers = 10.0 +/ + &glac_data_nml + use_lm2_awc = .true., + rsa_exp_global = 10., + dat_emis_dry = 1., + dat_emis_sat = 1., +/ + &glac_nml + conserve_glacier_mass = .true. + lm2 = .true. +/ + &harvesting_nml + do_harvesting = .FALSE. !!! turn on for LAND USE + grazing_intensity = 0.25 + grazing_residue = 0.1 + frac_wood_wasted_harv = 0.25 + frac_wood_wasted_clear = 0.25 + !frac_wood_fast = ONETHIRD + !frac_wood_med = ONETHIRD + !frac_wood_slow = ONETHIRD + crop_seed_density = 0.1 +/ + &lake_data_nml + lake_to_use = 'from-rivers' + num_l = 20, + dat_emis_dry = 1., + dat_emis_sat = 1., + dat_heat_capacity_ref = 0., + f_iso_liq = 0.02, 0.01 + f_iso_ice = 0.02, 0.01 + f_vol_liq = 0.003, 0. + f_vol_ice = 0.003, 0. + f_geo_liq = 0., 0. + f_geo_ice = 0., 0. +/ + &lake_nml + albedo_to_use = 'brdf-params' + float_ice_to_top = .true. +/ + &land_debug_nml + watch_point = 0,0,0,1 +/ + &land_model_nml + layout = 1,0 + io_layout = 1,1 + tau_snow_T_adj = 604800. +/ + &landuse_nml + do_landuse_change = .false., !!! turn on for LAND USE + input_file = 'INPUT/landuse.nc' +/ + &river_nml + dt_slow = 86400. + land_area_called_cellarea = .true. + all_big_outlet_ctn0 = .true. +/ + &river_physics_nml + lake_sfc_w_min = 20. +/ + &snow_data_nml + emis_snow_max = 1. + emis_snow_min = 1. + z0_momentum = 0.01 + num_l = 5 + dz = 0.05, 0.2, 0.5, 0.2, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0 + f_iso_cold = 0.90, 0.60 + f_vol_cold = 0.09, 0.13 + f_geo_cold = 0.00, 0.00 + f_iso_warm = 0.90, 0.60 + f_vol_warm = 0.09, 0.13 + f_geo_warm = 0.00, 0.00 + depth_crit = 0.05 +/ + &snow_nml + min_snow_mass = 1.e-10 + max_snow = 1000. + albedo_to_use = 'brdf-params' +/ + &soil_data_nml + dat_emis_dry = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_emis_sat = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_tf_depr = 2., 2., 2., 2., 2., 2., 2., 2., 2. + geohydrology_to_use = 'hill_ar5' + gw_scale_soil_depth = 10. + freeze_factor = 2.0 + comp = 1e-4 + num_l = 20 + dz = 0.020, 0.040, 0.040, 0.050, 0.05, 0.100, 0.10, 0.200, 0.200, 0.2, + 0.40, 0.40, 0.40, 0.4, 0.4, 1.0, 1.0, 1.0, 1.5, 2.5 +/ + &soil_nml + init_w = 500. + albedo_to_use = 'brdf-maps' + uptake_to_use = 'darcy2d-linearized' + uptake_oneway = .true. + active_layer_drainage_acceleration = 100. + write_soil_carbon_restart = .FALSE. !To reproduce siena answers +/ + &static_veg_nml + use_static_veg = .FALSE. + timeline = 'loop' + start_loop = 2420, 1, 1, 0, 0, 0 + end_loop = 2470, 1, 1, 0, 0, 0 + fill_land_mask = .TRUE. +/ + &topo_rough_nml + use_topo_rough = .true. + max_topo_rough = 100.0 + topo_rough_factor = 0.01 +/ + &vegn_data_nml + vegn_to_use = 'uniform' + K1=10, + K2=0.1, + fsc_liv=0.9, + fsc_wood=0.45, + c1(4) = 0.3 + c2(4) = 0.3 + Vmax = 2.0E-5, 2.0E-5, 2.0E-5, 2.0E-5, 1.50E-5, + m_cond = 4., 9., 9., 7., 7., + alpha_phot = 0.05, 0.06, 0.06, 0.06, 0.06, + gamma_resp = 0.03, 0.02, 0.02, 0.02, 0.02, + fact_crit_phen(0:4) = 0., 0., 0., 0., 0. + fact_crit_fire(0:4) = 0., 0., 0., 0., 0. + cnst_crit_phen(0:4) = 0.30, 0.15, 0.15, 0.30, 0.30 + cnst_crit_fire(0:4) = 0.15, 0.40, 0.15, 0.15, 0.15 + wet_leaf_dreg(0:4) = .3, .3, .3, .3, .3 + ksi = 0, 0, 0, 0, 0, + leaf_refl(0:4,1) = 0.11, 0.11, 0.10, 0.10, 0.10 + leaf_refl(0:4,2) = 0.58, 0.58, 0.5, 0.5, 0.5, + dat_root_zeta(0:4) = 0.35212, 0.17039, 0.28909, 0.25813, 0.17039 + critical_root_density = 0.0, + tau_drip_s = 259200.0 + cmc_lai(0:4) = 0.02, 0.02, 0.02, 0.02, 0.02 + csc_lai(0:4) = 0.2, 0.2, 0.2, 0.2, 0.2 + dat_snow_crit = 0.0167, 0.0167, 0.0333, 0.2, 0.2 + t_transp_min = 268. + srl(0:1) = 112.0e3, 150.0e3 + root_perm = 14*5e-7 + alpha(1,3) = 4 + leaf_age_tau(2) = 150 + smoke_fraction = 0.9, 0.9, 0.6, 0.6, 0.6 + tg_c3_thresh = 1 + phen_ev2 = 0.925 + cmc_eps = 0.01 + alpha(0:4,6) = 0.0, 0.0, 0.012, 0.012, 0.012 + treefall_disturbance_rate = 0.175, 0.185, 0.025, 0.0275, 0.027 +/ + &vegn_nml + init_Tv = 288.0 + rad_to_use = 'two-stream' + photosynthesis_to_use = 'leuning' + snow_rad_to_use = 'paint-leaves' + co2_to_use_for_photosynthesis ='interactive' + co2_for_photosynthesis = 286.0e-6 + do_cohort_dynamics = .TRUE., + do_patch_disturbance = .TRUE., + do_phenology = .TRUE., + do_biogeography = .TRUE., + do_seed_transport = .TRUE., + tau_smooth_ncm = 22.0 +/ diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/static_input.nml b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/static_input.nml new file mode 100644 index 0000000000..44ca878870 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/static_input.nml @@ -0,0 +1,670 @@ + + &aerosol_nml + use_aerosol_timeseries = .false. + aerosol_dataset_entry = 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + family_names = "small_dust", "large_dust", "sulfate", "aerosol" + in_family1 = F,F,F,F,F,T,T,T,T,T,F,F,F,T,T,T,T,T,F,F,F, + in_family2 = F,F,F,F,F,F,F,F,F,F,T,T,T,F,F,F,F,F,T,T,T, + in_family3 = T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F, + in_family4 = T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T, + data_names = "so4_anthro", "so4_natural", "organic_carbon", "black_carbon", "sea_salt", + "anthro_dust_0.1", "anthro_dust_0.2", "anthro_dust_0.4", "anthro_dust_0.8", + "anthro_dust_1.0", "anthro_dust_2.0", "anthro_dust_4.0", "anthro_dust_8.0", + "natural_dust_0.1", "natural_dust_0.2", "natural_dust_0.4", "natural_dust_0.8", + "natural_dust_1.0", "natural_dust_2.0", "natural_dust_4.0", "natural_dust_8.0", + filename = "aerosol.climatology.nc" +/ + + &aerosolrad_package_nml + volcanic_dataset_entry = 1, 1, 1, 0, 0, 0, + using_volcanic_lw_files = .false., + lw_ext_filename = " " + lw_ext_root = " " + lw_asy_filename = " " + lw_asy_root = " " + lw_ssa_filename = " " + lw_ssa_root = " " + using_volcanic_sw_files = .false., + sw_ext_filename = " " + sw_ext_root = " " + sw_ssa_filename = " " + sw_ssa_root = " " + sw_asy_filename = " " + sw_asy_root = " " + do_lwaerosol = .true., + do_swaerosol = .true., + aerosol_data_set = 'shettle_fenn', + optical_filename = "aerosol.optical.dat", + aerosol_optical_names = "sulfate_30%", "sulfate_35%", "sulfate_40%", "sulfate_45%", + "sulfate_50%", "sulfate_55%", "sulfate_60%", "sulfate_65%", + "sulfate_70%", "sulfate_75%", "sulfate_80%", "sulfate_82%", + "sulfate_84%", "sulfate_86%", "sulfate_88%", "sulfate_90%", + "sulfate_91%", "sulfate_92%", "sulfate_93%", "sulfate_94%", + "sulfate_95%", "sulfate_96%", "sulfate_97%", "sulfate_98%", + "sulfate_99%", "sulfate_100%","organic_carbon","soot", + "sea_salt", "dust_0.1", "dust_0.2", "dust_0.4", + "dust_0.8", "dust_1.0", "dust_2.0", "dust_4.0", + "dust_8.0" +/ + + &atmos_co2_nml + do_co2_restore = .true. + restore_tscale = 3.1536e7, + restore_klimit = 24 + co2_radiation_override = .true. + do_co2_emissions = .false. ! turn on for historical free co2 runs +/ + + &atmosphere_nml + physics_window = 0,0 +/ + + &amip_interp_nml + data_set = 'reynolds_oi', + date_out_of_range = 'fail' +/ + + &cg_drag_nml + cg_drag_freq = 1800, + cg_drag_offset = 0, + debug = .false., + calculate_ked = .false., + itest = 12, + jtest = 42, + ktest = 9, + Bt_0 = 0.0015, + lat_limit = 25.0 +/ + + &cloud_rad_nml + overlap = 2, + do_brenguier = .false. +/ + + &cloud_spec_nml + cloud_type_form = 'strat' +/ + + &cloudrad_package_nml + microphys_form = 'predicted' +/ + + &clouds_nml + do_zonal_clouds = .false., + do_obs_clouds = .false. +/ + + + &cu_mo_trans_nml + diff_norm = 2.0 +/ + + &damping_driver_nml + trayfric = -40., + nlev_rayfric = 1, + do_mg_drag = .true., + do_cg_drag = .false., + do_topo_drag = .false., + do_conserve_energy = .true. +/ + + &diag_cloud_nml + linvers = .false., lcnvcld = .false., + l_theqv = .true., lomega = .true., + low_lev_cloud_index = 16, nofog = .false. +/ + + &diag_cloud_rad_nml + l_har_anvil = .true., + l_har_coldcld = .true., + l_anom_abs_v = .true. +/ + + &diag_integral_nml + file_name = 'diag_integral.out', + time_units = 'days', + output_interval = 1.0 +/ + + &diag_manager_nml + max_files = 50, + max_axes = 200, + max_num_axis_sets = 200, + max_input_fields = 800 + max_output_fields = 1300 + mix_snapshot_average_fields=.false. + issue_oor_warnings = .false. ! (default=true) +/ + + &donner_deep_clouds_W_nml + using_dge_sw = .true., + using_dge_lw = .true. +/ + + &donner_deep_nml + donner_deep_offset = 0 + donner_deep_freq = 1800 + save_donner_deep_diagnostics=.true. + cell_liquid_size_type = 'bower' + cell_ice_size_type = 'default' + debug = .false. + kttest=5 + itest=53 + jtest=32 + ktest_model=17 +/ + + &edt_nml + n_print_levels = 14, + use_qcmin = .true., + num_pts_ij = 0, + min_adj_time = 1.0, + do_gaussian_cloud = .false., + use_extrapolated_ql = .false. +/ + + &entrain_nml + convect_shutoff = .true., + apply_entrain = .true., + parcel_buoy = 0.25, + parcel_option = 2, + beta_rad = 0.5, + Ashear = 25.0, + radperturb = 0.10, + critjump = 0.10, + num_pts_ij = 0, + i_entprt_gl = 112, 96, 89,105, 81, 97, + j_entprt_gl = 71, 61, 56, 64, 53, 46 +/ + + &esfsw_parameters_nml + sw_resolution = 'low', + sw_diff_streams = 1 +/ + + &flux_exchange_nml + debug_stocks = .FALSE. + divert_stocks_report = .TRUE. + do_area_weighted_flux = .FALSE. +/ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' + max_files_r = 300 + max_files_w = 300 +/ + + &fv_core_nml + LAYOUT = 0,30 + nlon =144 + mlat=90 + nlev = 24 + ncnst = 4 + pnats = 0 + n_split = 5 + change_time = .true. + consv_te = 0.7 + restart_format='NETCDF' +/ + + &gas_tf_nml + interp_form = 'log' , + do_calcstdco2tfs = .true., + do_writestdco2tfs= .false., + do_readstdco2tfs = .false., + do_calcstdch4tfs = .true., + do_writestdch4tfs= .false., + do_readstdch4tfs = .false., + do_calcstdn2otfs = .true., + do_writestdn2otfs= .false., + do_readstdn2otfs = .false. +/ + +&generic_tracer_nml + do_generic_tracer=.false. + do_generic_CFC=.false. + do_generic_TOPAZ=.false. +/ + +&ice_albedo_nml + t_range = 10. +/ + +&ice_model_nml +/ + +&icebergs_nml + time_average_weight = .false. + speed_limit=0.50 + verbose=.TRUE. + traj_sample_hrs=0 + verbose_hrs=120 +/ + + &lscale_cond_nml + do_evap = .true. +/ + + &lw_gases_stdtf_nml + NSTDCO2LVLS=496 +/ + + &mg_drag_nml + gmax = 1., + acoef = 1., + do_conserve_energy = .true., + source_of_sgsmtn = 'computed' +/ + + µphys_rad_nml + lwem_form = 'fuliou' +/ + + &moist_conv_nml + beta = 0.0 +/ + + &moist_processes_nml + do_lsc=.false., do_strat=.true., do_mca=.false., do_ras=.true., + do_donner_deep = .false., + do_diag_clouds = .false., do_cmt=.true., + do_rh_clouds = .false., + do_gust_cv = .false. + include_donmca_in_cosp = .false. +/ + + &monin_obukhov_nml + stable_option = 2, + rich_crit = 10.0, + zeta_trans = 0.5 +/ + + &my25_turb_nml + do_thv_stab = .true., + TKEmin = 1.e-8, + AKmin_land = 5., + AKmin_sea = 0. +/ + +&ocean_albedo_nml + ocean_albedo_option = 5 +/ + +&ocean_rough_nml + rough_scheme = 'beljaars' +/ + + &ozone_nml + basic_ozone_type = 'fixed_year' , + ozone_dataset_entry = 1990, 1, 1, 0, 0, 0, + data_name = "ozone", + filename = "o3.climatology.nc" +/ + + &physics_driver_nml + do_modis_yim = .false. +/ + + &rad_output_file_nml + write_data_file=.true. +/ + + &rad_utilities_nml +/ + + &radiation_diag_nml + iradprt_gl = 20, 6, + jradprt_gl = 12, 20, + num_pts_ij = 0 +/ + + &radiation_driver_nml + rad_time_step= 10800, + time_varying_solar_constant = .false., + solar_dataset_entry = 1990,1,1,0,0,0, + rad_package = 'sea_esf', + do_clear_sky_pass=.true., + calc_hemi_integrals = .false., + renormalize_sw_fluxes=.true., + all_step_diagnostics = .true., + zenith_spec = 'diurnally_varying', + use_co2_tracer_field = .false. ! not using co2 tracer field + using_restart_file = .false. +/ + + &radiative_gases_nml + verbose = 3 + gas_printout_freq = 240 + + time_varying_co2 = .false., + co2_variation_type = 'linear', + co2_dataset_entry = 1990,1,1,0,0,0, + co2_specification_type = 'time_series', + co2_floor = 100.0E-06, + co2_ceiling = 1600.0E-06, + co2_data_source = 'input' + + time_varying_ch4 = .false., + ch4_variation_type = 'linear' + ch4_dataset_entry = 1990, 1, 1, 0, 0, 0, + ch4_specification_type = 'time_series' + ch4_data_source = 'input' + + time_varying_n2o = .false., + n2o_variation_type = 'linear' + n2o_dataset_entry = 1990, 1, 1, 0, 0, 0, + n2o_specification_type = 'time_series' + n2o_data_source = 'input' + + time_varying_f11 = .false., + f11_variation_type = 'linear' + f11_dataset_entry = 1990, 1, 1, 0, 0, 0, + f11_specification_type = 'time_series' + f11_data_source = 'input' + + time_varying_f12 = .false., + f12_variation_type = 'linear' + f12_dataset_entry = 1990, 1, 1, 0, 0, 0, + f12_specification_type = 'time_series' + f12_data_source = 'input' + + time_varying_f113 = .false., + f113_variation_type = 'linear' + f113_dataset_entry = 1990, 1, 1, 0, 0, 0, + f113_specification_type = 'time_series' + f113_data_source = 'input' + + time_varying_f22 = .false., + f22_variation_type = 'linear' + f22_dataset_entry = 1990, 1, 1, 0, 0, 0, + f22_specification_type = 'time_series' + f22_data_source = 'input' +/ + + &ras_nml + aratio = 1.0, + modify_pbl=.true. + rn_frac_bot = 0.5, + rn_pbot = 800.0e2, + puplim = 20.0e02, + rn_ptop = 500.0e2, + rn_frac_top = 0.975, + Tokioka_on = .true., + Tokioka_con = 0.025, + Tokioka_plim = 500.0e2, + a = 1.6851, 1.1686, 0.7663, 0.5255, 0.4100, 0.3677, + 0.3151, 0.2216, 0.1521, 0.0750, 0.0000, 0.0000, + 0.0000, 0.0000, 0.0000 +/ + + &rh_based_clouds_nml + cirrus_cld_prop_form = 'part', + cldht_type_form = '93' +/ + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. +/ + + &sealw99_nml + do_thick = .false., + do_nlte = .false., + do_lwcldemiss = .true., + do_n2olbltmpint = .false., + continuum_form = 'ckd2.1', + linecatalog_form = 'hitran_2000', + calc_co2_tfs_on_first_step = .true., + calc_co2_tfs_monthly = .false., + co2_tf_time_displacement = 0.0, + calc_ch4_tfs_on_first_step = .true., + calc_ch4_tfs_monthly = .false., + ch4_tf_time_displacement = 0.0, + calc_n2o_tfs_on_first_step = .true., + calc_n2o_tfs_monthly = .false., + n2o_tf_time_displacement = 0.0, + verbose = 5 +/ + + &shortwave_driver_nml + do_cmip_diagnostics = .true., + calculate_volcanic_sw_heating = .false., + swform = 'esfsw99' +/ + + &stable_bl_turb_nml + alsm = 500.0, + alsh = 500.0 +/ + + &strat_cloud_nml + do_old_snowmelt = .true. + U00 = 0.800, + U00_profile = .true., + rthresh = 8.0, + Dmin = 1.0e-07, + n_land = 300.e6, + diff_thresh = 0.1, + mc_thresh = 0.001, + eros_scale = 1.e-6, + eros_choice = .true., + eros_scale_c = 8.e-6, + eros_scale_t = 5.e-5, + super_choice = .true., + tracer_advec = .true. +/ + +&topography_nml + topog_file = 'INPUT/navy_topography.data.nc' +/ + + &vert_diff_driver_nml + do_conserve_energy = .true. +/ + + &vert_turb_driver_nml + use_tau = .false., + gust_scheme = 'beljaars', + do_mellor_yamada = .false., + do_entrain = .true., + do_edt = .false., + do_diffusivity = .false., + do_stable_bl = .true., + do_shallow_conv = .false. +/ + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' +/ + + + &cana_nml + turbulence_to_use = "lm3v" + init_co2 = 286.0e-6 + canopy_air_mass_for_tracers = 10.0 +/ + &glac_data_nml + use_lm2_awc = .true., + rsa_exp_global = 10., + dat_emis_dry = 1., + dat_emis_sat = 1., +/ + &glac_nml + conserve_glacier_mass = .true. + lm2 = .true. +/ + &harvesting_nml + do_harvesting = .FALSE. !!! turn on for LAND USE + grazing_intensity = 0.25 + grazing_residue = 0.1 + frac_wood_wasted_harv = 0.25 + frac_wood_wasted_clear = 0.25 + !frac_wood_fast = ONETHIRD + !frac_wood_med = ONETHIRD + !frac_wood_slow = ONETHIRD + crop_seed_density = 0.1 +/ + &lake_data_nml + lake_to_use = 'from-rivers' + num_l = 20, + dat_emis_dry = 1., + dat_emis_sat = 1., + dat_heat_capacity_ref = 0., + f_iso_liq = 0.02, 0.01 + f_iso_ice = 0.02, 0.01 + f_vol_liq = 0.003, 0. + f_vol_ice = 0.003, 0. + f_geo_liq = 0., 0. + f_geo_ice = 0., 0. +/ + &lake_nml + albedo_to_use = 'brdf-params' + float_ice_to_top = .true. +/ + &land_debug_nml + watch_point = 0,0,0,1 +/ + &land_model_nml + layout = 1,0 + io_layout = 1,1 + tau_snow_T_adj = 604800. +/ + &landuse_nml + do_landuse_change = .false., !!! turn on for LAND USE + input_file = 'INPUT/landuse.nc' +/ + &river_nml + dt_slow = 86400. + land_area_called_cellarea = .true. + all_big_outlet_ctn0 = .true. +/ + &river_physics_nml + lake_sfc_w_min = 20. +/ + &snow_data_nml + emis_snow_max = 1. + emis_snow_min = 1. + z0_momentum = 0.01 + num_l = 5 + dz = 0.05, 0.2, 0.5, 0.2, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0 + f_iso_cold = 0.90, 0.60 + f_vol_cold = 0.09, 0.13 + f_geo_cold = 0.00, 0.00 + f_iso_warm = 0.90, 0.60 + f_vol_warm = 0.09, 0.13 + f_geo_warm = 0.00, 0.00 + depth_crit = 0.05 +/ + &snow_nml + min_snow_mass = 1.e-10 + max_snow = 1000. + albedo_to_use = 'brdf-params' +/ + &soil_data_nml + dat_emis_dry = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_emis_sat = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_tf_depr = 2., 2., 2., 2., 2., 2., 2., 2., 2. + geohydrology_to_use = 'hill_ar5' + gw_scale_soil_depth = 10. + freeze_factor = 2.0 + comp = 1e-4 + num_l = 20 + dz = 0.020, 0.040, 0.040, 0.050, 0.05, 0.100, 0.10, 0.200, 0.200, 0.2, + 0.40, 0.40, 0.40, 0.4, 0.4, 1.0, 1.0, 1.0, 1.5, 2.5 +/ + &soil_nml + init_w = 500. + albedo_to_use = 'brdf-maps' + uptake_to_use = 'darcy2d-linearized' + uptake_oneway = .true. + active_layer_drainage_acceleration = 100. + write_soil_carbon_restart = .FALSE. !To reproduce siena answers +/ + &static_veg_nml + use_static_veg = .FALSE. + timeline = 'loop' + start_loop = 2420, 1, 1, 0, 0, 0 + end_loop = 2470, 1, 1, 0, 0, 0 + fill_land_mask = .TRUE. +/ + &topo_rough_nml + use_topo_rough = .true. + max_topo_rough = 100.0 + topo_rough_factor = 0.01 +/ + &vegn_data_nml + vegn_to_use = 'uniform' + K1=10, + K2=0.1, + fsc_liv=0.9, + fsc_wood=0.45, + c1(4) = 0.3 + c2(4) = 0.3 + Vmax = 2.0E-5, 2.0E-5, 2.0E-5, 2.0E-5, 1.50E-5, + m_cond = 4., 9., 9., 7., 7., + alpha_phot = 0.05, 0.06, 0.06, 0.06, 0.06, + gamma_resp = 0.03, 0.02, 0.02, 0.02, 0.02, + fact_crit_phen(0:4) = 0., 0., 0., 0., 0. + fact_crit_fire(0:4) = 0., 0., 0., 0., 0. + cnst_crit_phen(0:4) = 0.30, 0.15, 0.15, 0.30, 0.30 + cnst_crit_fire(0:4) = 0.15, 0.40, 0.15, 0.15, 0.15 + wet_leaf_dreg(0:4) = .3, .3, .3, .3, .3 + ksi = 0, 0, 0, 0, 0, + leaf_refl(0:4,1) = 0.11, 0.11, 0.10, 0.10, 0.10 + leaf_refl(0:4,2) = 0.58, 0.58, 0.5, 0.5, 0.5, + dat_root_zeta(0:4) = 0.35212, 0.17039, 0.28909, 0.25813, 0.17039 + critical_root_density = 0.0, + tau_drip_s = 259200.0 + cmc_lai(0:4) = 0.02, 0.02, 0.02, 0.02, 0.02 + csc_lai(0:4) = 0.2, 0.2, 0.2, 0.2, 0.2 + dat_snow_crit = 0.0167, 0.0167, 0.0333, 0.2, 0.2 + t_transp_min = 268. + srl(0:1) = 112.0e3, 150.0e3 + root_perm = 14*5e-7 + alpha(1,3) = 4 + leaf_age_tau(2) = 150 + smoke_fraction = 0.9, 0.9, 0.6, 0.6, 0.6 + tg_c3_thresh = 1 + phen_ev2 = 0.925 + cmc_eps = 0.01 + alpha(0:4,6) = 0.0, 0.0, 0.012, 0.012, 0.012 + treefall_disturbance_rate = 0.175, 0.185, 0.025, 0.0275, 0.027 +/ + &vegn_nml + init_Tv = 288.0 + rad_to_use = 'two-stream' + photosynthesis_to_use = 'leuning' + snow_rad_to_use = 'paint-leaves' + co2_to_use_for_photosynthesis ='interactive' + co2_for_photosynthesis = 286.0e-6 + do_cohort_dynamics = .TRUE., + do_patch_disturbance = .TRUE., + do_phenology = .TRUE., + do_biogeography = .TRUE., + do_seed_transport = .TRUE., + tau_smooth_ncm = 22.0 +/ diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.intel b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.intel new file mode 100644 index 0000000000..555f1697b0 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.intel @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 693135.000, 0, En 6.941081183736E-01, CFL 0.00000, SL 4.5150E-11, M 1.37957E+21, S 34.7203, T 3.6137, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 693135.250, 0, En 7.168943848473E-01, CFL 0.14126, SL -3.3931E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.23E-15, Se 4.17E-14, Te 1.87E-14 + 6, 693135.500, 0, En 7.185782911961E-01, CFL 0.10115, SL -9.2547E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.44E-15, Se 4.75E-14, Te 2.09E-14 + 9, 693135.750, 0, En 7.181631595837E-01, CFL 0.16960, SL 4.5100E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 4.99E-14, Te 2.27E-14 + 12, 693136.000, 0, En 7.174063531558E-01, CFL 0.18500, SL 1.3258E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.02E-14, Te 2.32E-14 diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.pgi b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.pgi new file mode 100644 index 0000000000..6f722fdc8c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2B_MOM6i_1deg/timestats.pgi @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 693135.000, 0, En 6.941101031888E-01, CFL 0.00000, SL 4.4642E-11, M 1.37957E+21, S 34.7203, T 3.6137, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 693135.250, 0, En 7.169011078877E-01, CFL 0.14126, SL -3.3614E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.23E-15, Se 4.16E-14, Te 1.87E-14 + 6, 693135.500, 0, En 7.185544704051E-01, CFL 0.10138, SL -8.6401E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.44E-15, Se 4.76E-14, Te 2.09E-14 + 9, 693135.750, 0, En 7.180959023113E-01, CFL 0.19517, SL 5.2741E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.00E-14, Te 2.27E-14 + 12, 693136.000, 0, En 7.173961960814E-01, CFL 0.19024, SL 1.4086E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.02E-14, Te 2.32E-14 diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/.datasets b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/.datasets new file mode 120000 index 0000000000..49bfd65f86 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/.datasets @@ -0,0 +1 @@ +../../../.datasets/ \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/BetaDistributionTable.txt b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/BetaDistributionTable.txt new file mode 120000 index 0000000000..e9c59bdbb2 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/BetaDistributionTable.txt @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/BetaDistributionTable.txt \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README new file mode 120000 index 0000000000..5c85f37f2b --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/mosaic.unpacked/README \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README_atmos2004 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README_atmos2004 new file mode 120000 index 0000000000..31c0da7b3a --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/README_atmos2004 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/README_atmos2004 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/aerosol.optical.dat b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/aerosol.optical.dat new file mode 120000 index 0000000000..18855f2a0d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/aerosol.optical.dat @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/aerosol.optical.dat \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/annual_mean_ozone b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/annual_mean_ozone new file mode 120000 index 0000000000..93740aaba7 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/annual_mean_ozone @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/annual_mean_ozone \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ch4_gblannualdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ch4_gblannualdata new file mode 120000 index 0000000000..c894870a04 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ch4_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/ch4_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/co2_gblannualdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/co2_gblannualdata new file mode 120000 index 0000000000..c7ed97ac9f --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/co2_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/co2_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/coupler.res b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/coupler.res new file mode 120000 index 0000000000..aea75f93ae --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/coupler.res @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/RESTART/CM2G.initCond_2011.12.16.unpacked/coupler.res \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/cover_type_field b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/cover_type_field new file mode 120000 index 0000000000..eed4daa13f --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/cover_type_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/cover_type_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/eftsw4str b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/eftsw4str new file mode 120000 index 0000000000..a148577762 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/eftsw4str @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/eftsw4str \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 new file mode 120000 index 0000000000..8cd3ca1194 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n38b18 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/esf_sw_input_data_n38b18 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 new file mode 120000 index 0000000000..85d156e031 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/esf_sw_input_data_n72b25 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/esf_sw_input_data_n72b25 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f113_gblannualdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f113_gblannualdata new file mode 120000 index 0000000000..2d5416430a --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f113_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f113_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f11_gblannualdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f11_gblannualdata new file mode 120000 index 0000000000..f664d39185 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f11_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f11_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f12_gblannualdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f12_gblannualdata new file mode 120000 index 0000000000..18ca43a476 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f12_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f12_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f22_gblannualdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f22_gblannualdata new file mode 120000 index 0000000000..f8981d2549 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/f22_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/f22_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ground_type_field b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ground_type_field new file mode 120000 index 0000000000..d35693046c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/ground_type_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/ground_type_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/groundwater_residence_time_field b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/groundwater_residence_time_field new file mode 120000 index 0000000000..ade40b9165 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/groundwater_residence_time_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/groundwater_residence_time_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi00_data b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi00_data new file mode 120000 index 0000000000..1896652afb --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi00_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2o12001400_hi00_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi92_data b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi92_data new file mode 120000 index 0000000000..b4b1f338a0 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2o12001400_hi92_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2o12001400_hi92_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata new file mode 120000 index 0000000000..0d12259ea4 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_corrdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ockd2.1_corrdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_data b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_data new file mode 120000 index 0000000000..f9f05e8f63 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.1_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ockd2.1_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata new file mode 120000 index 0000000000..385b13b77d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ockd2.4_corrdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ockd2.4_corrdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 new file mode 120000 index 0000000000..36c8d97cba --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_ckd_0_3000_10cm_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 new file mode 120000 index 0000000000..b9ccc818fd --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_ckd_speccombwidebds_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 new file mode 120000 index 0000000000..d6ee762faf --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_ckd_speccombwidebds_hi92 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 new file mode 120000 index 0000000000..5a0c77e1e5 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_rsb_0_3000_10cm_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 new file mode 120000 index 0000000000..ccadc74a94 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_rsb_speccombwidebds_hi00 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 new file mode 120000 index 0000000000..2a1e17b23d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/h2ocoeff_rsb_speccombwidebds_hi92 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1ch4n2 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1ch4n2 new file mode 120000 index 0000000000..588274a96f --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1ch4n2 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id1ch4n2 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1o3 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1o3 new file mode 120000 index 0000000000..083a14aa9b --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id1o3 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id1o3 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdckd2p1 b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdckd2p1 new file mode 120000 index 0000000000..1447d7d443 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdckd2p1 @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id2h2obdckd2p1 \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdfull b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdfull new file mode 120000 index 0000000000..6601d06213 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2obdfull @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id2h2obdfull \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2orbts b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2orbts new file mode 120000 index 0000000000..1c4db818d1 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/id2h2orbts @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/id2h2orbts \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat new file mode 120000 index 0000000000..f196591148 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/lean_solar_spectral_data.dat @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/lean_solar_spectral_data.dat \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/n2o_gblannualdata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/n2o_gblannualdata new file mode 120000 index 0000000000..def81ea7da --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/n2o_gblannualdata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/n2o_gblannualdata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi00_data b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi00_data new file mode 120000 index 0000000000..53a07fe2f6 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi00_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/o39001200_hi00_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi92_data b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi92_data new file mode 120000 index 0000000000..44405896c8 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/o39001200_hi92_data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/o39001200_hi92_data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k new file mode 120000 index 0000000000..13995a588c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/radfn_5-2995_100-490k @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/radfn_5-2995_100-490k \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/randelo3data b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/randelo3data new file mode 120000 index 0000000000..f0c9d42071 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/randelo3data @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/randelo3data \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/river_destination_field b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/river_destination_field new file mode 120000 index 0000000000..f661f020fe --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/river_destination_field @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/river_destination_field \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/seasonal_ozone b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/seasonal_ozone new file mode 120000 index 0000000000..031bb8ceb9 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/seasonal_ozone @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/seasonal_ozone \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/stdlvls b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/stdlvls new file mode 120000 index 0000000000..ca0059e88c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/stdlvls @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/stdlvls \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/swstratendramadata b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/swstratendramadata new file mode 120000 index 0000000000..c77a2ce945 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/INPUT/swstratendramadata @@ -0,0 +1 @@ +.datasets/CM2G63L/siena/INPUT/swstratendramadata \ No newline at end of file diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_input b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_input new file mode 100644 index 0000000000..632cb8fee6 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_input @@ -0,0 +1,639 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in AM2_MOM6i_1deg. + This particular file is for the example in SIS2. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_kappa_shear === +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_memory.h b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_memory.h new file mode 100644 index 0000000000..927abe339c --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_memory.h @@ -0,0 +1,45 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This include file determines the compile-time memory settings * +!* for the Modular Ocean Model (MOM), versions 6 and later. * +!********+*********+*********+*********+*********+*********+*********+* + +! Specify the numerical domain. +#define NIGLOBAL_ 360 +#define NJGLOBAL_ 210 + ! NIGLOBAL_ and NJGLOBAL_ are the number of thickness + ! grid points in the zonal and meridional + ! directions of the physical domain. +#define NK_ 63 + ! The number of layers. + +#define STATIC_MEMORY_ + ! If STATIC_MEMORY_ is defined, the principle + ! variables will have sizes that are statically + ! determined at compile time. Otherwise the + ! sizes are not determined until run time. The + ! STATIC option is substantially faster, but + ! does not allow the PE count to be changed at + ! run time. + +#define NIPROC_ 10 + ! NIPROC_ is the number of processors in the + ! x-direction. +#define NJPROC_ 6 + ! NJPROC_ is the number of processors in the + ! y-direction. + +#define MAX_FIELDS_ 80 + ! The maximum permitted number (each) of + ! restart variables, time derivatives, etc. + ! This is mostly used for the size of pointer + ! arrays, so it should be set generously. + +#define NIHALO_ 4 +#define NJHALO_ 4 + ! NIHALO_ and NJHALO_ are the sizes of the + ! memory halos on each side. +#define BTHALO_ 10 + ! BTHALO_ is the size of the memory halos in + ! the barotropic solver. + +#include diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_override b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_override new file mode 100644 index 0000000000..5d67420dc4 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_override @@ -0,0 +1 @@ +! Blank file in which we can put "overrides" for parameters diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.all b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.all new file mode 100644 index 0000000000..62c2c315b6 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.all @@ -0,0 +1,1655 @@ +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +LAYOUT = 0, 0 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to + ! calculate accelerations and the mass for conservation + ! properties, or with BOUSSINSEQ false to convert some + ! parameters from vertical units of m to kg m-2. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first + ! in parts of the code that use directionally split + ! updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minumum layer thickness, usually one-Angstrom. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths + ! at velocity points. Otherwise the effects of of + ! topography are entirely determined from thickness points. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +AVAILABLE_DIAGS_FILE = "available_diags.000030" ! default = "available_diags.000030" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +SPLIT = True ! [Boolean] default = True + ! Use the split time stepping if true. +USE_LEGACY_SPLIT = False ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state + ! variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and + ! salinity with an equation of state. If USE_EOS is + ! true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, + ! including buoyancy forcing and mass gain or loss, + ! before stepping the dynamics forward. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is + ! true. This assumes that KD = KDML = 0.0 and that + ! there is no buoyancy forcing, but makes the model + ! faster by eliminating subroutine calls. +BULKMIXEDLAYER = True ! [Boolean] default = True + ! If true, use a Kraus-Turner-like bulk mixed layer + ! with transitional buffer layers. Layers 1 through + ! NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. + ! The default is the same setting as ENABLE_THERMODYNAMICS. +USE_REGRIDDING = False ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for + ! debugging truncations. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure + ! over the coupling time step, using the specified value + ! at the end of the step. +SSH_SMOOTHING_PASSES = 0.0 ! [nondim] default = 0.0 + ! The number of Laplacian smoothing passes to apply to the + ! the sea surface height that is reported to the sea-ice. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate + ! density. (1 Pa = 1e4 dbar, so 2e7 is commonly used.) + ! This is only used if USE_EOS and ENABLE_THERMODYNAMICS + ! are true. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state + ! should be used. Currently, the valid choices are + ! "LINEAR", "UNESCO", and "WRIGHT". + ! This is only used if USE_EOS is true. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code + ! code for the integrals of density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be + ! used for the freezing point. Currently, the valid + ! choices are "LINEAR", "MILLERO_78". +TFREEZE_S0_P0 = 0.0 ! [deg C] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the freezing potential temperature at + ! S=0, P=0. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure. +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +LARGE_FILE_SUPPORT = True ! [Boolean] default = True + ! If true, use the file-size limits with NetCDF large + ! file support (4Gb), otherwise the limit is 2Gb. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a + ! preprocessor macro, use the MOM_generic_tracer packages. + +! === module ideal_age_example === +DO_IDEAL_AGE = True ! [Boolean] default = True + ! If true, use an ideal age tracer that is set to 0 age + ! in the mixed layer and ages at unit rate in the interior. +DO_IDEAL_VINTAGE = False ! [Boolean] default = False + ! If true, use an ideal vintage tracer that is set to an + ! exponentially increasing value in the mixed layer and + ! is conserved thereafter. +DO_IDEAL_AGE_DATED = False ! [Boolean] default = False + ! If true, use an ideal age tracer that is everywhere 0 + ! before IDEAL_AGE_DATED_START_YEAR, but the behaves like + ! the standard ideal age tracer - i.e. is set to 0 age in + ! the mixed layer and ages at unit rate in the interior. +AGE_IC_FILE = "" ! default = "" + ! The file in which the age-tracer initial values can be + ! found, or an empty string for internal initialization. +AGE_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, AGE_IC_FILE is in depth space, not layer space +MASK_MASSLESS_TRACERS = False ! [Boolean] default = False + ! If true, the tracers are masked out in massless layer. + ! This can be a problem with time-averages. +TRACERS_MAY_REINIT = False ! [Boolean] default = False + ! If true, tracers may go through the initialization code + ! if they are not found in the restart files. Otherwise + ! it is a fatal error if the tracers are not found in the + ! restart files of a restarted run. + +! === module MOM_OCMIP2_CFC === +CFC_IC_FILE = "" ! default = "" + ! The file in which the CFC initial values can be + ! found, or an empty string for internal initialization. +CFC_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, CFC_IC_FILE is in depth space, not layer space +CFC11_A1 = 3501.8 ! [nondim] default = 3501.8 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A2 = -210.31 ! [degC-1] default = -210.31 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A3 = 6.1851 ! [degC-2] default = 6.1851 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A4 = -0.07513 ! [degC-3] default = -0.07513 + ! A coefficient in the Schmidt number of CFC11. +CFC12_A1 = 3845.4 ! [nondim] default = 3845.4 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A2 = -228.95 ! [degC-1] default = -228.95 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A3 = 6.1908 ! [degC-2] default = 6.1908 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A4 = -0.06743 ! [degC-3] default = -0.06743 + ! A coefficient in the Schmidt number of CFC12. +CFC11_D1 = -229.9261 ! [none] default = -229.9261 + ! A coefficient in the solubility of CFC11. +CFC11_D2 = 319.6552 ! [hK] default = 319.6552 + ! A coefficient in the solubility of CFC11. +CFC11_D3 = 119.4471 ! [none] default = 119.4471 + ! A coefficient in the solubility of CFC11. +CFC11_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC11. +CFC11_E1 = -0.142382 ! [PSU-1] default = -0.142382 + ! A coefficient in the solubility of CFC11. +CFC11_E2 = 0.091459 ! [PSU-1 hK-1] default = 0.091459 + ! A coefficient in the solubility of CFC11. +CFC11_E3 = -0.0157274 ! [PSU-1 hK-2] default = -0.0157274 + ! A coefficient in the solubility of CFC11. +CFC12_D1 = -218.0971 ! [none] default = -218.0971 + ! A coefficient in the solubility of CFC12. +CFC12_D2 = 298.9702 ! [hK] default = 298.9702 + ! A coefficient in the solubility of CFC12. +CFC12_D3 = 113.8049 ! [none] default = 113.8049 + ! A coefficient in the solubility of CFC12. +CFC12_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC12. +CFC12_E1 = -0.143566 ! [PSU-1] default = -0.143566 + ! A coefficient in the solubility of CFC12. +CFC12_E2 = 0.091015 ! [PSU-1 hK-1] default = 0.091015 + ! A coefficient in the solubility of CFC12. +CFC12_E3 = -0.0153924 ! [PSU-1 hK-2] default = -0.0153924 + ! A coefficient in the solubility of CFC12. +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. +COORD_VAR = "Layer" ! default = "Layer" + ! The variable in COORD_FILE that is to be used for the + ! coordinate densities. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +TOPO_FILE = "topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative. +APPLY_OBC_U_FLATHER_EAST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the eastern + ! side of the global domain +APPLY_OBC_U_FLATHER_WEST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the western + ! side of the global domain +APPLY_OBC_V_FLATHER_NORTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the northern + ! side of the global domain +APPLY_OBC_V_FLATHER_SOUTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the southern + ! side of the global domain +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ROTATION = "2omegasinlat" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +USE_OLD_HINTERP = True ! [Boolean] default = True + ! If true, use older version of hinterp, + ! in order to reproduce siena answers.Recommended setting is False +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = False ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated + ! initial conditions. +Z_INIT_ALE_REMAPPING = False ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAPPING_SCHEME = "PPM_IH4" ! default = "PPM_IH4" + ! The remapping scheme to use if using Z_INIT_ALE_REMAPPING + ! is True. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +FIT_TO_TARGET_DENSITY_IC = True ! [Boolean] default = True + ! If true, all the interior layers are adjusted to + ! their target densities using mostly temperature + ! This approach can be problematic, particularly in the + ! high latitudes. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities + ! are specified for a new run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! paremters TORUS_U and TORUS_V). + ! USER - call a user modified routine. +CONVERT_THICKNESS_UNITS = False ! [Boolean] default = False + ! If true, convert the thickness initial conditions from + ! units of m to kg m-2 or vice versa, depending on whether + ! BOUSSINESQ is defined. This does not apply if a restart + ! file is read. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge + ! tsunamis when a large surface pressure is applied. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. + ! The exact location and properties of those sponges are + ! specified via SPONGE_CONFIG. +APPLY_OBC_U = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! u-points, with the configuration controlled by OBC_CONFIG +APPLY_OBC_V = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! v-points, with the configuration controlled by OBC_CONFIG + +! === module MOM_MEKE === +MEKE_DAMPING = 0.0 ! [s-1] default = 0.0 + ! The local depth-indepented MEKE dissipation rate. +MEKE_CD_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scaling for the bottom drag applied to MEKE. This + ! should be less than 1 to account for the surface + ! intensification of MEKE and the fraction of MEKE that + ! may be temporarily stored as potential energy. +MEKE_GMCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_FRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into + ! MEKE. If MEKE_FRCOEFF is negative, this conversion + ! is not used or calculated. +MEKE_BGSRC = 0.0 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KH = -1.0 ! [m2 s-1] default = -1.0 + ! A background lateral diffusivity of MEKE, or a + ! Use a negative value to not apply lateral diffusion to MEKE. +MEKE_DTSCALE = 1.0 ! [nondim] default = 1.0 + ! A scaling factor to accelerate the time evolution of MEKE. +MEKE_KHCOEFF = -1.0 ! [nondim] default = -1.0 + ! A scaling factor which is combined with the square root + ! of MEKE times the grid-cell area to give MEKE%Kh, or a + ! negative value not to calculate MEKE%Kh. + ! This factor must be >0 for MEKE to contribute to the + ! thickness/tracer mixing in the rest of the model. +MEKE_USCALE = 1.0 ! [m s-1] default = 1.0 + ! The background velocity that is combined with MEKE to + ! calculate the bottom drag. +CDRAG = 0.003 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of + ! the velocity field to the bottom stress. +MEKE_VISC_DRAG = False ! [Boolean] default = False + ! If true, use the vertvisc_type to calculate the bottom + ! drag acting on MEKE. +MEKE_KHTH_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_RD_MAX_SCALE = True ! [nondim] default = True + ! If true, the maximum length scale used by MEKE is + ! the deformation radius. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled + ! away when the first baroclinic deformation radius is + ! well resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +KH_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if + ! RESOLN_SCALED_... is true, as + ! F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). +KH_RES_FN_POWER = 2 ! [nondim] default = 2 + ! The power of dx/Ld in the resolution function. Any + ! positive integer may be used, although even integers + ! are more efficient to calculate. Setting this greater + ! than 100 results in a step-function being used. +TIDES = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing. +BE = 0.6 ! [nondim] default = 0.6 + ! If SPLIT is true, BE determines the relative weighting + ! of a 2nd-order Runga-Kutta baroclinic time stepping + ! scheme (0.5) and a backward Euler scheme (1) that is + ! used for the Coriolis and inertial terms. BE may be + ! from 0.5 to 1, but instability may occur near 0.5. + ! BE is also applicable if SPLIT is false and USE_RK2 + ! is true. +BEGW = 0.0 ! [nondim] default = 0.0 + ! If SPILT is true, BEGW is a number from 0 to 1 that + ! controls the extent to which the treatment of gravity + ! waves is forward-backward (0) or simulated backward + ! Euler (1). 0 is almost always used. + ! If SPLIT is false and USE_RK2 is true, BEGW can be + ! between 0 and 0.5 to damp gravity waves. +SPLIT_BOTTOM_STRESS = False ! [Boolean] default = False + ! If true, provide the bottom stress calculated by the + ! vertical viscosity to the barotropic solver. +BT_USE_LAYER_FLUXES = True ! [Boolean] default = True + ! If true, use the summed layered fluxes plus an + ! adjustment due to the change in the barotropic velocity + ! in the barotropic continuity equation. +CONTINUITY_SCHEME = "PPM" ! default = "PPM" + ! CONTINUITY_SCHEME selects the discretization for the + ! continuity solver. The only valid value currently is: + ! PPM - use a positive-definite (or monotonic) + ! piecewise parabolic reconstruction solver. +MONOTONIC_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order + ! (arithmetic mean) interpolation of the edge values. + ! This may give better PV conservation propterties. While + ! it formally reduces the accuracy of the continuity + ! solver itself in the strongly advective limit, it does + ! not reduce the overall order of accuracy of the dynamic + ! core. +UPWIND_1ST_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind + ! continuity solver. This scheme is highly diffusive + ! but may be useful for debugging or in single-column + ! mode where its minimal stensil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 1.0E-06 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a + ! relative CFL change up to 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the + ! tracer cell areas when estimating CFL numbers. The + ! default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity + ! based criterion and only stop if the iteration is + ! better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for + ! corrections in strongly viscous columns. +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise + ! free slip boundary conditions are assumed. The + ! implementation of the free slip BCs on a C-grid is much + ! cleaner than the no slip BCs. The use of free slip BCs + ! is strongly encouraged, and no slip BCs are not used with + ! the biharmonic viscosity. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration + ! due to the kinetic energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV + ! advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated + ! with a finite volume form that analytically integrates + ! the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as + ! described in Adcroft et al., O. Mod. (2008). +MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +BIHARMONIC = True ! [Boolean] default = True + ! If true, se a biharmonic horizontal viscosity. + ! BIHARMONIC may be used with LAPLACIAN. +KH = 0.0 ! [m2 s-1] default = 0.0 + ! The background Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +SMAGORINSKY_KH = False ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable. +BETTER_BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable with a better bounding than just BOUND_KH. +AH = 0.0 ! [m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable. +BETTER_BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable with a better bounding than just BOUND_AH. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. +BOUND_CORIOLIS_BIHARM = True ! [Boolean] default = True + ! If true use a viscosity that increases with the square + ! of the velocity shears, so that the resulting viscous + ! drag is of comparable magnitude to the Coriolis terms + ! when the velocity differences between adjacent grid + ! points is 0.5*BOUND_CORIOLIS_VEL. The default is the + ! value of BOUND_CORIOLIS (or false). +BOUND_CORIOLIS_VEL = 6.0 ! [m s-1] default = 6.0 + ! The velocity scale at which BOUND_CORIOLIS_BIHARM causes + ! the biharmonic drag to have comparable magnitude to the + ! Coriolis acceleration. The default is set by MAXVEL. +HORVISC_BOUND_COEF = 0.8 ! [nondim] default = 0.8 + ! The nondimensional coefficient of the ratio of the + ! viscosity bounds to the theoretical maximum for + ! stability without considering other terms. + +! === module MOM_vert_friction === +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag + ! law of the form c_drag*|u|*u. The velocity magnitude + ! may be an assumed value or it may be based on the + ! actual velocity in the bottommost HBBL, depending on + ! LINEAR_DRAG. +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the + ! topmost HMIX_STRESS of fluid (like in HYCOM), and KVML + ! may be set to a very small value. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +HARMONIC_VISC = False ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for + ! calculating the vertical viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an + ! absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity + ! components to be truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations + ! to be reported; the default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0 + ! The time over which the CFL trunction value is ramped + ! up at the beginning of the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when + ! ramping up CFL_TRUNC. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of colums of truncations that any PE + ! will write out during a run. + +! === module MOM_set_visc === +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag + ! law is cdrag*DRAG_BG_VEL*u. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivitives for temperature or salt + ! based on double-diffusive paramaterization from MOM4/KPP. +PRANDTL_TURB = 0.0 ! [nondim] default = 0.0 + ! The turbulent Prandtl number applied to shear + ! instability. +BULK_RI_ML_VISC = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. By default, + ! BULK_RI_ML_VISC = BULK_RI_ML or 0. +TKE_DECAY_VISC = 10.0 ! [nondim] default = 10.0 + ! TKE_DECAY_VISC relates the vertical rate of decay of + ! the TKE available for mechanical entrainment to the + ! natural Ekman depth for use in calculating the dynamic + ! mixed layer viscosity. By default, + ! TKE_DECAY_VISC = TKE_DECAY or 0. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_USE_EOS = False ! [Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-top viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are + ! averaged for the drag law under an ice shelf. By + ! default this is the same as HBBL +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the top boundary layer. +SMAG_CONST_CHANNEL = 0.15 ! [nondim] default = 0.15 + ! The nondimensional Laplacian Smagorinsky constant used + ! in calculating the channel drag if it is enabled. The + ! default is to use the same value as SMAG_LAP_CONST if + ! it is defined, or 0.15 if it is not. The value used is + ! also 0.15 if the specified value is negative. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +GRADUAL_BT_ICS = False ! [Boolean] default = False + ! If true, adjust the initial conditions for the + ! barotropic solver to the values from the layered + ! solution over a whole timestep instead of instantly. + ! This is a decent approximation to the inclusion of + ! sum(u dh_dt) while also correcting for truncation errors. +BT_USE_WIDE_HALOS = True ! [Boolean] default = True + ! If true, use wide halos and march in during the + ! barotropic time stepping for efficiency. +BTHALO = 0 ! default = 0 + ! The minimum halo size for the barotropic solver. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +USE_BT_CONT_TYPE = True ! [Boolean] default = True + ! If true, use a structure with elements that describe + ! effective face areas from the summed continuity solver + ! as a function the barotropic flow in coupling between + ! the barotropic and baroclinic flow. This is only used + ! if SPLIT is true. +NONLINEAR_BT_CONTINUITY = False ! [Boolean] default = False + ! If true, use nonlinear transports in the barotropic + ! continuity equation. This does not apply if + ! USE_BT_CONT_TYPE is true. +BT_MASS_SOURCE_LIMIT = 0.0 ! [nondim] default = 0.0 + ! The fraction of the initial depth of the ocean that can + ! be added to or removed from the bartropic solution + ! within a thermodynamic time step. By default this is 0 + ! for no correction. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +DYNAMIC_SURFACE_PRESSURE = False ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +SADOURNY = True ! [Boolean] default = True + ! If true, the Coriolis terms are discretized with the + ! Sadourny (1975) energy conserving scheme, otherwise + ! the Arakawa & Hsu scheme is used. If the internal + ! deformation radius is not resolved, the Sadourny scheme + ! should probably be used. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +CLIP_BT_VELOCITY = False ! [Boolean] default = False + ! If true, limit any velocity components that exceed + ! MAXVEL. This should only be used as a desperate + ! debugging measure. +MAXCFL_BT_CONT = 0.1 ! [nondim] default = 0.1 + ! The maximum permitted CFL number associated with the + ! barotropic accelerations from the summed velocities + ! times the time-derivatives of thicknesses. +DT_BT_FILTER = -0.25 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +G_BT_EXTRA = 0.0 ! [nondim] default = 0.0 + ! A nondimensional factor by which gtot is enhanced. +SSH_EXTRA = 10.0 ! [m] default = 10.0 + ! An estimate of how much higher SSH might get, for use + ! in calculating the safe external wave speed. The + ! default is the minimum of 10 m or 5% of MAXIMUM_DEPTH. +DEBUG_BT = False ! [Boolean] default = False + ! If true, write out verbose debugging data within the + ! barotropic time-stepping loop. The data volume can be + ! quite large if this is true. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height + ! diffusivities to horizonally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is + ! not reliable and is scaled away. This is used with + ! FULL_THICKNESSDIFFUSE. +KD_SMOOTH = 1.0E-06 ! [not defined] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate + ! more sensible values of T & S into thin layers. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_MIX_FIRST = 0.0 ! [nondim] default = 0.0 + ! The fraction of the mixed layer mixing that is applied + ! before interior diapycnal mixing. 0 by default. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances as separate set of + ! equations for the internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers + ! are kept consistent with their target densities. + ! Otherwise the properties of massless layers evolve + ! diffusively to match massive neighboring layers. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at + ! the bottom into the interior as though a diffusivity of + ! KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to + ! tracers, especially in massless layers near the bottom. + ! The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will + ! allow for explicitly specified bottom fluxes. The + ! entrainment at the bottom is at least sqrt(Kd_BBL_tr*dt) + ! over the same distance. +FLUX_RI_MAX = 0.2 ! [not defined] default = 0.2 + ! The flux Richardson number where the stratification is + ! large enough that N2 > omega2. The full expression for + ! the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_EFOLD_COEFF = 0.2 ! [nondim] default = 0.2 + ! A coefficient that is used to scale the penetration + ! depth for turbulence below the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_KD_MAX = 0.001 ! [m2 s-1] default = 0.001 + ! The maximum diapycnal diffusivity due to turbulence + ! radiated from the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_APPLY_TKE_DECAY = True ! [Boolean] default = True + ! If true, apply the same exponential decay to ML_rad as + ! is applied to the other surface sources of TKE in the + ! mixed layer code. This is only used if ML_RADIATION is true. +MSTAR = 0.3 ! [units=nondim] default = 0.3 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by + ! bottom drag drives BBL diffusion. This is only + ! used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 0.0 ! [m] default = 0.0 + ! The maximum decay scale for the BBL diffusion, or 0 + ! to allow the mixing to penetrate as far as + ! stratification and rotation permit. The default is 0. + ! This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh + ! profile of background diapycnal diffusivity with depth. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +HENYEY_N0_2OMEGA = 20.0 ! [nondim] default = 20.0 + ! The ratio of the typical Buoyancy frequency to twice + ! the Earth's rotation period, used with the Henyey + ! scaling from the mixing. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, + ! like CM2.1/CM2M. There is no physical justification + ! for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +KD_MAX = -1.0 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added + ! everywhere without any filtering or scaling. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "STLAURENT_02" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +LEE_WAVE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an lee wave driven dissipation scheme to + ! drive diapycnal mixing, along the lines of Nikurashin + ! (2010) and using the St. Laurent et al. (2002) + ! and Simmons et al. (2004) vertical profile +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower + ! bound of Kd (a floor). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +MU_ITIDES = 0.2 ! [nondim] default = 0.2 + ! A dimensionless turbulent mixing efficiency used with + ! INT_TIDE_DISSIPATION, often 0.2. +GAMMA_ITIDES = 0.3333 ! [nondim] default = 0.3333 + ! The fraction of the internal tidal energy that is + ! dissipated locally with INT_TIDE_DISSIPATION. + ! THIS NAME COULD BE BETTER. +MIN_ZBOT_ITIDES = 0.0 ! [m] default = 0.0 + ! Turn off internal tidal dissipation when the total + ! ocean depth is less than this value. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +UTIDE = 0.0 ! [m s-1] default = 0.0 + ! The constant tidal amplitude used with INT_TIDE_DISSIPATION. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tideamp.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. + ! Jackson et al find values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the + ! density and shear profiles before solving for the + ! diffusivities. Defaults to value of KD. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the + ! Richardson number in the kappa source term in the + ! Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to + ! stratification (i.e. proportional to N*tke). + ! The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. + ! proportional to |S|*tke). The values found by Jackson + ! et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the + ! kappa equation. The values found by Jackson et al. are + ! in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the + ! buoyancy and shear scales in the diffusivity equation, + ! Set this to 0 (the default) to eliminate the shear scale. + ! This is only used if USE_JACKSON_PARAM is true. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. + ! Iteration stops when changes between subsequent + ! iterations are smaller than this everywhere in a + ! column. The peak diffusivities usually converge most + ! rapidly, and have much smaller errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration + ! of the kappa equation. TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring + ! massive layers in this calculation. The default is + ! true and I can think of no good reason why it should + ! be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! [nondim] default = 13 + ! The maximum number of iterations that may be used to + ! estimate the time-averaged diffusivity. +DEBUG_KAPPA_SHEAR = False ! [Boolean] default = False + ! If true, write debugging data for the kappa-shear code. + ! Caution: this option is _very_ verbose and should only + ! be used in single-column mode! +KAPPA_SHEAR_MERGE_ML = True ! [Boolean] default = True + ! If true, combine the mixed layers together before + ! solving the kappa-shear equations. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +USE_KPP = False ! [Boolean] default = False + ! If true, turns on the [CVmix] KPP scheme of Large et al., 1984, + ! to calculate diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +APPLY_NONLOCAL_TRANSPORT = True ! [Boolean] default = True + ! If True, applies the non-local transport to heat and scalars. + ! If False, calculates the non-local transport and tendencies but + ! purely for diagnostic purposes. +RI_CRIT = 0.3 ! [nondim] default = 0.3 + ! Critical bulk Richardson number used to define depth of the + ! Oceab Boundary Layer (OBL). +VON_KARMAN = 0.4 ! [nondim] default = 0.4 + ! von Karman constant. +INTERP_TYPE = "quadratic" ! default = "quadratic" + ! Type of interpolation to use to determine the OBL depth. + ! Allowed types are: linear, quadratic, cubic. +COMPUTE_EKMAN = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the Ekman depth. +COMPUTE_MONIN_OBUKHOV = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the + ! Monin-Obukhov depth. +CS = 98.96 ! [nondim] default = 98.96 + ! Parameter for computing velocity scale function. +DEEP_OBL_OFFSET = 0.0 ! [m] default = 0.0 + ! If non-zero, the distance above the bottom to which the OBL is clipped + ! if it would otherwise reach the bottom. The smaller of this and 0.1D is used. +CORRECT_SURFACE_LAYER_AVERAGE = False ! [Boolean] default = False + ! If true, applies a correction step to the averaging of surface layer + ! properties. +FIRST_GUESS_SURFACE_LAYER_DEPTH = 0.0 ! [m] default = 0.0 + ! The first guess at the depth of the surface layer used for averaging + ! the surface layer properties. If =0, the top model level properties + ! will be used for the surface layer. If CORRECT_SURFACE_LAYER_AVERAGE=True, a + ! subsequent correction is applied. +NLT_SHAPE = "CVMIX" ! default = "CVMIX" + ! The shape of the nonlocal transport (or redistribution of surface + ! forcina. Allowed values are: + ! CVMIX - Uses the profile from CVmix + ! LINEAR - A linear profile, 1-sigma + ! PARABOLIC - A paroblic profile, (1-sigma)^2 + ! CUBIC - A cubic profile, (1-sigma)^2(1+2*sigma) + ! CUBIC_LMD - The original KPP profile +KPP_ZERO_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, sets both the diffusivity and viscosity from KPP to zero; for testing. +KPP_IS_ADDITIVE = False ! [Boolean] default = False + ! If true, adds KPP diffusivity to the existing diffusivity. If false, replaces exisiting diffusivity with KPP diffusivity wherever the latter is non-zero. +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +USE_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the diffusive convection scheme that + ! increases diapycnal diffusivities at statically unstable + ! interfaces. Relevant parameters are contained in the + ! CONVECTION% parameter block. +CONVECTION% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +KD_CONV = 1.0 ! [m2/s] default = 1.0 + ! DIffusivity used in statically unstable regions of column. +%CONVECTION + +! === module MOM_entrain_diffusive === +CORRECT_DENSITY = True ! [Boolean] default = True + ! If true, and USE_EOS is true, the layer densities are + ! restored toward their target values by the diapycnal + ! mixing, as described in Hallberg (MWR, 2000). +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_THICKNESS = 0.1 ! [m] default = 0.1 + ! The thickness over which to apply geothermal heating. +GEOTHERMAL_DRHO_DT_INPLACE = -0.01 ! [kg m-3 K-1] default = -0.01 + ! The value of drho_dT above which geothermal heating + ! simply heats water in place instead of moving it between + ! isopycnal layers. This must be negative. +GEOTHERMAL_VARNAME = "geo_heat" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === module MOM_mixed_layer === +NSTAR = 0.15 ! [nondim] default = 0.15 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +CONV_DECAY = 0.5 ! [nondim] default = 0.5 + ! CONV_DECAY relates the vertical rate of decay of the + ! convectively released TKE available for penetrating + ! entrainment to the natural Ekman length. +NSTAR2 = 0.15 ! [nondim] default = 0.15 + ! The portion of any potential energy released by + ! convective adjustment that is available to drive + ! entrainment at the base of mixed layer. By default + ! NSTAR2=NSTAR. +BULK_RI_CONVECTIVE = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which convectively released mean + ! kinetic energy is converted to turbulent kinetic + ! energy. By default BULK_RI_CONVECTIVE=BULK_RI_ML. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +ALLOWED_DETRAIN_TEMP_CHG = 0.5 ! [K] default = 0.5 + ! The amount by which temperature is allowed to exceed + ! previous values during detrainment. +ALLOWED_DETRAIN_SALT_CHG = 0.1 ! [PSU] default = 0.1 + ! The amount by which salinity is allowed to exceed + ! previous values during detrainment. +ML_DT_DS_WEIGHT = 6.0 ! [degC PSU-1] default = 6.0 + ! When forced to extrapolate T & S to match the layer + ! densities, this factor (in deg C / PSU) is combined + ! with the derivatives of density with T & S to determine + ! what direction is orthogonal to density contours. It + ! should be a typical value of (dR/dS) / (dR/dT) in + ! oceanic profiles. +BUFFER_LAYER_EXTRAP_LIMIT = -1.0 ! [nondim] default = -1.0 + ! A limit on the density range over which extrapolation + ! can occur when detraining from the buffer layers, + ! relative to the density range within the mixed and + ! buffer layers, when the detrainment is going into the + ! lightest interior layer, nondimensional, or a negative + ! value not to apply this limit. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +RESOLVE_EKMAN = False ! [Boolean] default = False + ! If true, the NKML>1 layers in the mixed layer are + ! chosen to optimally represent the impact of the Ekman + ! transport on the mixed layer TKE budget. Otherwise, + ! the sublayers are distributed uniformly through the + ! mixed layer. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*froz_runoff. +LIMIT_BUFFER_DET_DH_SFC = 0.5 ! [nondim] default = 0.5 + ! The fractional limit in the change between grid points + ! of the surface region (mixed & buffer layer) thickness. +LIMIT_BUFFER_DET_DH_BATHY = 0.2 ! [nondim] default = 0.2 + ! The fraction of the total depth by which the thickness + ! of the surface region (mixed & buffer layer) is allowed + ! to change between grid points. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. +REGULARIZE_SURFACE_DETRAIN = True ! [Boolean] default = True + ! If true, allow the buffer layers to detrain into the + ! interior as a part of the restructuring when + ! REGULARIZE_SURFACE_LAYERS is true. +REG_SFC_DEFICIT_TOLERANCE = 0.5 ! [nondim] default = 0.5 + ! The value of the relative thickness deficit at which + ! to start modifying the layer structure when + ! REGULARIZE_SURFACE_LAYERS is true. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll + ! concentrations are translated into opacities. Currently + ! valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation + ! that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is + ! 10 m-1 - a value for muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PLM" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between + ! along isopycnal mxiing of tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use 1 iteration. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +RESTART_CONTROL = 1 ! default = 1 + ! An integer whose bits encode which restart files are + ! written. Add 2 (bit 1) for a time-stamped file, and odd + ! (bit 0) for a non-time-stamped file. A restart file + ! will be saved at the end of the run segment for any + ! non-negative value. +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit for ENERGYSAVEDAYS. +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = False ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = False ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +ICE_SALT_CONCENTRATION = 0.005 ! [kg/kg] default = 0.005 + ! The assumed sea-ice salinity needed to reverse engineer the + ! melt flux (or ice-ocean fresh-water flux). +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_CONST = 0.02 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. +USE_RIGID_SEA_ICE = False ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout + ! when the energy files are written. +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the + ! model will be stopped if there is more energy than + ! this. If zero or negative, this is set to 10*MAXVEL^2. +ENERGYFILE = "timestats" ! default = "timestats" + ! The file to use to write the energies and globally + ! summed diagnostics. +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or + ! create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the + ! entries in the depth-list file. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in MOM_parameter_doc.short . diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.short b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.short new file mode 100644 index 0000000000..6a5726ca7f --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/MOM_parameter_doc.short @@ -0,0 +1,618 @@ +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = True ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_input b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_input new file mode 100644 index 0000000000..7ce7749a3e --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_input @@ -0,0 +1,93 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This file determines the adjustable run-time parameters for the * +!* Sea Ice Simulator (SIS), versions 2 and later. Where * +!* appropriate, MKS units are used. * +!********+*********+*********+*********+*********+*********+*********+* +! >>> Global coupled ice-ocean SIS2 5 layer ice, 63 layer ocean test case. + +! Specify properties of the physical domain. +OMEGA = 7.2921e-5 ! The rotation rate of the earth in s-1. +ROTATION = "2omegasinlat" ! Rotation approximation (2omegasinlat, + ! betaplane or USER). +G_EARTH = 9.80 ! G_EARTH is the Earth's gravitational + ! acceleration, in m s-2. +GRID_CONFIG = "mosaic" ! Method for defining horizontal grid + ! = file|cartesian|spherical|mercator + ! file - read grid from file "GRID_FILE" + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +GRID_FILE = "ocean_hgrid.nc" + ! Name of file to read horizontal grid data +INPUTDIR = "INPUT" + ! INPUTDIR is a directory in which NetCDF + ! input files might be found. + +CGRID_ICE_DYNAMICS = True ! If true, use a C-grid discretization of the + ! sea-ice dynamics; if false use a B-grid + ! discretization. + +! Specify the numerical domain. +NIGLOBAL = 360 ! NIGLOBAL and NJGLOBAL are the number of thickness +NJGLOBAL = 210 ! grid points in the zonal and meridional + ! directions of the physical domain. +NK = 63 ! The number of layers. +NCAT_ICE = 5 ! The number of sea ice thickness categories. +NIHALO = 2 ! NIHALO and NJHALO are the number of halo +NJHALO = 2 ! points on each side in the x- and y-directions. + ! If static memory allocation is used, these + ! must match the values of NIHALO_ and NJHALO_ + ! in MOM_memory.h. +NIPROC_IO = 1 ! The number of processors used for I/O in the + ! x-direction, or 0 to equal NIPROC. NIPROC_IO + ! must be a factor of NIPROC. +NJPROC_IO = 1 ! The number of processors used for I/O in the + ! y-direction, or 0 to equal NJPROC. NJPROC_IO + ! must be a factor of NJPROC. + +REENTRANT_X = True ! If defined, the domain is zonally reentrant. +REENTRANT_Y = False ! If defined, the domain is meridionally + ! reentrant. +TRIPOLAR_N = True ! Use tripolar connectivity at the northern + ! edge of the domain. With TRIPOLAR_N, NIGLOBAL + ! must be even. + +DEBUG = False ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! If true, calculate all diagnostics that are + ! useful for debugging truncations. +SEND_LOG_TO_STDOUT = False ! If true write out log information to stdout. + +! Specify the time integration scheme for the ice dynamics. +NSTEPS_DYN = 72 ! The number of iterations in the EVP dynamics + ! for each slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! The damping timescale associated with the + ! elastic terms in the sea-ice dynamics. + +! Specify the ice properties. +ICE_STRENGTH_PSTAR = 2.75e4 ! ICE_STRENGTH_PSTAR is a constant in the + ! expression for the ice strength, P* in + ! Hunke & Dukowics '97, in Pa. +RHO_OCEAN = 1030.0 ! RHO_OCEAN is used in the Boussinesq + ! approximation to calculations of pressure and + ! pressure gradients, in units of kg m-3. +RHO_ICE = 905.0 ! RHO_ICE is the nominal density of sea ice + ! used in SIS, in units of kg m-3. +RHO_SNOW = 330.0 ! RHO_SNOW is the nominal density of snow + ! used in SIS, in units of kg m-3. +C_P_ICE = 2100.0 ! C_P_ICE is the heat capacity of fresh ice + ! in J kg-1 K-1, approximated as a constant. +C_P = 3925.0 ! C_P is the heat capacity of sea water in + ! J kg-1 K-1, approximated as a constant. +SNOW_ALBEDO = 0.88 ! The albedo of dry snow atop sea ice, ND. +ICE_ALBEDO = 0.68 ! The albedo of dry bare sea ice, ND. +ICE_BULK_SALINITY = 0.005 ! The fixed bulk salinity of sea ice, in kg/kg. + +! Specify the properties of the surface forcing. +WIND_STAGGER = "C" ! "A", "B", or "C" to indicate the + ! staggering of the wind stresses between the + ! sea ice and ocean. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_override b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_override new file mode 100644 index 0000000000..8244328586 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_override @@ -0,0 +1 @@ +# Blank file in which we can put "overrides" for parameters diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.all b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.all new file mode 100644 index 0000000000..4bf664b7f5 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.all @@ -0,0 +1,251 @@ +SPECIFIED_ICE = False ! [Boolean] default = False + ! If true, the ice is specified and there is no dynamics. +CGRID_ICE_DYNAMICS = True ! [Boolean] default = False + ! If true, use a C-grid discretization of the sea-ice + ! dynamics; if false use a B-grid discretization. +USE_SLAB_ICE = False ! [Boolean] default = False + ! If true, use the very old slab-style ice. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RHO_OCEAN = 1030.0 ! [kg m-3] default = 1030.0 + ! The nominal density of sea water as used by SIS. +RHO_ICE = 905.0 ! [kg m-3] default = 905.0 + ! The nominal density of sea ice as used by SIS. +RHO_SNOW = 330.0 ! [kg m-3] default = 330.0 + ! The nominal density of snow as used by SIS. +MOMENTUM_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default momentum roughness length scale for the ocean. +HEAT_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default roughness length scale for the turbulent + ! transfer of heat into the ocean. +ICE_KMELT = 240.0 ! [W m-2 K-1] default = 240.0 + ! A constant giving the proportionality of the ocean/ice + ! base heat flux to the tempature difference, given by + ! the product of the heat capacity per unit volume of sea + ! water times a molecular diffusive piston velocity. +SNOW_CONDUCT = 0.31 ! [W m-1 K-1] default = 0.31 + ! The conductivity of heat in snow. +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_SW_PEN_FRAC = 0.3 ! [Nondimensional] default = 0.3 + ! The fraction of the unreflected shortwave radiation that + ! penetrates into the ice. +ICE_OPTICAL_DEPTH = 0.67 ! [m] default = 0.67 + ! The optical depth of shortwave radiation in sea ice. +ALBEDO_T_MELT_RANGE = 1.0 ! [degC] default = 1.0 + ! The temperature range below freezing over which the + ! albedos are changed by partial melting. +ICE_CONSERVATION_CHECK = True ! [Boolean] default = True + ! If true, do additional calculations to check for + ! internal conservation of heat, salt, and water mass in + ! the sea ice model. This does not change answers, but + ! can increase model run time. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +ICE_SEES_ATMOS_WINDS = True ! [Boolean] default = True + ! If true, the sea ice is being given wind stresses with + ! the atmospheric sign convention, and need to have their + ! sign changed. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +DO_ICE_RESTORE = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_ICE_LIMIT = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_SLP_TO_OCEAN = False ! [Boolean] default = False + ! If true, apply the atmospheric sea level pressure to + ! the ocean. +MIN_H_FOR_TEMP_CALC = 0.0 ! [m] default = 0.0 + ! The minimum ice thickness at which to do temperature + ! calculations. +VERBOSE = False ! [Boolean] default = False + ! If true, write out verbose diagnostics. +DO_ICEBERGS = False ! [Boolean] default = False + ! If true, call the iceberg module. +ADD_DIURNAL_SW = False ! [Boolean] default = False + ! If true, add a synthetic diurnal cycle to the shortwave + ! radiation. +DO_SUN_ANGLE_FOR_ALB = False ! [Boolean] default = False + ! If true, find the sun angle for calculating the ocean + ! albedo within the sea ice model. +DO_DELTA_EDDINGTON_SW = True ! [Boolean] default = True + ! If true, a delta-Eddington radiative transfer calculation + ! for the shortwave radiation within the sea-ice. +ICE_DELTA_EDD_R_ICE = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of sea ice with the delta-Eddington radiative + ! transfer calculation. +ICE_DELTA_EDD_R_SNOW = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of snow on sea ice with the delta-Eddington + ! radiative transfer calculation. +ICE_DELTA_EDD_R_POND = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of meltwater ponds on sea ice with the delta-Eddington + ! radiative transfer calculation. +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in SIS2_memory.h (if defined) or 2. +NJHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in SIS2_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +LAYOUT = 0, 0 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 5 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 6, 5 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so + ! that corresponding points on different processors have + ! the same index. This does not work with static memory. +NCAT_ICE = 5 ! [nondim] default = 5 + ! The number of sea ice thickness categories. +NK_ICE = 4 ! [nondim] default = 4 + ! The number of layers within the sea ice. +NK_SNOW = 1 ! [nondim] default = 1 + ! The number of layers within the snow atop the sea ice. +SET_GRID_LIKE_SIS1 = False ! [Boolean] default = False + ! If true, use SIS1 code to set the grid values. Otherwise + ! use code derived from MOM6. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +AVAILABLE_DIAGS_FILE = "SIS.available_diags" ! default = "SIS.available_diags" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! [s] default = 0.0 + ! The damping timescale associated with the elastic terms + ! in the sea-ice dynamics equations. +WEAK_LOW_SHEAR_ICE = False ! [Boolean] default = False + ! If true, the divergent stresses go toward 0 in the C-grid + ! dynamics when the shear magnitudes are very weak. + ! Otherwise they go to -P_ice. This setting is temporary. +ICE_YEILD_ELLIPTICITY = 2.0 ! [Nondim] default = 2.0 + ! The ellipticity coefficient for the plastic yeild curve + ! in the sea-ice rheology. For an infinite ellipticity + ! (i.e., a cavitating fluid rheology), use 0. +ICE_STRENGTH_PSTAR = 2.75E+04 ! [Pa] default = 2.75E+04 + ! A constant in the expression for the ice strength, + ! P* in Hunke & Dukowicz 1997. +ICE_STRENGTH_CSTAR = 20.0 ! [nondim] default = 20.0 + ! A constant in the exponent of the expression for the + ! ice strength, c* in Hunke & Dukowicz 1997. +ICE_CDRAG_WATER = 0.00324 ! [nondim] default = 0.00324 + ! The drag coefficient between the sea ice and water. +ICE_DEL_SH_MIN_SCALE = 2.0 ! [nondim] default = 2.0 + ! A scaling factor for the lower bound on the shear rates + ! used in the denominator of the stress calculation. This + ! probably needs to be greater than 1. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points. +NSTEPS_ADV = 1 ! default = 1 + ! The number of advective iterations for each slow time + ! step. +ICE_CHANNEL_VISCOSITY = 0.0 ! [m2 s-1] default = 0.0 + ! A viscosity used in one-cell wide channels to + ! parameterize transport, especially with B-grid sea ice + ! coupled to a C-grid ocean model. +ICE_CHANNEL_SMAG_COEF = 0.15 ! [Nondim] default = 0.15 + ! A Smagorinsky coefficient for viscosity in channels. +ICE_CHANNEL_CFL_LIMIT = 0.25 ! [Nondim] default = 0.25 + ! The CFL limit that is applied to the parameterized + ! viscous transport in single-point channels. +SIS1_ICE_TRANSPORT = True ! [Boolean] default = True + ! If true, use SIS1 code to solve the ice continuity + ! equation and transport tracers. +CHECK_ICE_TRANSPORT_CONSERVATION = False ! [Boolean] default = False + ! If true, use add multiple diagnostics of ice and snow + ! mass conservation in the sea-ice transport code. This + ! is expensive and should be used sparingly. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in SIS_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in SIS_parameter_doc.short . diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.short b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.short new file mode 100644 index 0000000000..fc421b5877 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/SIS_parameter_doc.short @@ -0,0 +1,70 @@ +CGRID_ICE_DYNAMICS = True ! [Boolean] default = False + ! If true, use a C-grid discretization of the sea-ice + ! dynamics; if false use a B-grid discretization. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +!NIPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 5 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 6, 5 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! [s] default = 0.0 + ! The damping timescale associated with the elastic terms + ! in the sea-ice dynamics equations. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/data_table b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/data_table new file mode 100644 index 0000000000..a9dbbea3c8 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/data_table @@ -0,0 +1,7 @@ + +"ICE", "sic_obs", "SIC","./INPUT/sst_ice_clim.nc",.false.,0.01 +"ICE", "sit_obs", "SIT","./INPUT/sst_ice_clim.nc",.false.,1.06 +"ICE", "sst_obs", "SST","./INPUT/sst_ice_clim.nc",.false.,1 +"ATM", "cfc_11_flux_pcair_atm","CFC_11","INPUT/cfc.bc.nc",.false., 1 +"ATM", "cfc_12_flux_pcair_atm","CFC_12","INPUT/cfc.bc.nc",.false., 1 + diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/diag_table b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/diag_table new file mode 100644 index 0000000000..21fbfd813e --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/diag_table @@ -0,0 +1,657 @@ +CM2.2 +1900 1 1 0 0 0 +#output files +"atmos_daily", 24, "hours", 1, "days", "time", +"atmos_8xdaily", 3, "hours", 1, "days", "time", +"atmos_8xdaily_instant", 3, "hours", 1, "days", "time", +"atmos_month", 1, "months", 1, "days", "time", +"atmos_month_aer",1, "months", 1, "days", "time", +"atmos_scalar", 1, "months", 1, "days", "time", +"ice_daily", 24, "hours", 1, "days", "time", +"ice_month", 1, "months", 1, "days", "time", +"land_daily", 24, "hours", 1, "days", "time", +"land_instant", 1, "months", 1, "days", "time", +"land_month", 1, "months", 1, "days", "time", +"ocean_month", 1, "months", 1, "days", "time" +"ocean_month_z", 1, "months", 1, "days", "time" +#"ocean_scalar", 1, "months", 1, "days", "time" +# +#output variables +# +#================== +# OCEAN DIAGNOSTICS +#================== +# +# Prognostic Ocean fields: +#========================= +"ocean_model","u","u","ocean_month","all",.true.,"none",2 +"ocean_model","v","v","ocean_month","all",.true.,"none",2 +"ocean_model","h","h","ocean_month","all",.true.,"none",1 +"ocean_model","e","e","ocean_month","all",.true.,"none",2 +"ocean_model","temp","temp","ocean_month","all",.true.,"none",2 +"ocean_model","salt","salt","ocean_month","all",.true.,"none",2 +# +# Auxilary Tracers: +#================== +"ocean_model","vintage","vintage","ocean_month","all",.true.,"none",2 +"ocean_model","age","age","ocean_month","all",.true.,"none",2 +"ocean_model","CFC11","CFC11","ocean_month","all",.true.,"none",2 +"ocean_model","CFC12","CFC12","ocean_month","all",.true.,"none",2 + + +# Z-space fields: +#================== +"ocean_model","u_z","u","ocean_month_z","all",.true.,"none",2 +"ocean_model","v_z","v","ocean_month_z","all",.true.,"none",2 +"ocean_model","temp_z","temp","ocean_month_z","all",.true.,"none",2 +"ocean_model","salt_z","salt","ocean_month_z","all",.true.,"none",2 +"ocean_model","vintage_z","vintage","ocean_month_z","all",.true.,"none",2 +"ocean_model","age_z","age","ocean_month_z","all",.true.,"none",2 +"ocean_model","CFC11_z","CFC11","ocean_month_z","all",.true.,"none",2 +"ocean_model","CFC12_z","CFC12","ocean_month_z","all",.true.,"none",2 +"ocean_model","geolon","geolon","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat","geolat","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolon_u","geolon_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat_u","geolat_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolon_v","geolon_v","ocean_month_z","all",.false.,"none",2 +"ocean_model","geolat_v","geolat_v","ocean_month_z","all",.false.,"none",2 +"ocean_model","area_t","area_t","ocean_month_z","all",.false.,"none",2 +"ocean_model","depth_ocean","depth_ocean","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet","wet","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet_u","wet_u","ocean_month_z","all",.false.,"none",2 +"ocean_model","wet_v","wet_v","ocean_month_z","all",.false.,"none",2 + +# +#=========================== +# Continuity Equation Terms: +#=========================== +"ocean_model","wd","wd","ocean_month","all",.true.,"none",2 +"ocean_model","uh","uh","ocean_month","all",.true.,"none",2 +"ocean_model","vh","vh","ocean_month","all",.true.,"none",2 +"ocean_model","uhGM","uhGM","ocean_month","all",.true.,"none",2 +"ocean_model","vhGM","vhGM","ocean_month","all",.true.,"none",2 +"ocean_model","uhml","uhml","ocean_month","all",.true.,"none",2 +"ocean_model","vhml","vhml","ocean_month","all",.true.,"none",2 +"ocean_model","MLu_restrat_time","MLu_restrat_time","ocean_month","all",.true.,"none",2 +"ocean_model","MLv_restrat_time","MLv_restrat_time","ocean_month","all",.true.,"none",2 +"ocean_model","h_rho","h_rho","ocean_month","all",.true.,"none",2 +"ocean_model","uh_rho","uh_rho","ocean_month","all",.true.,"none",2 +"ocean_model","vh_rho","vh_rho","ocean_month","all",.true.,"none",2 +"ocean_model","uhGM_rho","uhGM_rho","ocean_month","all",.true.,"none",2 +"ocean_model","vhGM_rho","vhGM_rho","ocean_month","all",.true.,"none",2 +"ocean_model","GMwork","GMwork","ocean_month","all",.true.,"none",2 +"ocean_model","FrictWork","FrictWork","ocean_month","all",.true.,"none",2 + +# +# Mixed Layer TKE Budget Terms: +#=========================== +"ocean_model","TKE_wind","TKE_wind","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_RiBulk","TKE_RiBulk","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv","TKE_conv","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_pen_SW","TKE_pen_SW","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_mixing","TKE_mixing","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_mech_decay","TKE_mech_decay","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv_decay","TKE_conv_decay","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_conv_s2","TKE_conv_s2","ocean_month","all",.true.,"none",2 +"ocean_model","TKE_tidal","TKE_tidal","ocean_month","all",.true.,"none",2 +"ocean_model","h_ML","h_ML","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_effective","Kd_effective","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_itides","Kd_itides","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_Work","Kd_Work","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_ITidal_Work","Kd_Itidal_Work","ocean_month","all",.true.,"none",2 +"ocean_model","Kd_Nikurashin_Work","Kd_Nikurashin_Work","ocean_month","all",.true.,"none",2 +"ocean_model","PE_detrain","PE_detrain","ocean_month","all",.true.,"none",2 +"ocean_model","PE_detrain2","PE_detrain2","ocean_month","all",.true.,"none",2 +"ocean_model","Rayleigh_u","Rayleigh_u","ocean_month","all",.true.,"none",2 +"ocean_model","Rayleigh_v","Rayleigh_v","ocean_month","all",.true.,"none",2 +# +#=========================== +# Tracer Fluxes: +#================== +"ocean_model","T_adx", "T_adx", "ocean_month","all",.true.,"none",2 +"ocean_model","T_ady", "T_ady", "ocean_month","all",.true.,"none",2 +"ocean_model","T_diffx","T_diffx","ocean_month","all",.true.,"none",2 +"ocean_model","T_diffy","T_diffy","ocean_month","all",.true.,"none",2 +"ocean_model","S_adx", "S_adx", "ocean_month","all",.true.,"none",2 +"ocean_model","S_ady", "S_ady", "ocean_month","all",.true.,"none",2 +"ocean_model","S_diffx","S_diffx","ocean_month","all",.true.,"none",2 +"ocean_model","S_diffy","S_diffy","ocean_month","all",.true.,"none",2 + + +# Momentum Balance Terms: +#======================= +#"ocean_model","dudt","dudt","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt","dvdt","ocean_month","all",.true.,"none",2 +#"ocean_model","CAu","CAu","ocean_month","all",.true.,"none",2 +#"ocean_model","CAv","CAv","ocean_month","all",.true.,"none",2 +#"ocean_model","PFu","PFu","ocean_month","all",.true.,"none",2 +#"ocean_model","PFv","PFv","ocean_month","all",.true.,"none",2 +"ocean_model","du_dt_visc","du_dt_visc","ocean_month","all",.true.,"none",2 +"ocean_model","dv_dt_visc","dv_dt_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","diffu","diffu","ocean_month","all",.true.,"none",2 +#"ocean_model","diffv","diffv","ocean_month","all",.true.,"none",2 +#"ocean_model","dudt_dia","dudt_dia","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt_dia","dvdt_dia","ocean_month","all",.true.,"none",2 +# Subterms that should not be added to a closed budget. +#"ocean_model","gKEu","gKEu","ocean_month","all",.true.,"none",2 +#"ocean_model","gKEv","gKEv","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxu","rvxu","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxv","rvxv","ocean_month","all",.true.,"none",2 +"ocean_model","PFu_bc","PFu_bc","ocean_month","all",.true.,"none",2 +"ocean_model","PFv_bc","PFv_bc","ocean_month","all",.true.,"none",2 + +# Barotropic Momentum Balance Terms: +# (only available with split time stepping.) +#=========================================== +"ocean_model","PFuBT","PFuBT","ocean_month","all",.true.,"none",2 +"ocean_model","PFvBT","PFvBT","ocean_month","all",.true.,"none",2 +"ocean_model","CoruBT","CoruBT","ocean_month","all",.true.,"none",2 +"ocean_model","CorvBT","CorvBT","ocean_month","all",.true.,"none",2 +"ocean_model","ubtforce","ubtforce","ocean_month","all",.true.,"none",2 +"ocean_model","vbtforce","vbtforce","ocean_month","all",.true.,"none",2 +"ocean_model","u_accel_bt","u_accel_bt","ocean_month","all",.true.,"none",2 +"ocean_model","v_accel_bt","v_accel_bt","ocean_month","all",.true.,"none",2 +# +# Viscosities and diffusivities: +#=============================== +#"ocean_model","Kd","Kd","ocean_month","all",.true.,"none",2 +#"ocean_model","Ahh","Ahh","ocean_month","all",.true.,"none",2 +#"ocean_model","Ahq","Ahq","ocean_month","all",.true.,"none",2 +#"ocean_model","Khh","Khh","ocean_month","all",.true.,"none",2 +#"ocean_model","Khq","Khq","ocean_month","all",.true.,"none",2 +#"ocean_model","bbl_thick_u","bbl_thick_u","ocean_month","all",.true.,"none",2 +#"ocean_model","kv_bbl_u","kv_bbl_u","ocean_month","all",.true.,"none",2 +#"ocean_model","bbl_thick_v","bbl_thick_v","ocean_month","all",.true.,"none",2 +#"ocean_model","kv_bbl_v","kv_bbl_v","ocean_month","all",.true.,"none",2 +#"ocean_model","av_visc","av_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","au_visc","au_visc","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_u","KHTH_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_v","KHTH_v","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_u","KHTR_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_v","KHTR_v","ocean_month","all",.true.,"none",2 + +# MEKE: +#====== +"ocean_model","MEKE","MEKE","ocean_month","all",.true.,"none",2 +"ocean_model","MEKE_src","MEKE_src","ocean_month","all",.true.,"none",2 +"ocean_model","MEKE_Kh","MEKE_Kh","ocean_month","all",.true.,"none",2 + +# +# Kinetic Energy Balance Terms: +#============================= +#"ocean_model","KE","KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","dKE_dt","dKE_dt","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","PE_to_KE","PE_to_KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_Coradv","KE_Coradv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_adv","KE_adv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_visc","KE_visc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_horvisc","KE_horvisc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_dia","KE_dia","energy_%4yr_%3dy","all",.true.,"none",2 +# +#================== +# Surface Forcing: +#================= +"ocean_model","taux", "taux", "ocean_month","all",.true.,"none",2 +"ocean_model","tauy", "tauy", "ocean_month","all",.true.,"none",2 +"ocean_model","ustar", "ustar", "ocean_month","all",.true.,"none",2 +"ocean_model","PmE", "PmE", "ocean_month","all",.true.,"none",2 +"ocean_model","SW", "SW", "ocean_month","all",.true.,"none",2 +"ocean_model","LwLatSens","LwLatSens","ocean_month","all",.true.,"none",2 +"ocean_model","p_surf", "p_surf", "ocean_month","all",.true.,"none",2 +"ocean_model","salt_flux","salt_flux","ocean_month","all",.true.,"none",2 + +# Static ocean fields: +#===================== +"ocean_model", "geolon", "geolon", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat", "geolat", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_c", "geolon_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_c", "geolat_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_u", "geolon_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_u", "geolat_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolon_v", "geolon_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "geolat_v", "geolat_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "area_t", "area_t", "ocean_month", "all", .false., "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet", "wet", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_c", "wet_c", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_u", "wet_u", "ocean_month", "all", .false., "none", 2 +"ocean_model", "wet_v", "wet_v", "ocean_month", "all", .false., "none", 2 +"ocean_model", "Coriolis", "Coriolis", "ocean_month", "all", .false., "none", 2 + +#================ +# ICE DIAGNOSTICS +#================ +# +"ice_model", "FRAZIL", "FRAZIL", "ice_month", "all", .true., "none", 2, +"ice_model", "HI", "HI", "ice_month", "all", .true., "none", 2, +"ice_model", "HS", "HS", "ice_month", "all", .true., "none", 2, +"ice_model", "TS", "TS", "ice_month", "all", .true., "none", 2, +"ice_model", "T1", "T1", "ice_month", "all", .true., "none", 2, +"ice_model", "T2", "T2", "ice_month", "all", .true., "none", 2, +"ice_model", "CN", "CN", "ice_month", "all", .true., "none", 2, +"ice_model", "EXT", "EXT", "ice_month", "all", .true., "none", 2, +"ice_model", "MI", "MI", "ice_month", "all", .true., "none", 2, +"ice_model", "XPRT", "XPRT", "ice_month", "all", .true., "none", 2, +"ice_model", "LSRC", "LSRC", "ice_month", "all", .true., "none", 2, +"ice_model", "LSNK", "LSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "BSNK", "BSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "SN2IC", "SN2IC", "ice_month", "all", .true., "none", 2, +"ice_model", "ALB", "ALB", "ice_month", "all", .true., "none", 2, +"ice_model", "SW", "SW", "ice_month", "all", .true., "none", 2, +"ice_model", "LW", "LW", "ice_month", "all", .true., "none", 2, +"ice_model", "SH", "SH", "ice_month", "all", .true., "none", 2, +"ice_model", "LH", "LH", "ice_month", "all", .true., "none", 2, +"ice_model", "TMELT", "TMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BMELT", "BMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BHEAT", "BHEAT", "ice_month", "all", .true., "none", 2, +"ice_model", "UI", "UI", "ice_month", "all", .true., "none", 2, +"ice_model", "VI", "VI", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_X", "FA_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_Y", "FA_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_X", "FI_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_Y", "FI_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "SST", "SST", "ice_month", "all", .true., "none", 2, +"ice_model", "SSS", "SSS", "ice_month", "all", .true., "none", 2, +"ice_model", "SSH", "SSH", "ice_month", "all", .true., "none", 2, +"ice_model", "UO", "UO", "ice_month", "all", .true., "none", 2, +"ice_model", "VO", "VO", "ice_month", "all", .true., "none", 2, +"ice_model", "SNOWFL", "SNOWFL", "ice_month", "all", .true., "none", 2, +"ice_model", "RAIN", "RAIN", "ice_month", "all", .true., "none", 2, +"ice_model", "CALVING", "CALVING", "ice_month", "all", .true., "none", 2, +"ice_model", "RUNOFF", "RUNOFF", "ice_month", "all", .true., "none", 2, +"ice_model", "CELL_AREA", "CELL_AREA", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLON", "GEOLON", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLAT", "GEOLAT", "ice_month", "all", .false., "none", 2, +"ice_model", "SINROT", "SINROT", "ice_month", "all", .false., "none", 2, +"ice_model", "COSROT", "COSROT", "ice_month", "all", .false., "none", 2, +"ice_model", "SALTF", "SALTF", "ice_month", "all", .true., "none", 2, +"ice_model", "IX_TRANS", "IX_TRANS", "ice_month", "all", .true., "none", 2, +"ice_model", "IY_TRANS", "IY_TRANS", "ice_month", "all", .true., "none", 2, +#======================= +# LAND MODEL DIAGNOSTICS +#======================= +# +## daily output + "soil","water", "water", "land_daily", "all", .true., "none", 2 + "soil","wroff", "wroff", "land_daily", "all", .true., "none", 2 +# +## instantaneous output + "soil","cover_type", "cover_type", "land_instant", "all", .false., "none", 2 + "soil","frozen", "frozen", "land_instant", "all", .false., "none", 2 + "soil","groundwater", "groundwater", "land_instant", "all", .false., "none", 2 + "soil","snow", "snow", "land_instant", "all", .false., "none", 2 + "soil","temp", "temp", "land_instant", "all", .false., "none", 2 + "soil","water", "water", "land_instant", "all", .false., "none", 2 +# +## river discharge + "rivers", "discharge","disch_w", "land_month", "all", .true., "none", 2 + "rivers", "discharge_snow","disch_s","land_month", "all", .true., "none", 2 +# +## static fields + "soil","area", "area", "land_month", "all", .false., "none", 2 + "soil","ground_type", "ground_type", "land_month", "all", .false., "none", 2 + "soil","hlf", "hlf", "land_month", "all", .false., "none", 2 + "soil","hlv", "hlv", "land_month", "all", .false., "none", 2 + "soil","lfrac", "lfrac", "land_month", "all", .false., "none", 2 + "soil","max_water", "max_water", "land_month", "all", .false., "none", 2 + "soil","rho_cap", "rho_cap", "land_month", "all", .false., "none", 2 +# + "soil","albedo", "albedo", "land_month", "all", .true., "none", 2 + "soil","evap", "evap", "land_month", "all", .true., "none", 2 + "soil","flw", "flw", "land_month", "all", .true., "none", 2 + "soil","fsw", "fsw", "land_month", "all", .true., "none", 2 + "soil","frozen", "frozen", "land_month", "all", .true., "none", 2 + "soil","gmelt", "gmelt", "land_month", "all", .true., "none", 2 + "soil","groundwater", "groundwater", "land_month", "all", .true., "none", 2 + "soil","latent", "latent", "land_month", "all", .true., "none", 2 + "soil","precip", "precip", "land_month", "all", .true., "none", 2 + "soil","sens", "sens", "land_month", "all", .true., "none", 2 + "soil","smelt", "smelt", "land_month", "all", .true., "none", 2 + "soil","snow", "snow", "land_month", "all", .true., "none", 2 + "soil","snowfall", "snowfall", "land_month", "all", .true., "none", 2 + "soil","sroff", "sroff", "land_month", "all", .true., "none", 2 + "soil","sublim", "sublim", "land_month", "all", .true., "none", 2 + "soil","temp", "temp", "land_month", "all", .true., "none", 2 + "soil","water", "water", "land_month", "all", .true., "none", 2 + "soil","wroff", "wroff", "land_month", "all", .true., "none", 2 +# +#======================= +# ATMOSPHERE DIAGNOSTICS +#======================= +# +## daily output + "flux", "evap", "evap", "atmos_daily", "all", .true., "none", 2 + "flux", "lwflx", "lwflx", "atmos_daily", "all", .true., "none", 2 + "flux", "shflx", "shflx", "atmos_daily", "all", .true., "none", 2 + "flux", "tau_x", "tau_x", "atmos_daily", "all", .true., "none", 2 + "flux", "tau_y", "tau_y", "atmos_daily", "all", .true., "none", 2 + "flux", "t_ref", "t_ref_min", "atmos_daily", "all", min, "none", 2 + "flux", "t_ref", "t_ref_max", "atmos_daily", "all", max, "none", 2 + "flux", "t_surf", "t_surf", "atmos_daily", "all", .true., "none", 2 + "flux", "wind", "wind", "atmos_daily", "all", max, "none", 2 +## "flux" forcing fields for land model: wind, sphum_ref atmos_8xdaily +#"flux", "sphum_ref", "sphum_ref", "atmos_8xdaily", "all", .true., "none", 2 +#"flux", "wind", "wind", "atmos_8xdaily", "all", .true., "none", 2 +# +## instantaneous output + "flux", "t_ref", "t_ref", "atmos_8xdaily_instant","all",.false., "none", 2 +# + "flux", "drag_heat", "drag_heat", "atmos_month", "all", .true., "none", 2 + "flux", "drag_moist", "drag_moist", "atmos_month", "all", .true., "none", 2 + "flux", "drag_mom", "drag_mom", "atmos_month", "all", .true., "none", 2 + "flux", "evap", "evap", "atmos_month", "all", .true., "none", 2 + "flux", "ice_mask", "ice_mask", "atmos_month", "all", .true., "none", 2 + "flux", "land_mask", "land_mask", "atmos_month", "all", .false., "none", 2 + "flux", "lwflx", "lwflx", "atmos_month", "all", .true., "none", 2 + "flux", "rh_ref", "rh_ref", "atmos_month", "all", .true., "none", 2 + "flux", "shflx", "shflx", "atmos_month", "all", .true., "none", 2 + "flux", "tau_x", "tau_x", "atmos_month", "all", .true., "none", 2 + "flux", "tau_y", "tau_y", "atmos_month", "all", .true., "none", 2 + "flux", "t_ref", "t_ref", "atmos_month", "all", .true., "none", 2 + "flux", "t_ref", "t_ref_min", "atmos_month", "all", min, "none", 2 + "flux", "t_ref", "t_ref_max", "atmos_month", "all", max, "none", 2 + "flux", "t_surf", "t_surf", "atmos_month", "all", .true., "none", 2 + "flux", "u_ref", "u_ref", "atmos_month", "all", .true., "none", 2 + "flux", "v_ref", "v_ref", "atmos_month", "all", .true., "none", 2 + "flux", "wind", "wind", "atmos_month", "all", .true., "none", 2 +# + "dynamics", "bk", "bk", "atmos_daily", "all", .false., "none", 2 + "dynamics", "omega", "omega", "atmos_daily", "all", .true., "none", 2 + "dynamics", "pk", "pk", "atmos_daily", "all", .false., "none", 2 + "dynamics", "ps", "ps", "atmos_daily", "all", .true., "none", 2 + "dynamics", "sphum", "sphum", "atmos_daily", "all", .true., "none", 2 + "dynamics", "temp", "temp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "ucomp", "ucomp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "vcomp", "vcomp", "atmos_daily", "all", .true., "none", 4 + "dynamics", "zsurf", "zsurf", "atmos_daily", "all", .false., "none", 2 + "dynamics", "bk", "bk", "atmos_month", "all", .false., "none", 2 + "dynamics", "pk", "pk", "atmos_month", "all", .false., "none", 2 + "dynamics", "zsurf", "zsurf", "atmos_month", "all", .false., "none", 2 + "dynamics", "cld_amt", "cld_amt", "atmos_month", "all", .true., "none", 2 + "dynamics", "ice_wat", "ice_wat", "atmos_month", "all", .true., "none", 2 + "dynamics", "liq_wat", "liq_wat", "atmos_month", "all", .true., "none", 2 + "dynamics", "omega", "omega", "atmos_month", "all", .true., "none", 2 +#"dynamics", "pres_full", "pres_full", "atmos_month", "all", .true., "none", 2 +#"dynamics", "pres_half", "pres_half", "atmos_month", "all", .true., "none", 2 + "dynamics", "ps", "ps", "atmos_month", "all", .true., "none", 2 + "dynamics", "sphum", "sphum", "atmos_month", "all", .true., "none", 2 + "dynamics", "temp", "temp", "atmos_month", "all", .true., "none", 2 +#"dynamics", "theta", "theta", "atmos_month", "all", .true., "none", 2 + "dynamics", "ucomp", "ucomp", "atmos_month", "all", .true., "none", 2 + "dynamics", "vcomp", "vcomp", "atmos_month", "all", .true., "none", 2 +# + "moist", "precip", "precip", "atmos_daily", "all", .true., "none", 2 + "moist", "prec_conv", "prec_conv", "atmos_daily", "all", .true., "none", 2 + "moist", "prec_ls", "prec_ls", "atmos_daily", "all", .true., "none", 2 + "moist", "snow_conv", "snow_conv", "atmos_daily", "all", .true., "none", 2 + "moist", "snow_ls", "snow_ls", "atmos_daily", "all", .true., "none", 2 + "moist", "precip", "precip", "atmos_8xdaily","all",.true., "none", 2 + "moist", "prec_conv", "prec_conv", "atmos_month", "all", .true., "none", 2 + "moist", "snow_conv", "snow_conv", "atmos_month", "all", .true., "none", 2 + "moist", "prec_ls", "prec_ls", "atmos_month", "all", .true., "none", 2 + "moist", "snow_ls", "snow_ls", "atmos_month", "all", .true., "none", 2 + "moist", "IWP", "IWP", "atmos_month", "all", .true., "none", 2 + "moist", "LWP", "LWP", "atmos_month", "all", .true., "none", 2 + "moist", "precip", "precip", "atmos_month", "all", .true., "none", 2 + "moist", "qdt_conv", "qdt_conv", "atmos_month", "all", .true., "none", 2 + "moist", "tdt_conv", "tdt_conv", "atmos_month", "all", .true., "none", 2 + "moist", "qdt_ls", "qdt_ls", "atmos_month", "all", .true., "none", 2 + "moist", "rh", "rh", "atmos_month", "all", .true., "none", 2 + "moist", "tdt_ls", "tdt_ls", "atmos_month", "all", .true., "none", 2 + "moist", "WVP", "WVP", "atmos_month", "all", .true., "none", 2 +# + "ras", "mc", "mc", "atmos_month", "all", .true., "none", 2 +# + "radiation", "lwdn_sfc", "lwdn_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "lwup_sfc", "lwup_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "olr", "olr", "atmos_daily", "all", .true., "none", 2 + "radiation", "swdn_sfc", "swdn_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "swup_sfc", "swup_sfc", "atmos_daily", "all", .true., "none", 2 + "radiation", "swdn_toa", "swdn_toa", "atmos_daily", "all", .true., "none", 2 + "radiation", "swup_toa", "swup_toa", "atmos_daily", "all", .true., "none", 2 + "radiation", "alb_sfc", "alb_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "lwdn_sfc", "lwdn_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "lwup_sfc", "lwup_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "netrad_toa", "netrad_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "olr", "olr", "atmos_month", "all", .true., "none", 2 + "radiation", "qo3", "qo3", "atmos_month", "all", .true., "none", 2 + "radiation", "qo3_col", "qo3_col", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_sfc", "swdn_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_sfc", "swup_sfc", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_toa", "swdn_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_toa", "swup_toa", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_lw", "tdt_lw", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_sw", "tdt_sw", "atmos_month", "all", .true., "none", 2 + "radiation", "lwdn_sfc_clr","lwdn_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "lwup_sfc_clr","lwup_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "netrad_toa_clr","netrad_toa_clr","atmos_month", "all", .true.,"none", 2 + "radiation", "olr_clr", "olr_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_sfc_clr","swdn_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swup_sfc_clr","swup_sfc_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swdn_toa_clr","swdn_toa_clr","atmos_month", "all", .true., "none", 2 + "radiation", "swup_toa_clr","swup_toa_clr","atmos_month", "all", .true., "none", 2 + "radiation", "tdt_lw_clr", "tdt_lw_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "tdt_sw_clr", "tdt_sw_clr", "atmos_month", "all", .true., "none", 2 +# + "radiation", "netlw_lin_trop", "netlw_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "netlw_200hPa", "netlw_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_lin_trop", "swdn_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_200hPa", "swdn_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_200hPa", "swup_200hPa", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_lin_trop", "swup_lin_trop", "atmos_month", "all", .true., "none", 2 + "radiation", "netlw_lin_trop_clr","netlw_lin_trop_clr","atmos_month", "all", .true., "none", 2 + "radiation", "netlw_200hPa_clr", "netlw_200hPa_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_lin_trop_clr", "swdn_lin_trop_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swdn_200hPa_clr", "swdn_200hPa_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_lin_trop_clr", "swup_lin_trop_clr", "atmos_month", "all", .true., "none", 2 + "radiation", "swup_200hPa_clr", "swup_200hPa_clr", "atmos_month", "all", .true., "none", 2 +# +## aerosols +## for the aerosol fields, set do_cmip_diagnostics=.true. in shortwave_driver_nml + "radiation","olr_800_1200", "olr_800_1200", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_900_990", "olr_900_990", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_800_1200", "sfc_800_1200", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_900_990", "sfc_900_990", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_800_1200_cf", "olr_800_1200_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","olr_900_990_cf", "olr_900_990_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_800_1200_cf", "sfc_800_1200_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","sfc_900_990_cf", "sfc_900_990_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_vis", "swup_toa_vis", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_1p6", "swup_toa_1p6", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_vis", "swnt_sfc_vis", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_1p6", "swnt_sfc_1p6", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_vis_cf", "swup_toa_vis_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swup_toa_1p6_cf", "swup_toa_1p6_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_vis_cf", "swnt_sfc_vis_cf", "atmos_month_aer", "all", .true.,"none", 2 + "radiation","swnt_sfc_1p6_cf", "swnt_sfc_1p6_cf", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "bnd5_extopdep_vlcno", "bnd5_exopd_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "lw_b5_extopdep_vlcno_c", "b5_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "bnd6_lwext_vlcno", "bnd6_lwext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "bnd6_extopdep_vlcno_c", "bnd6_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swext_vlcno", "vis_swext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swssa_vlcno", "vis_swssa_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "visband_swasy_vlcno", "vis_swasy_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "vis_extopdep_vlcno_c", "vis_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swext_vlcno", "nir_swext_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swssa_vlcno", "nir_swssa_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nirband_swasy_vlcno", "nir_swasy_vl", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "nir_extopdep_vlcno_c", "nir_exopd_vl_c", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "small_dust", "sm_dust", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "small_dust_col", "sm_dust_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "large_dust", "lg_dust", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "large_dust_col", "lg_dust_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sulfate", "sulfate", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sulfate_col", "sulfate_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "black_carbon", "blk_crb", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "black_carbon_col", "blk_crb_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "organic_carbon", "org_crb", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "organic_carbon_col", "org_crb_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sea_salt", "salt", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "sea_salt_col", "salt_col", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "aerosol", "aer", "atmos_month_aer", "all", .true.,"none", 2 + "radiation", "aerosol_col", "aer_c", "atmos_month_aer", "all", .true.,"none", 2 + + "radiation", "small_dust_exopdep_vis", "sm_dst_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_nir", "sm_dst_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_con", "sm_dst_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_vis", "sm_dst_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_nir", "sm_dst_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_exopdep_col_con", "sm_dst_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_vis", "sm_dst_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_nir", "sm_dst_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_con", "sm_dst_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_vis", "sm_dst_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_nir", "sm_dst_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "small_dust_abopdep_col_con", "sm_dst_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "large_dust_exopdep_vis", "lg_dst_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_nir", "lg_dst_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_con", "lg_dst_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_vis", "lg_dst_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_nir", "lg_dst_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_exopdep_col_con", "lg_dst_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_vis", "lg_dst_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_nir", "lg_dst_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_con", "lg_dst_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_vis", "lg_dst_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_nir", "lg_dst_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "large_dust_abopdep_col_con", "lg_dst_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "organic_carbon_exopdep_vis", "org_crb_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_nir", "org_crb_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_con", "org_crb_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_vis", "org_crb_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_nir", "org_crb_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_exopdep_col_con", "org_crb_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_vis", "org_crb_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_nir", "org_crb_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_con", "org_crb_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_vis", "org_crb_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_nir", "org_crb_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "organic_carbon_abopdep_col_con", "org_crb_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "sulfate_exopdep_vis", "sulfate_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_nir", "sulfate_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_con", "sulfate_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_vis", "sulfate_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_nir", "sulfate_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_exopdep_col_con", "sulfate_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_vis", "sulfate_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_nir", "sulfate_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_con", "sulfate_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_vis", "sulfate_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_nir", "sulfate_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sulfate_abopdep_col_con", "sulfate_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "black_carbon_exopdep_vis", "blk_crb_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_nir", "blk_crb_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_con", "blk_crb_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_vis", "blk_crb_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_nir", "blk_crb_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_exopdep_col_con", "blk_crb_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_vis", "blk_crb_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_nir", "blk_crb_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_con", "blk_crb_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_vis", "blk_crb_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_nir", "blk_crb_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "black_carbon_abopdep_col_con", "blk_crb_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "sea_salt_exopdep_vis", "salt_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_nir", "salt_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_con", "salt_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_vis", "salt_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_nir", "salt_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_exopdep_col_con", "salt_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_vis", "salt_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_nir", "salt_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_con", "salt_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_vis", "salt_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_nir", "salt_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "sea_salt_abopdep_col_con", "salt_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 + + "radiation", "aerosol_exopdep_vis", "aer_ex_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_nir", "aer_ex_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_con", "aer_ex_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_vis", "aer_ex_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_nir", "aer_ex_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_exopdep_col_con", "aer_ex_c_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_vis", "aer_ab_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_nir", "aer_ab_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_con", "aer_ab_cn", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_vis", "aer_ab_c_vs", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_nir", "aer_ab_c_ir", "atmos_month_aer", "all", .true., "none", 2 + "radiation", "aerosol_abopdep_col_con", "aer_ab_c_cn", "atmos_month_aer", "all", .true., "none", 2 +# +## globally averaged ghg + "radiation", "rrvch4", "rrvch4", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvco2", "rrvco2", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf11", "rrvf11", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf12", "rrvf12", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf113","rrvf113","atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvf22", "rrvf22", "atmos_scalar", "all", .true., "none", 2 + "radiation", "rrvn2o", "rrvn2o", "atmos_scalar", "all", .true., "none", 2 + "radiation", "solar_constant", "solar_constant", "atmos_scalar", "all", .true., "none", 2 + +## "radiation" forcing fields for land model: flux_sw_down (4), lwdn_sfc atmos_8xdaily +#"radiation", "flux_sw_down_total_dif", "swdn_tot_dif", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_total_dir", "swdn_tot_dir", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_vis_dif", "swdn_vis_dif", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "flux_sw_down_vis_dir", "swdn_vis_dir", "atmos_8xdaily", "all", .true., "none", 2 +#"radiation", "lwdn_sfc", "lwdn_sfc", "atmos_8xdaily", "all", .true., "none", 2 +# + "cloudrad", "high_cld_amt","high_cld_amt","atmos_month", "all", .true., "none", 2 + "cloudrad", "low_cld_amt", "low_cld_amt", "atmos_month", "all", .true., "none", 2 + "cloudrad", "mid_cld_amt", "mid_cld_amt", "atmos_month", "all", .true., "none", 2 + "cloudrad", "tot_cld_amt", "tot_cld_amt", "atmos_month", "all", .true., "none", 2 +# + "damping", "taubx", "taubx", "atmos_month", "all", .true., "none", 2 + "damping", "tauby", "tauby", "atmos_month", "all", .true., "none", 2 + "damping", "udt_gwd", "udt_gwd", "atmos_month", "all", .true., "none", 2 + "damping", "vdt_gwd", "vdt_gwd", "atmos_month", "all", .true., "none", 2 + "damping", "udt_rdamp", "udt_rdamp", "atmos_month", "all", .true., "none", 2 + "damping", "vdt_rdamp", "vdt_rdamp", "atmos_month", "all", .true., "none", 2 +# + "vert_diff", "qdt_vdif", "qdt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "tdt_vdif", "tdt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "udt_vdif", "udt_vdif", "atmos_month", "all", .true., "none", 2 + "vert_diff", "vdt_vdif", "vdt_vdif", "atmos_month", "all", .true., "none", 2 + + + + + +#============================================================================================= +# +# +# +# FORMATS FOR FILE ENTRIES (not all input values are used) +# ------------------------ +# +#"file_name", output_freq, "output_units", format, "time_units", "long_name", +# +# +#output_freq: > 0 output frequency in "output_units" +# = 0 output frequency every time step +# =-1 output frequency at end of run +# +#output_units = units used for output frequency +# (years, months, days, minutes, hours, seconds) +# +#time_units = units used to label the time axis +# (days, minutes, hours, seconds) +# +# +# FORMAT FOR FIELD ENTRIES (not all input values are used) +# ------------------------ +# +#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing +# +#time_avg = .true. or .false. +# +#packing = 1 double precision +# = 2 float +# = 4 packed 16-bit integers +# = 8 packed 1-byte (not tested?) + diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/field_table b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/field_table new file mode 100644 index 0000000000..f80202bf2d --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/field_table @@ -0,0 +1,31 @@ + +# specific humidity for moist runs + + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / + +# prognotic cloud scheme tracers + + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud liquid specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice water specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud fraction" + "units", "none" / + +# test tracer for radon + +# "TRACER", "atmos_mod", "radon" +# "longname", "radon test tracer" +# "units", "kg/kg" / + +# added by FRE: sphum must be present on land + "TRACER", "land_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / + diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/input.nml b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/input.nml new file mode 100644 index 0000000000..16610a4ed2 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/input.nml @@ -0,0 +1,703 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' +/ + + &SIS_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'SIS_input', + 'SIS_override' +/ + + &aerosol_nml + use_aerosol_timeseries = .false. + aerosol_dataset_entry = 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + family_names = "small_dust", "large_dust", "sulfate", "aerosol" + in_family1 = F,F,F,F,F,T,T,T,T,T,F,F,F,T,T,T,T,T,F,F,F, + in_family2 = F,F,F,F,F,F,F,F,F,F,T,T,T,F,F,F,F,F,T,T,T, + in_family3 = T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F, + in_family4 = T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T, + data_names = "so4_anthro", "so4_natural", "organic_carbon", "black_carbon", "sea_salt", + "anthro_dust_0.1", "anthro_dust_0.2", "anthro_dust_0.4", "anthro_dust_0.8", + "anthro_dust_1.0", "anthro_dust_2.0", "anthro_dust_4.0", "anthro_dust_8.0", + "natural_dust_0.1", "natural_dust_0.2", "natural_dust_0.4", "natural_dust_0.8", + "natural_dust_1.0", "natural_dust_2.0", "natural_dust_4.0", "natural_dust_8.0", + filename = "aerosol.climatology.nc" +/ + + &aerosolrad_package_nml + volcanic_dataset_entry = 1, 1, 1, 0, 0, 0, + using_volcanic_lw_files = .false., + lw_ext_filename = " " + lw_ext_root = " " + lw_asy_filename = " " + lw_asy_root = " " + lw_ssa_filename = " " + lw_ssa_root = " " + using_volcanic_sw_files = .false., + sw_ext_filename = " " + sw_ext_root = " " + sw_ssa_filename = " " + sw_ssa_root = " " + sw_asy_filename = " " + sw_asy_root = " " + do_lwaerosol = .true., + do_swaerosol = .true., + aerosol_data_set = 'shettle_fenn', + optical_filename = "aerosol.optical.dat", + aerosol_optical_names = "sulfate_30%", "sulfate_35%", "sulfate_40%", "sulfate_45%", + "sulfate_50%", "sulfate_55%", "sulfate_60%", "sulfate_65%", + "sulfate_70%", "sulfate_75%", "sulfate_80%", "sulfate_82%", + "sulfate_84%", "sulfate_86%", "sulfate_88%", "sulfate_90%", + "sulfate_91%", "sulfate_92%", "sulfate_93%", "sulfate_94%", + "sulfate_95%", "sulfate_96%", "sulfate_97%", "sulfate_98%", + "sulfate_99%", "sulfate_100%","organic_carbon","soot", + "sea_salt", "dust_0.1", "dust_0.2", "dust_0.4", + "dust_0.8", "dust_1.0", "dust_2.0", "dust_4.0", + "dust_8.0" +/ + + &atmos_co2_nml + do_co2_restore = .true. + restore_tscale = 3.1536e7, + restore_klimit = 24 + co2_radiation_override = .true. + do_co2_emissions = .false. ! turn on for historical free co2 runs +/ + + &atmosphere_nml + physics_window = 0,0 +/ + + &amip_interp_nml + data_set = 'reynolds_oi', + date_out_of_range = 'fail' +/ + + &cg_drag_nml + cg_drag_freq = 1800, + cg_drag_offset = 0, + debug = .false., + calculate_ked = .false., + itest = 12, + jtest = 42, + ktest = 9, + Bt_0 = 0.0015, + lat_limit = 25.0 +/ + + &cloud_rad_nml + overlap = 2, + do_brenguier = .false. +/ + + &cloud_spec_nml + cloud_type_form = 'strat' +/ + + &cloudrad_package_nml + microphys_form = 'predicted' +/ + + &clouds_nml + do_zonal_clouds = .false., + do_obs_clouds = .false. +/ + + &coupler_nml + months = 0, + days = 1, + current_date = 1900,1,1,0,0,0, + calendar = 'NOLEAP', + dt_cpld = 7200, + dt_atmos = 1800, + do_atmos = .true., + do_land = .true., + do_ice = .true., + do_ocean = .true., + atmos_npes = 30, + ocean_npes = 60, + concurrent = .true. + use_lag_fluxes=.true. +/ + + &cu_mo_trans_nml + diff_norm = 2.0 +/ + + &damping_driver_nml + trayfric = -40., + nlev_rayfric = 1, + do_mg_drag = .true., + do_cg_drag = .false., + do_topo_drag = .false., + do_conserve_energy = .true. +/ + + &diag_cloud_nml + linvers = .false., lcnvcld = .false., + l_theqv = .true., lomega = .true., + low_lev_cloud_index = 16, nofog = .false. +/ + + &diag_cloud_rad_nml + l_har_anvil = .true., + l_har_coldcld = .true., + l_anom_abs_v = .true. +/ + + &diag_integral_nml + file_name = 'diag_integral.out', + time_units = 'days', + output_interval = 1.0 +/ + + &diag_manager_nml + max_files = 50, + max_axes = 200, + max_num_axis_sets = 200, + max_input_fields = 800 + max_output_fields = 1300 + mix_snapshot_average_fields=.false. + issue_oor_warnings = .false. ! (default=true) +/ + + &donner_deep_clouds_W_nml + using_dge_sw = .true., + using_dge_lw = .true. +/ + + &donner_deep_nml + donner_deep_offset = 0 + donner_deep_freq = 1800 + save_donner_deep_diagnostics=.true. + cell_liquid_size_type = 'bower' + cell_ice_size_type = 'default' + debug = .false. + kttest=5 + itest=53 + jtest=32 + ktest_model=17 +/ + + &edt_nml + n_print_levels = 14, + use_qcmin = .true., + num_pts_ij = 0, + min_adj_time = 1.0, + do_gaussian_cloud = .false., + use_extrapolated_ql = .false. +/ + + &entrain_nml + convect_shutoff = .true., + apply_entrain = .true., + parcel_buoy = 0.25, + parcel_option = 2, + beta_rad = 0.5, + Ashear = 25.0, + radperturb = 0.10, + critjump = 0.10, + num_pts_ij = 0, + i_entprt_gl = 112, 96, 89,105, 81, 97, + j_entprt_gl = 71, 61, 56, 64, 53, 46 +/ + + &esfsw_parameters_nml + sw_resolution = 'low', + sw_diff_streams = 1 +/ + + &flux_exchange_nml + debug_stocks = .FALSE. + divert_stocks_report = .TRUE. + do_area_weighted_flux = .FALSE. +/ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' + max_files_r = 300 + max_files_w = 300 +/ + + &fv_core_nml + LAYOUT = 0,30 + nlon =144 + mlat=90 + nlev = 24 + ncnst = 4 + pnats = 0 + n_split = 5 + change_time = .true. + consv_te = 0.7 + restart_format='NETCDF' +/ + + &gas_tf_nml + interp_form = 'log' , + do_calcstdco2tfs = .true., + do_writestdco2tfs= .false., + do_readstdco2tfs = .false., + do_calcstdch4tfs = .true., + do_writestdch4tfs= .false., + do_readstdch4tfs = .false., + do_calcstdn2otfs = .true., + do_writestdn2otfs= .false., + do_readstdn2otfs = .false. +/ + +&generic_tracer_nml + do_generic_tracer=.false. + do_generic_CFC=.false. + do_generic_TOPAZ=.false. +/ + +&ice_albedo_nml + t_range = 10. +/ + +&ice_model_nml +/ + +&icebergs_nml + time_average_weight = .false. + speed_limit=0.50 + verbose=.TRUE. + traj_sample_hrs=0 + verbose_hrs=120 +/ + + &lscale_cond_nml + do_evap = .true. +/ + + &lw_gases_stdtf_nml + NSTDCO2LVLS=496 +/ + + &mg_drag_nml + gmax = 1., + acoef = 1., + do_conserve_energy = .true., + source_of_sgsmtn = 'computed' +/ + + µphys_rad_nml + lwem_form = 'fuliou' +/ + + &moist_conv_nml + beta = 0.0 +/ + + &moist_processes_nml + do_lsc=.false., do_strat=.true., do_mca=.false., do_ras=.true., + do_donner_deep = .false., + do_diag_clouds = .false., do_cmt=.true., + do_rh_clouds = .false., + do_gust_cv = .false. + include_donmca_in_cosp = .false. +/ + + &monin_obukhov_nml + stable_option = 2, + rich_crit = 10.0, + zeta_trans = 0.5 +/ + + &my25_turb_nml + do_thv_stab = .true., + TKEmin = 1.e-8, + AKmin_land = 5., + AKmin_sea = 0. +/ + +&ocean_albedo_nml + ocean_albedo_option = 5 +/ + +&ocean_rough_nml + rough_scheme = 'beljaars' +/ + + &ozone_nml + basic_ozone_type = 'fixed_year' , + ozone_dataset_entry = 1990, 1, 1, 0, 0, 0, + data_name = "ozone", + filename = "o3.climatology.nc" +/ + + &physics_driver_nml + do_modis_yim = .false. +/ + + &rad_output_file_nml + write_data_file=.true. +/ + + &rad_utilities_nml +/ + + &radiation_diag_nml + iradprt_gl = 20, 6, + jradprt_gl = 12, 20, + num_pts_ij = 0 +/ + + &radiation_driver_nml + rad_time_step= 10800, + time_varying_solar_constant = .false., + solar_dataset_entry = 1990,1,1,0,0,0, + rad_package = 'sea_esf', + do_clear_sky_pass=.true., + calc_hemi_integrals = .false., + renormalize_sw_fluxes=.true., + all_step_diagnostics = .true., + zenith_spec = 'diurnally_varying', + use_co2_tracer_field = .false. ! not using co2 tracer field + using_restart_file = .false. +/ + + &radiative_gases_nml + verbose = 3 + gas_printout_freq = 240 + + time_varying_co2 = .false., + co2_variation_type = 'linear', + co2_dataset_entry = 1990,1,1,0,0,0, + co2_specification_type = 'time_series', + co2_floor = 100.0E-06, + co2_ceiling = 1600.0E-06, + co2_data_source = 'input' + + time_varying_ch4 = .false., + ch4_variation_type = 'linear' + ch4_dataset_entry = 1990, 1, 1, 0, 0, 0, + ch4_specification_type = 'time_series' + ch4_data_source = 'input' + + time_varying_n2o = .false., + n2o_variation_type = 'linear' + n2o_dataset_entry = 1990, 1, 1, 0, 0, 0, + n2o_specification_type = 'time_series' + n2o_data_source = 'input' + + time_varying_f11 = .false., + f11_variation_type = 'linear' + f11_dataset_entry = 1990, 1, 1, 0, 0, 0, + f11_specification_type = 'time_series' + f11_data_source = 'input' + + time_varying_f12 = .false., + f12_variation_type = 'linear' + f12_dataset_entry = 1990, 1, 1, 0, 0, 0, + f12_specification_type = 'time_series' + f12_data_source = 'input' + + time_varying_f113 = .false., + f113_variation_type = 'linear' + f113_dataset_entry = 1990, 1, 1, 0, 0, 0, + f113_specification_type = 'time_series' + f113_data_source = 'input' + + time_varying_f22 = .false., + f22_variation_type = 'linear' + f22_dataset_entry = 1990, 1, 1, 0, 0, 0, + f22_specification_type = 'time_series' + f22_data_source = 'input' +/ + + &ras_nml + aratio = 1.0, + modify_pbl=.true. + rn_frac_bot = 0.5, + rn_pbot = 800.0e2, + puplim = 20.0e02, + rn_ptop = 500.0e2, + rn_frac_top = 0.975, + Tokioka_on = .true., + Tokioka_con = 0.025, + Tokioka_plim = 500.0e2, + a = 1.6851, 1.1686, 0.7663, 0.5255, 0.4100, 0.3677, + 0.3151, 0.2216, 0.1521, 0.0750, 0.0000, 0.0000, + 0.0000, 0.0000, 0.0000 +/ + + &rh_based_clouds_nml + cirrus_cld_prop_form = 'part', + cldht_type_form = '93' +/ + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. +/ + + &sealw99_nml + do_thick = .false., + do_nlte = .false., + do_lwcldemiss = .true., + do_n2olbltmpint = .false., + continuum_form = 'ckd2.1', + linecatalog_form = 'hitran_2000', + calc_co2_tfs_on_first_step = .true., + calc_co2_tfs_monthly = .false., + co2_tf_time_displacement = 0.0, + calc_ch4_tfs_on_first_step = .true., + calc_ch4_tfs_monthly = .false., + ch4_tf_time_displacement = 0.0, + calc_n2o_tfs_on_first_step = .true., + calc_n2o_tfs_monthly = .false., + n2o_tf_time_displacement = 0.0, + verbose = 5 +/ + + &shortwave_driver_nml + do_cmip_diagnostics = .true., + calculate_volcanic_sw_heating = .false., + swform = 'esfsw99' +/ + + &stable_bl_turb_nml + alsm = 500.0, + alsh = 500.0 +/ + + &strat_cloud_nml + do_old_snowmelt = .true. + U00 = 0.800, + U00_profile = .true., + rthresh = 8.0, + Dmin = 1.0e-07, + n_land = 300.e6, + diff_thresh = 0.1, + mc_thresh = 0.001, + eros_scale = 1.e-6, + eros_choice = .true., + eros_scale_c = 8.e-6, + eros_scale_t = 5.e-5, + super_choice = .true., + tracer_advec = .true. +/ + +&topography_nml + topog_file = 'INPUT/navy_topography.data.nc' +/ + + &vert_diff_driver_nml + do_conserve_energy = .true. +/ + + &vert_turb_driver_nml + use_tau = .false., + gust_scheme = 'beljaars', + do_mellor_yamada = .false., + do_entrain = .true., + do_edt = .false., + do_diffusivity = .false., + do_stable_bl = .true., + do_shallow_conv = .false. +/ + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' +/ + + + &cana_nml + turbulence_to_use = "lm3v" + init_co2 = 286.0e-6 + canopy_air_mass_for_tracers = 10.0 +/ + &glac_data_nml + use_lm2_awc = .true., + rsa_exp_global = 10., + dat_emis_dry = 1., + dat_emis_sat = 1., +/ + &glac_nml + conserve_glacier_mass = .true. + lm2 = .true. +/ + &harvesting_nml + do_harvesting = .FALSE. !!! turn on for LAND USE + grazing_intensity = 0.25 + grazing_residue = 0.1 + frac_wood_wasted_harv = 0.25 + frac_wood_wasted_clear = 0.25 + !frac_wood_fast = ONETHIRD + !frac_wood_med = ONETHIRD + !frac_wood_slow = ONETHIRD + crop_seed_density = 0.1 +/ + &lake_data_nml + lake_to_use = 'from-rivers' + num_l = 20, + dat_emis_dry = 1., + dat_emis_sat = 1., + dat_heat_capacity_ref = 0., + f_iso_liq = 0.02, 0.01 + f_iso_ice = 0.02, 0.01 + f_vol_liq = 0.003, 0. + f_vol_ice = 0.003, 0. + f_geo_liq = 0., 0. + f_geo_ice = 0., 0. +/ + &lake_nml + albedo_to_use = 'brdf-params' + float_ice_to_top = .true. +/ + &land_debug_nml + watch_point = 0,0,0,1 +/ + &land_model_nml + layout = 1,0 + io_layout = 1,1 + tau_snow_T_adj = 604800. +/ + &landuse_nml + do_landuse_change = .false., !!! turn on for LAND USE + input_file = 'INPUT/landuse.nc' +/ + &river_nml + dt_slow = 86400. + land_area_called_cellarea = .true. + all_big_outlet_ctn0 = .true. +/ + &river_physics_nml + lake_sfc_w_min = 20. +/ + &snow_data_nml + emis_snow_max = 1. + emis_snow_min = 1. + z0_momentum = 0.01 + num_l = 5 + dz = 0.05, 0.2, 0.5, 0.2, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0 + f_iso_cold = 0.90, 0.60 + f_vol_cold = 0.09, 0.13 + f_geo_cold = 0.00, 0.00 + f_iso_warm = 0.90, 0.60 + f_vol_warm = 0.09, 0.13 + f_geo_warm = 0.00, 0.00 + depth_crit = 0.05 +/ + &snow_nml + min_snow_mass = 1.e-10 + max_snow = 1000. + albedo_to_use = 'brdf-params' +/ + &soil_data_nml + dat_emis_dry = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_emis_sat = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_tf_depr = 2., 2., 2., 2., 2., 2., 2., 2., 2. + geohydrology_to_use = 'hill_ar5' + gw_scale_soil_depth = 10. + freeze_factor = 2.0 + comp = 1e-4 + num_l = 20 + dz = 0.020, 0.040, 0.040, 0.050, 0.05, 0.100, 0.10, 0.200, 0.200, 0.2, + 0.40, 0.40, 0.40, 0.4, 0.4, 1.0, 1.0, 1.0, 1.5, 2.5 +/ + &soil_nml + init_w = 500. + albedo_to_use = 'brdf-maps' + uptake_to_use = 'darcy2d-linearized' + uptake_oneway = .true. + active_layer_drainage_acceleration = 100. + write_soil_carbon_restart = .FALSE. !To reproduce siena answers +/ + &static_veg_nml + use_static_veg = .FALSE. + timeline = 'loop' + start_loop = 2420, 1, 1, 0, 0, 0 + end_loop = 2470, 1, 1, 0, 0, 0 + fill_land_mask = .TRUE. +/ + &topo_rough_nml + use_topo_rough = .true. + max_topo_rough = 100.0 + topo_rough_factor = 0.01 +/ + &vegn_data_nml + vegn_to_use = 'uniform' + K1=10, + K2=0.1, + fsc_liv=0.9, + fsc_wood=0.45, + c1(4) = 0.3 + c2(4) = 0.3 + Vmax = 2.0E-5, 2.0E-5, 2.0E-5, 2.0E-5, 1.50E-5, + m_cond = 4., 9., 9., 7., 7., + alpha_phot = 0.05, 0.06, 0.06, 0.06, 0.06, + gamma_resp = 0.03, 0.02, 0.02, 0.02, 0.02, + fact_crit_phen(0:4) = 0., 0., 0., 0., 0. + fact_crit_fire(0:4) = 0., 0., 0., 0., 0. + cnst_crit_phen(0:4) = 0.30, 0.15, 0.15, 0.30, 0.30 + cnst_crit_fire(0:4) = 0.15, 0.40, 0.15, 0.15, 0.15 + wet_leaf_dreg(0:4) = .3, .3, .3, .3, .3 + ksi = 0, 0, 0, 0, 0, + leaf_refl(0:4,1) = 0.11, 0.11, 0.10, 0.10, 0.10 + leaf_refl(0:4,2) = 0.58, 0.58, 0.5, 0.5, 0.5, + dat_root_zeta(0:4) = 0.35212, 0.17039, 0.28909, 0.25813, 0.17039 + critical_root_density = 0.0, + tau_drip_s = 259200.0 + cmc_lai(0:4) = 0.02, 0.02, 0.02, 0.02, 0.02 + csc_lai(0:4) = 0.2, 0.2, 0.2, 0.2, 0.2 + dat_snow_crit = 0.0167, 0.0167, 0.0333, 0.2, 0.2 + t_transp_min = 268. + srl(0:1) = 112.0e3, 150.0e3 + root_perm = 14*5e-7 + alpha(1,3) = 4 + leaf_age_tau(2) = 150 + smoke_fraction = 0.9, 0.9, 0.6, 0.6, 0.6 + tg_c3_thresh = 1 + phen_ev2 = 0.925 + cmc_eps = 0.01 + alpha(0:4,6) = 0.0, 0.0, 0.012, 0.012, 0.012 + treefall_disturbance_rate = 0.175, 0.185, 0.025, 0.0275, 0.027 +/ + &vegn_nml + init_Tv = 288.0 + rad_to_use = 'two-stream' + photosynthesis_to_use = 'leuning' + snow_rad_to_use = 'paint-leaves' + co2_to_use_for_photosynthesis ='interactive' + co2_for_photosynthesis = 286.0e-6 + do_cohort_dynamics = .TRUE., + do_patch_disturbance = .TRUE., + do_phenology = .TRUE., + do_biogeography = .TRUE., + do_seed_transport = .TRUE., + tau_smooth_ncm = 22.0 +/ diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/static_input.nml b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/static_input.nml new file mode 100644 index 0000000000..44ca878870 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/static_input.nml @@ -0,0 +1,670 @@ + + &aerosol_nml + use_aerosol_timeseries = .false. + aerosol_dataset_entry = 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + 1990, 1, 1, 0, 0, 0, + family_names = "small_dust", "large_dust", "sulfate", "aerosol" + in_family1 = F,F,F,F,F,T,T,T,T,T,F,F,F,T,T,T,T,T,F,F,F, + in_family2 = F,F,F,F,F,F,F,F,F,F,T,T,T,F,F,F,F,F,T,T,T, + in_family3 = T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F, + in_family4 = T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T, + data_names = "so4_anthro", "so4_natural", "organic_carbon", "black_carbon", "sea_salt", + "anthro_dust_0.1", "anthro_dust_0.2", "anthro_dust_0.4", "anthro_dust_0.8", + "anthro_dust_1.0", "anthro_dust_2.0", "anthro_dust_4.0", "anthro_dust_8.0", + "natural_dust_0.1", "natural_dust_0.2", "natural_dust_0.4", "natural_dust_0.8", + "natural_dust_1.0", "natural_dust_2.0", "natural_dust_4.0", "natural_dust_8.0", + filename = "aerosol.climatology.nc" +/ + + &aerosolrad_package_nml + volcanic_dataset_entry = 1, 1, 1, 0, 0, 0, + using_volcanic_lw_files = .false., + lw_ext_filename = " " + lw_ext_root = " " + lw_asy_filename = " " + lw_asy_root = " " + lw_ssa_filename = " " + lw_ssa_root = " " + using_volcanic_sw_files = .false., + sw_ext_filename = " " + sw_ext_root = " " + sw_ssa_filename = " " + sw_ssa_root = " " + sw_asy_filename = " " + sw_asy_root = " " + do_lwaerosol = .true., + do_swaerosol = .true., + aerosol_data_set = 'shettle_fenn', + optical_filename = "aerosol.optical.dat", + aerosol_optical_names = "sulfate_30%", "sulfate_35%", "sulfate_40%", "sulfate_45%", + "sulfate_50%", "sulfate_55%", "sulfate_60%", "sulfate_65%", + "sulfate_70%", "sulfate_75%", "sulfate_80%", "sulfate_82%", + "sulfate_84%", "sulfate_86%", "sulfate_88%", "sulfate_90%", + "sulfate_91%", "sulfate_92%", "sulfate_93%", "sulfate_94%", + "sulfate_95%", "sulfate_96%", "sulfate_97%", "sulfate_98%", + "sulfate_99%", "sulfate_100%","organic_carbon","soot", + "sea_salt", "dust_0.1", "dust_0.2", "dust_0.4", + "dust_0.8", "dust_1.0", "dust_2.0", "dust_4.0", + "dust_8.0" +/ + + &atmos_co2_nml + do_co2_restore = .true. + restore_tscale = 3.1536e7, + restore_klimit = 24 + co2_radiation_override = .true. + do_co2_emissions = .false. ! turn on for historical free co2 runs +/ + + &atmosphere_nml + physics_window = 0,0 +/ + + &amip_interp_nml + data_set = 'reynolds_oi', + date_out_of_range = 'fail' +/ + + &cg_drag_nml + cg_drag_freq = 1800, + cg_drag_offset = 0, + debug = .false., + calculate_ked = .false., + itest = 12, + jtest = 42, + ktest = 9, + Bt_0 = 0.0015, + lat_limit = 25.0 +/ + + &cloud_rad_nml + overlap = 2, + do_brenguier = .false. +/ + + &cloud_spec_nml + cloud_type_form = 'strat' +/ + + &cloudrad_package_nml + microphys_form = 'predicted' +/ + + &clouds_nml + do_zonal_clouds = .false., + do_obs_clouds = .false. +/ + + + &cu_mo_trans_nml + diff_norm = 2.0 +/ + + &damping_driver_nml + trayfric = -40., + nlev_rayfric = 1, + do_mg_drag = .true., + do_cg_drag = .false., + do_topo_drag = .false., + do_conserve_energy = .true. +/ + + &diag_cloud_nml + linvers = .false., lcnvcld = .false., + l_theqv = .true., lomega = .true., + low_lev_cloud_index = 16, nofog = .false. +/ + + &diag_cloud_rad_nml + l_har_anvil = .true., + l_har_coldcld = .true., + l_anom_abs_v = .true. +/ + + &diag_integral_nml + file_name = 'diag_integral.out', + time_units = 'days', + output_interval = 1.0 +/ + + &diag_manager_nml + max_files = 50, + max_axes = 200, + max_num_axis_sets = 200, + max_input_fields = 800 + max_output_fields = 1300 + mix_snapshot_average_fields=.false. + issue_oor_warnings = .false. ! (default=true) +/ + + &donner_deep_clouds_W_nml + using_dge_sw = .true., + using_dge_lw = .true. +/ + + &donner_deep_nml + donner_deep_offset = 0 + donner_deep_freq = 1800 + save_donner_deep_diagnostics=.true. + cell_liquid_size_type = 'bower' + cell_ice_size_type = 'default' + debug = .false. + kttest=5 + itest=53 + jtest=32 + ktest_model=17 +/ + + &edt_nml + n_print_levels = 14, + use_qcmin = .true., + num_pts_ij = 0, + min_adj_time = 1.0, + do_gaussian_cloud = .false., + use_extrapolated_ql = .false. +/ + + &entrain_nml + convect_shutoff = .true., + apply_entrain = .true., + parcel_buoy = 0.25, + parcel_option = 2, + beta_rad = 0.5, + Ashear = 25.0, + radperturb = 0.10, + critjump = 0.10, + num_pts_ij = 0, + i_entprt_gl = 112, 96, 89,105, 81, 97, + j_entprt_gl = 71, 61, 56, 64, 53, 46 +/ + + &esfsw_parameters_nml + sw_resolution = 'low', + sw_diff_streams = 1 +/ + + &flux_exchange_nml + debug_stocks = .FALSE. + divert_stocks_report = .TRUE. + do_area_weighted_flux = .FALSE. +/ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' + max_files_r = 300 + max_files_w = 300 +/ + + &fv_core_nml + LAYOUT = 0,30 + nlon =144 + mlat=90 + nlev = 24 + ncnst = 4 + pnats = 0 + n_split = 5 + change_time = .true. + consv_te = 0.7 + restart_format='NETCDF' +/ + + &gas_tf_nml + interp_form = 'log' , + do_calcstdco2tfs = .true., + do_writestdco2tfs= .false., + do_readstdco2tfs = .false., + do_calcstdch4tfs = .true., + do_writestdch4tfs= .false., + do_readstdch4tfs = .false., + do_calcstdn2otfs = .true., + do_writestdn2otfs= .false., + do_readstdn2otfs = .false. +/ + +&generic_tracer_nml + do_generic_tracer=.false. + do_generic_CFC=.false. + do_generic_TOPAZ=.false. +/ + +&ice_albedo_nml + t_range = 10. +/ + +&ice_model_nml +/ + +&icebergs_nml + time_average_weight = .false. + speed_limit=0.50 + verbose=.TRUE. + traj_sample_hrs=0 + verbose_hrs=120 +/ + + &lscale_cond_nml + do_evap = .true. +/ + + &lw_gases_stdtf_nml + NSTDCO2LVLS=496 +/ + + &mg_drag_nml + gmax = 1., + acoef = 1., + do_conserve_energy = .true., + source_of_sgsmtn = 'computed' +/ + + µphys_rad_nml + lwem_form = 'fuliou' +/ + + &moist_conv_nml + beta = 0.0 +/ + + &moist_processes_nml + do_lsc=.false., do_strat=.true., do_mca=.false., do_ras=.true., + do_donner_deep = .false., + do_diag_clouds = .false., do_cmt=.true., + do_rh_clouds = .false., + do_gust_cv = .false. + include_donmca_in_cosp = .false. +/ + + &monin_obukhov_nml + stable_option = 2, + rich_crit = 10.0, + zeta_trans = 0.5 +/ + + &my25_turb_nml + do_thv_stab = .true., + TKEmin = 1.e-8, + AKmin_land = 5., + AKmin_sea = 0. +/ + +&ocean_albedo_nml + ocean_albedo_option = 5 +/ + +&ocean_rough_nml + rough_scheme = 'beljaars' +/ + + &ozone_nml + basic_ozone_type = 'fixed_year' , + ozone_dataset_entry = 1990, 1, 1, 0, 0, 0, + data_name = "ozone", + filename = "o3.climatology.nc" +/ + + &physics_driver_nml + do_modis_yim = .false. +/ + + &rad_output_file_nml + write_data_file=.true. +/ + + &rad_utilities_nml +/ + + &radiation_diag_nml + iradprt_gl = 20, 6, + jradprt_gl = 12, 20, + num_pts_ij = 0 +/ + + &radiation_driver_nml + rad_time_step= 10800, + time_varying_solar_constant = .false., + solar_dataset_entry = 1990,1,1,0,0,0, + rad_package = 'sea_esf', + do_clear_sky_pass=.true., + calc_hemi_integrals = .false., + renormalize_sw_fluxes=.true., + all_step_diagnostics = .true., + zenith_spec = 'diurnally_varying', + use_co2_tracer_field = .false. ! not using co2 tracer field + using_restart_file = .false. +/ + + &radiative_gases_nml + verbose = 3 + gas_printout_freq = 240 + + time_varying_co2 = .false., + co2_variation_type = 'linear', + co2_dataset_entry = 1990,1,1,0,0,0, + co2_specification_type = 'time_series', + co2_floor = 100.0E-06, + co2_ceiling = 1600.0E-06, + co2_data_source = 'input' + + time_varying_ch4 = .false., + ch4_variation_type = 'linear' + ch4_dataset_entry = 1990, 1, 1, 0, 0, 0, + ch4_specification_type = 'time_series' + ch4_data_source = 'input' + + time_varying_n2o = .false., + n2o_variation_type = 'linear' + n2o_dataset_entry = 1990, 1, 1, 0, 0, 0, + n2o_specification_type = 'time_series' + n2o_data_source = 'input' + + time_varying_f11 = .false., + f11_variation_type = 'linear' + f11_dataset_entry = 1990, 1, 1, 0, 0, 0, + f11_specification_type = 'time_series' + f11_data_source = 'input' + + time_varying_f12 = .false., + f12_variation_type = 'linear' + f12_dataset_entry = 1990, 1, 1, 0, 0, 0, + f12_specification_type = 'time_series' + f12_data_source = 'input' + + time_varying_f113 = .false., + f113_variation_type = 'linear' + f113_dataset_entry = 1990, 1, 1, 0, 0, 0, + f113_specification_type = 'time_series' + f113_data_source = 'input' + + time_varying_f22 = .false., + f22_variation_type = 'linear' + f22_dataset_entry = 1990, 1, 1, 0, 0, 0, + f22_specification_type = 'time_series' + f22_data_source = 'input' +/ + + &ras_nml + aratio = 1.0, + modify_pbl=.true. + rn_frac_bot = 0.5, + rn_pbot = 800.0e2, + puplim = 20.0e02, + rn_ptop = 500.0e2, + rn_frac_top = 0.975, + Tokioka_on = .true., + Tokioka_con = 0.025, + Tokioka_plim = 500.0e2, + a = 1.6851, 1.1686, 0.7663, 0.5255, 0.4100, 0.3677, + 0.3151, 0.2216, 0.1521, 0.0750, 0.0000, 0.0000, + 0.0000, 0.0000, 0.0000 +/ + + &rh_based_clouds_nml + cirrus_cld_prop_form = 'part', + cldht_type_form = '93' +/ + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. +/ + + &sealw99_nml + do_thick = .false., + do_nlte = .false., + do_lwcldemiss = .true., + do_n2olbltmpint = .false., + continuum_form = 'ckd2.1', + linecatalog_form = 'hitran_2000', + calc_co2_tfs_on_first_step = .true., + calc_co2_tfs_monthly = .false., + co2_tf_time_displacement = 0.0, + calc_ch4_tfs_on_first_step = .true., + calc_ch4_tfs_monthly = .false., + ch4_tf_time_displacement = 0.0, + calc_n2o_tfs_on_first_step = .true., + calc_n2o_tfs_monthly = .false., + n2o_tf_time_displacement = 0.0, + verbose = 5 +/ + + &shortwave_driver_nml + do_cmip_diagnostics = .true., + calculate_volcanic_sw_heating = .false., + swform = 'esfsw99' +/ + + &stable_bl_turb_nml + alsm = 500.0, + alsh = 500.0 +/ + + &strat_cloud_nml + do_old_snowmelt = .true. + U00 = 0.800, + U00_profile = .true., + rthresh = 8.0, + Dmin = 1.0e-07, + n_land = 300.e6, + diff_thresh = 0.1, + mc_thresh = 0.001, + eros_scale = 1.e-6, + eros_choice = .true., + eros_scale_c = 8.e-6, + eros_scale_t = 5.e-5, + super_choice = .true., + tracer_advec = .true. +/ + +&topography_nml + topog_file = 'INPUT/navy_topography.data.nc' +/ + + &vert_diff_driver_nml + do_conserve_energy = .true. +/ + + &vert_turb_driver_nml + use_tau = .false., + gust_scheme = 'beljaars', + do_mellor_yamada = .false., + do_entrain = .true., + do_edt = .false., + do_diffusivity = .false., + do_stable_bl = .true., + do_shallow_conv = .false. +/ + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' +/ + + + &cana_nml + turbulence_to_use = "lm3v" + init_co2 = 286.0e-6 + canopy_air_mass_for_tracers = 10.0 +/ + &glac_data_nml + use_lm2_awc = .true., + rsa_exp_global = 10., + dat_emis_dry = 1., + dat_emis_sat = 1., +/ + &glac_nml + conserve_glacier_mass = .true. + lm2 = .true. +/ + &harvesting_nml + do_harvesting = .FALSE. !!! turn on for LAND USE + grazing_intensity = 0.25 + grazing_residue = 0.1 + frac_wood_wasted_harv = 0.25 + frac_wood_wasted_clear = 0.25 + !frac_wood_fast = ONETHIRD + !frac_wood_med = ONETHIRD + !frac_wood_slow = ONETHIRD + crop_seed_density = 0.1 +/ + &lake_data_nml + lake_to_use = 'from-rivers' + num_l = 20, + dat_emis_dry = 1., + dat_emis_sat = 1., + dat_heat_capacity_ref = 0., + f_iso_liq = 0.02, 0.01 + f_iso_ice = 0.02, 0.01 + f_vol_liq = 0.003, 0. + f_vol_ice = 0.003, 0. + f_geo_liq = 0., 0. + f_geo_ice = 0., 0. +/ + &lake_nml + albedo_to_use = 'brdf-params' + float_ice_to_top = .true. +/ + &land_debug_nml + watch_point = 0,0,0,1 +/ + &land_model_nml + layout = 1,0 + io_layout = 1,1 + tau_snow_T_adj = 604800. +/ + &landuse_nml + do_landuse_change = .false., !!! turn on for LAND USE + input_file = 'INPUT/landuse.nc' +/ + &river_nml + dt_slow = 86400. + land_area_called_cellarea = .true. + all_big_outlet_ctn0 = .true. +/ + &river_physics_nml + lake_sfc_w_min = 20. +/ + &snow_data_nml + emis_snow_max = 1. + emis_snow_min = 1. + z0_momentum = 0.01 + num_l = 5 + dz = 0.05, 0.2, 0.5, 0.2, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0 + f_iso_cold = 0.90, 0.60 + f_vol_cold = 0.09, 0.13 + f_geo_cold = 0.00, 0.00 + f_iso_warm = 0.90, 0.60 + f_vol_warm = 0.09, 0.13 + f_geo_warm = 0.00, 0.00 + depth_crit = 0.05 +/ + &snow_nml + min_snow_mass = 1.e-10 + max_snow = 1000. + albedo_to_use = 'brdf-params' +/ + &soil_data_nml + dat_emis_dry = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_emis_sat = 1., 1., 1., 1., 1., 1., 1., 1., 1. + dat_tf_depr = 2., 2., 2., 2., 2., 2., 2., 2., 2. + geohydrology_to_use = 'hill_ar5' + gw_scale_soil_depth = 10. + freeze_factor = 2.0 + comp = 1e-4 + num_l = 20 + dz = 0.020, 0.040, 0.040, 0.050, 0.05, 0.100, 0.10, 0.200, 0.200, 0.2, + 0.40, 0.40, 0.40, 0.4, 0.4, 1.0, 1.0, 1.0, 1.5, 2.5 +/ + &soil_nml + init_w = 500. + albedo_to_use = 'brdf-maps' + uptake_to_use = 'darcy2d-linearized' + uptake_oneway = .true. + active_layer_drainage_acceleration = 100. + write_soil_carbon_restart = .FALSE. !To reproduce siena answers +/ + &static_veg_nml + use_static_veg = .FALSE. + timeline = 'loop' + start_loop = 2420, 1, 1, 0, 0, 0 + end_loop = 2470, 1, 1, 0, 0, 0 + fill_land_mask = .TRUE. +/ + &topo_rough_nml + use_topo_rough = .true. + max_topo_rough = 100.0 + topo_rough_factor = 0.01 +/ + &vegn_data_nml + vegn_to_use = 'uniform' + K1=10, + K2=0.1, + fsc_liv=0.9, + fsc_wood=0.45, + c1(4) = 0.3 + c2(4) = 0.3 + Vmax = 2.0E-5, 2.0E-5, 2.0E-5, 2.0E-5, 1.50E-5, + m_cond = 4., 9., 9., 7., 7., + alpha_phot = 0.05, 0.06, 0.06, 0.06, 0.06, + gamma_resp = 0.03, 0.02, 0.02, 0.02, 0.02, + fact_crit_phen(0:4) = 0., 0., 0., 0., 0. + fact_crit_fire(0:4) = 0., 0., 0., 0., 0. + cnst_crit_phen(0:4) = 0.30, 0.15, 0.15, 0.30, 0.30 + cnst_crit_fire(0:4) = 0.15, 0.40, 0.15, 0.15, 0.15 + wet_leaf_dreg(0:4) = .3, .3, .3, .3, .3 + ksi = 0, 0, 0, 0, 0, + leaf_refl(0:4,1) = 0.11, 0.11, 0.10, 0.10, 0.10 + leaf_refl(0:4,2) = 0.58, 0.58, 0.5, 0.5, 0.5, + dat_root_zeta(0:4) = 0.35212, 0.17039, 0.28909, 0.25813, 0.17039 + critical_root_density = 0.0, + tau_drip_s = 259200.0 + cmc_lai(0:4) = 0.02, 0.02, 0.02, 0.02, 0.02 + csc_lai(0:4) = 0.2, 0.2, 0.2, 0.2, 0.2 + dat_snow_crit = 0.0167, 0.0167, 0.0333, 0.2, 0.2 + t_transp_min = 268. + srl(0:1) = 112.0e3, 150.0e3 + root_perm = 14*5e-7 + alpha(1,3) = 4 + leaf_age_tau(2) = 150 + smoke_fraction = 0.9, 0.9, 0.6, 0.6, 0.6 + tg_c3_thresh = 1 + phen_ev2 = 0.925 + cmc_eps = 0.01 + alpha(0:4,6) = 0.0, 0.0, 0.012, 0.012, 0.012 + treefall_disturbance_rate = 0.175, 0.185, 0.025, 0.0275, 0.027 +/ + &vegn_nml + init_Tv = 288.0 + rad_to_use = 'two-stream' + photosynthesis_to_use = 'leuning' + snow_rad_to_use = 'paint-leaves' + co2_to_use_for_photosynthesis ='interactive' + co2_for_photosynthesis = 286.0e-6 + do_cohort_dynamics = .TRUE., + do_patch_disturbance = .TRUE., + do_phenology = .TRUE., + do_biogeography = .TRUE., + do_seed_transport = .TRUE., + tau_smooth_ncm = 22.0 +/ diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.intel b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.intel new file mode 100644 index 0000000000..bf02c22187 --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.intel @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 693135.000, 0, En 6.941081183736E-01, CFL 0.00000, SL 4.5150E-11, M 1.37957E+21, S 34.7203, T 3.6137, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 693135.250, 0, En 7.169083512313E-01, CFL 0.13341, SL -3.3830E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.24E-15, Se 4.20E-14, Te 1.88E-14 + 6, 693135.500, 0, En 7.184971705914E-01, CFL 0.08936, SL -8.8966E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.45E-15, Se 4.78E-14, Te 2.09E-14 + 9, 693135.750, 0, En 7.182011705898E-01, CFL 0.17308, SL 5.2319E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.00E-14, Te 2.27E-14 + 12, 693136.000, 0, En 7.172947760278E-01, CFL 0.16911, SL 1.4290E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.52E-15, Se 5.05E-14, Te 2.33E-14 diff --git a/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.pgi b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.pgi new file mode 100644 index 0000000000..3605983afc --- /dev/null +++ b/examples/coupled_AM2_LM3_SIS2/AM2_SIS2_MOM6i_1deg/timestats.pgi @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 693135.000, 0, En 6.941101031888E-01, CFL 0.00000, SL 4.4642E-11, M 1.37957E+21, S 34.7203, T 3.6137, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 693135.250, 0, En 7.169159997065E-01, CFL 0.13341, SL -3.3422E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.24E-15, Se 4.19E-14, Te 1.88E-14 + 6, 693135.500, 0, En 7.184972523480E-01, CFL 0.08966, SL -8.2253E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.45E-15, Se 4.78E-14, Te 2.10E-14 + 9, 693135.750, 0, En 7.180938805816E-01, CFL 0.17432, SL 6.0298E-05, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.51E-15, Se 5.00E-14, Te 2.27E-14 + 12, 693136.000, 0, En 7.172659848075E-01, CFL 0.16466, SL 1.5217E-04, M 1.37957E+21, S 34.7203, T 3.6137, Me 1.52E-15, Se 5.05E-14, Te 2.33E-14 diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/.datasets b/examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/.datasets new file mode 120000 index 0000000000..086a13aa04 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/.datasets @@ -0,0 +1 @@ +../../../.datasets \ No newline at end of file diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/README b/examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/README new file mode 120000 index 0000000000..fc45a3cbc3 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/INPUT/README @@ -0,0 +1 @@ +.datasets/GOLD_SIS/riga/mosaic.unpacked/README \ No newline at end of file diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_channel_list b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_channel_list new file mode 100644 index 0000000000..3bbb2ca75d --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_channel_list @@ -0,0 +1,20 @@ +! This file specifies restricted channel widths in GOLD. The order is: +! [UV]_WIDTH, min_longitude, max_longitude, min_latitude, max_latitude, width + +U_width, -6.5, -4.5, 35.0, 36.0, 12000.0 ! Gibraltar +U_width, 42.5, 43.5, 12.0, 13.0, 10000.0 ! Red Sea, Bab-el-Mendeb +U_width, 25.5, 26.5, 40.0, 41.0, 5000.0 ! Dardanelles +U_width, 139.5, 140.5, 41.0, 42.0, 35000.0 ! Tsugaru Strait +U_width, 141.6, 143.4, 45.0, 46.0, 15000.0 ! Between Sakhalin & Hokkaido +U_width, -65.7, -64.1, 80.64, 81.04, 38000.0 ! Smith Sound, Canadian Arctic + +V_width, 28.0, 29.0, 40.5, 41.5, 2500.0 ! Bosporus - should be 1km wide. +V_width, 42.0, 43.0, 12.5, 13.5, 10000.0 ! Red Sea, Bab-el-Mendeb +V_width, 118.0, 119.0, -3.6, -2.0, 40000.0 ! Makassar Straits +V_width, 119.0, 120.0, 0.06, 1.06, 80000.0 ! Entry to Makassar Straits +V_width, 129.0, 131.0, -0.31, 0.69, 25000.0 ! Between New Guinea & Halmahera +V_width, 131.0, 132.0, -0.25, 0.25, 25000.0 ! Between New Guinea & Halmahera +V_width, 115.0, 116.0, -9.0, -8.0, 20000.0 ! Lombok Straits +V_width, 124.0, 125.0, -9.0, -8.0, 20000.0 ! Timor Straits +V_width, 141.0, 142.0, 51.5, 52.5, 2500.0 ! Between Sakhalin & Russia +V_width, -89.2, -88.2, 76.74, 76.86, 8400.0 ! Jones Sound, Canadian Arctic diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_input b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_input new file mode 100644 index 0000000000..2646b977f6 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_input @@ -0,0 +1,661 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in SIS2_icebergs. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +USE_LEGACY_SPLIT = True ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +THICKNESS_CONFIG = "file" ! + ! A string that determines how the initial layer + ! thicknesses are specified for a new run: + ! file - read interface heights from the file specified + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! benchmark - use the benchmark test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +THICKNESS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The name of the thickness file. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +TS_CONFIG = "file" ! + ! A string that determines how the initial tempertures + ! and salinities are specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +TS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The initial condition file for temperature. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +FLUX_BT_COUPLING = True ! [Boolean] default = False + ! If true, use mass fluxes to ensure consistency between + ! the baroclinic and barotropic modes. This is only used + ! if SPLIT is true. +READJUST_BT_TRANS = True ! [Boolean] default = False + ! If true, make a barotropic adjustment to the layer + ! velocities after the thermodynamic part of the step + ! to ensure that the interaction between the thermodynamics + ! and the continuity solver do not change the barotropic + ! transport. This is only used if FLUX_BT_COUPLING and + ! SPLIT are true. +MONOTONIC_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +DT_BT_FILTER = 0.0 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = 60.0 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_kappa_shear === +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = True ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = True ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +FLUXCONST = 0.5 ! [m day-1] + ! The constant that relates the restoring surface fluxes + ! to the relative surface anomalies (akin to a piston + ! velocity). Note the non-MKS units. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 1000000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_override b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_override new file mode 100644 index 0000000000..5d67420dc4 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_override @@ -0,0 +1 @@ +! Blank file in which we can put "overrides" for parameters diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.all b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.all new file mode 100644 index 0000000000..f90eb91f51 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.all @@ -0,0 +1,1708 @@ +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = True ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to + ! calculate accelerations and the mass for conservation + ! properties, or with BOUSSINSEQ false to convert some + ! parameters from vertical units of m to kg m-2. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first + ! in parts of the code that use directionally split + ! updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minumum layer thickness, usually one-Angstrom. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths + ! at velocity points. Otherwise the effects of of + ! topography are entirely determined from thickness points. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +AVAILABLE_DIAGS_FILE = "available_diags.000000" ! default = "available_diags.000000" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +SPLIT = True ! [Boolean] default = True + ! Use the split time stepping if true. +USE_LEGACY_SPLIT = True ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state + ! variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and + ! salinity with an equation of state. If USE_EOS is + ! true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, + ! including buoyancy forcing and mass gain or loss, + ! before stepping the dynamics forward. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is + ! true. This assumes that KD = KDML = 0.0 and that + ! there is no buoyancy forcing, but makes the model + ! faster by eliminating subroutine calls. +BULKMIXEDLAYER = True ! [Boolean] default = True + ! If true, use a Kraus-Turner-like bulk mixed layer + ! with transitional buffer layers. Layers 1 through + ! NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. + ! The default is the same setting as ENABLE_THERMODYNAMICS. +USE_REGRIDDING = False ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for + ! debugging truncations. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure + ! over the coupling time step, using the specified value + ! at the end of the step. +SSH_SMOOTHING_PASSES = 0.0 ! [nondim] default = 0.0 + ! The number of Laplacian smoothing passes to apply to the + ! the sea surface height that is reported to the sea-ice. +DTBT_RESET_PERIOD = -1.0 ! [s] default = -1.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate + ! density. (1 Pa = 1e4 dbar, so 2e7 is commonly used.) + ! This is only used if USE_EOS and ENABLE_THERMODYNAMICS + ! are true. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state + ! should be used. Currently, the valid choices are + ! "LINEAR", "UNESCO", and "WRIGHT". + ! This is only used if USE_EOS is true. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code + ! code for the integrals of density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be + ! used for the freezing point. Currently, the valid + ! choices are "LINEAR", "MILLERO_78". +TFREEZE_S0_P0 = 0.0 ! [deg C] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the freezing potential temperature at + ! S=0, P=0. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure. +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +LARGE_FILE_SUPPORT = True ! [Boolean] default = True + ! If true, use the file-size limits with NetCDF large + ! file support (4Gb), otherwise the limit is 2Gb. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a + ! preprocessor macro, use the MOM_generic_tracer packages. + +! === module ideal_age_example === +DO_IDEAL_AGE = True ! [Boolean] default = True + ! If true, use an ideal age tracer that is set to 0 age + ! in the mixed layer and ages at unit rate in the interior. +DO_IDEAL_VINTAGE = False ! [Boolean] default = False + ! If true, use an ideal vintage tracer that is set to an + ! exponentially increasing value in the mixed layer and + ! is conserved thereafter. +DO_IDEAL_AGE_DATED = False ! [Boolean] default = False + ! If true, use an ideal age tracer that is everywhere 0 + ! before IDEAL_AGE_DATED_START_YEAR, but the behaves like + ! the standard ideal age tracer - i.e. is set to 0 age in + ! the mixed layer and ages at unit rate in the interior. +AGE_IC_FILE = "" ! default = "" + ! The file in which the age-tracer initial values can be + ! found, or an empty string for internal initialization. +AGE_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, AGE_IC_FILE is in depth space, not layer space +MASK_MASSLESS_TRACERS = False ! [Boolean] default = False + ! If true, the tracers are masked out in massless layer. + ! This can be a problem with time-averages. +TRACERS_MAY_REINIT = False ! [Boolean] default = False + ! If true, tracers may go through the initialization code + ! if they are not found in the restart files. Otherwise + ! it is a fatal error if the tracers are not found in the + ! restart files of a restarted run. + +! === module MOM_OCMIP2_CFC === +CFC_IC_FILE = "" ! default = "" + ! The file in which the CFC initial values can be + ! found, or an empty string for internal initialization. +CFC_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, CFC_IC_FILE is in depth space, not layer space +CFC11_A1 = 3501.8 ! [nondim] default = 3501.8 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A2 = -210.31 ! [degC-1] default = -210.31 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A3 = 6.1851 ! [degC-2] default = 6.1851 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A4 = -0.07513 ! [degC-3] default = -0.07513 + ! A coefficient in the Schmidt number of CFC11. +CFC12_A1 = 3845.4 ! [nondim] default = 3845.4 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A2 = -228.95 ! [degC-1] default = -228.95 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A3 = 6.1908 ! [degC-2] default = 6.1908 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A4 = -0.06743 ! [degC-3] default = -0.06743 + ! A coefficient in the Schmidt number of CFC12. +CFC11_D1 = -229.9261 ! [none] default = -229.9261 + ! A coefficient in the solubility of CFC11. +CFC11_D2 = 319.6552 ! [hK] default = 319.6552 + ! A coefficient in the solubility of CFC11. +CFC11_D3 = 119.4471 ! [none] default = 119.4471 + ! A coefficient in the solubility of CFC11. +CFC11_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC11. +CFC11_E1 = -0.142382 ! [PSU-1] default = -0.142382 + ! A coefficient in the solubility of CFC11. +CFC11_E2 = 0.091459 ! [PSU-1 hK-1] default = 0.091459 + ! A coefficient in the solubility of CFC11. +CFC11_E3 = -0.0157274 ! [PSU-1 hK-2] default = -0.0157274 + ! A coefficient in the solubility of CFC11. +CFC12_D1 = -218.0971 ! [none] default = -218.0971 + ! A coefficient in the solubility of CFC12. +CFC12_D2 = 298.9702 ! [hK] default = 298.9702 + ! A coefficient in the solubility of CFC12. +CFC12_D3 = 113.8049 ! [none] default = 113.8049 + ! A coefficient in the solubility of CFC12. +CFC12_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC12. +CFC12_E1 = -0.143566 ! [PSU-1] default = -0.143566 + ! A coefficient in the solubility of CFC12. +CFC12_E2 = 0.091015 ! [PSU-1 hK-1] default = 0.091015 + ! A coefficient in the solubility of CFC12. +CFC12_E3 = -0.0153924 ! [PSU-1 hK-2] default = -0.0153924 + ! A coefficient in the solubility of CFC12. +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. +COORD_VAR = "Layer" ! default = "Layer" + ! The variable in COORD_FILE that is to be used for the + ! coordinate densities. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +TOPO_FILE = "topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative. +APPLY_OBC_U_FLATHER_EAST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the eastern + ! side of the global domain +APPLY_OBC_U_FLATHER_WEST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the western + ! side of the global domain +APPLY_OBC_V_FLATHER_NORTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the northern + ! side of the global domain +APPLY_OBC_V_FLATHER_SOUTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the southern + ! side of the global domain +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ROTATION = "2omegasinlat" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = False ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +THICKNESS_CONFIG = "file" ! + ! A string that determines how the initial layer + ! thicknesses are specified for a new run: + ! file - read interface heights from the file specified + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! benchmark - use the benchmark test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +THICKNESS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The name of the thickness file. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +TS_CONFIG = "file" ! + ! A string that determines how the initial tempertures + ! and salinities are specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +TS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The initial condition file for temperature. +TEMP_IC_VAR = "PTEMP" ! default = "PTEMP" + ! The initial condition variable for potential temperature. +SALT_IC_VAR = "SALT" ! default = "SALT" + ! The initial condition variable for salinity. +SALT_FILE = "GOLD_IC.2010.11.15.nc" ! default = "GOLD_IC.2010.11.15.nc" + ! The initial condition file for salinity. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities + ! are specified for a new run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! paremters TORUS_U and TORUS_V). + ! USER - call a user modified routine. +CONVERT_THICKNESS_UNITS = False ! [Boolean] default = False + ! If true, convert the thickness initial conditions from + ! units of m to kg m-2 or vice versa, depending on whether + ! BOUSSINESQ is defined. This does not apply if a restart + ! file is read. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge + ! tsunamis when a large surface pressure is applied. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. + ! The exact location and properties of those sponges are + ! specified via SPONGE_CONFIG. +APPLY_OBC_U = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! u-points, with the configuration controlled by OBC_CONFIG +APPLY_OBC_V = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! v-points, with the configuration controlled by OBC_CONFIG + +! === module MOM_MEKE === +MEKE_DAMPING = 0.0 ! [s-1] default = 0.0 + ! The local depth-indepented MEKE dissipation rate. +MEKE_CD_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scaling for the bottom drag applied to MEKE. This + ! should be less than 1 to account for the surface + ! intensification of MEKE and the fraction of MEKE that + ! may be temporarily stored as potential energy. +MEKE_GMCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_FRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into + ! MEKE. If MEKE_FRCOEFF is negative, this conversion + ! is not used or calculated. +MEKE_BGSRC = 0.0 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KH = -1.0 ! [m2 s-1] default = -1.0 + ! A background lateral diffusivity of MEKE, or a + ! Use a negative value to not apply lateral diffusion to MEKE. +MEKE_DTSCALE = 1.0 ! [nondim] default = 1.0 + ! A scaling factor to accelerate the time evolution of MEKE. +MEKE_KHCOEFF = -1.0 ! [nondim] default = -1.0 + ! A scaling factor which is combined with the square root + ! of MEKE times the grid-cell area to give MEKE%Kh, or a + ! negative value not to calculate MEKE%Kh. + ! This factor must be >0 for MEKE to contribute to the + ! thickness/tracer mixing in the rest of the model. +MEKE_USCALE = 1.0 ! [m s-1] default = 1.0 + ! The background velocity that is combined with MEKE to + ! calculate the bottom drag. +CDRAG = 0.003 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of + ! the velocity field to the bottom stress. +MEKE_VISC_DRAG = False ! [Boolean] default = False + ! If true, use the vertvisc_type to calculate the bottom + ! drag acting on MEKE. +MEKE_KHTH_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_RD_MAX_SCALE = True ! [nondim] default = True + ! If true, the maximum length scale used by MEKE is + ! the deformation radius. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled + ! away when the first baroclinic deformation radius is + ! well resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +KH_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if + ! RESOLN_SCALED_... is true, as + ! F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). +KH_RES_FN_POWER = 2 ! [nondim] default = 2 + ! The power of dx/Ld in the resolution function. Any + ! positive integer may be used, although even integers + ! are more efficient to calculate. Setting this greater + ! than 100 results in a step-function being used. +TIDES = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing. +BE = 0.6 ! [nondim] default = 0.6 + ! If SPLIT is true, BE determines the relative weighting + ! of a 2nd-order Runga-Kutta baroclinic time stepping + ! scheme (0.5) and a backward Euler scheme (1) that is + ! used for the Coriolis and inertial terms. BE may be + ! from 0.5 to 1, but instability may occur near 0.5. + ! BE is also applicable if SPLIT is false and USE_RK2 + ! is true. +BEGW = 0.0 ! [nondim] default = 0.0 + ! If SPILT is true, BEGW is a number from 0 to 1 that + ! controls the extent to which the treatment of gravity + ! waves is forward-backward (0) or simulated backward + ! Euler (1). 0 is almost always used. + ! If SPLIT is false and USE_RK2 is true, BEGW can be + ! between 0 and 0.5 to damp gravity waves. +FLUX_BT_COUPLING = True ! [Boolean] default = False + ! If true, use mass fluxes to ensure consistency between + ! the baroclinic and barotropic modes. This is only used + ! if SPLIT is true. +READJUST_BT_TRANS = True ! [Boolean] default = False + ! If true, make a barotropic adjustment to the layer + ! velocities after the thermodynamic part of the step + ! to ensure that the interaction between the thermodynamics + ! and the continuity solver do not change the barotropic + ! transport. This is only used if FLUX_BT_COUPLING and + ! SPLIT are true. +SPLIT_BOTTOM_STRESS = False ! [Boolean] default = False + ! If true, provide the bottom stress calculated by the + ! vertical viscosity to the barotropic solver. +BT_USE_LAYER_FLUXES = True ! [Boolean] default = True + ! If true, use the summed layered fluxes plus an + ! adjustment due to the change in the barotropic velocity + ! in the barotropic continuity equation. +CONTINUITY_SCHEME = "PPM" ! default = "PPM" + ! CONTINUITY_SCHEME selects the discretization for the + ! continuity solver. The only valid value currently is: + ! PPM - use a positive-definite (or monotonic) + ! piecewise parabolic reconstruction solver. +MONOTONIC_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order + ! (arithmetic mean) interpolation of the edge values. + ! This may give better PV conservation propterties. While + ! it formally reduces the accuracy of the continuity + ! solver itself in the strongly advective limit, it does + ! not reduce the overall order of accuracy of the dynamic + ! core. +UPWIND_1ST_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind + ! continuity solver. This scheme is highly diffusive + ! but may be useful for debugging or in single-column + ! mode where its minimal stensil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 1.0E-06 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a + ! relative CFL change up to 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the + ! tracer cell areas when estimating CFL numbers. The + ! default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity + ! based criterion and only stop if the iteration is + ! better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for + ! corrections in strongly viscous columns. +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise + ! free slip boundary conditions are assumed. The + ! implementation of the free slip BCs on a C-grid is much + ! cleaner than the no slip BCs. The use of free slip BCs + ! is strongly encouraged, and no slip BCs are not used with + ! the biharmonic viscosity. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration + ! due to the kinetic energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV + ! advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated + ! with a finite volume form that analytically integrates + ! the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as + ! described in Adcroft et al., O. Mod. (2008). +MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +BIHARMONIC = True ! [Boolean] default = True + ! If true, se a biharmonic horizontal viscosity. + ! BIHARMONIC may be used with LAPLACIAN. +KH = 0.0 ! [m2 s-1] default = 0.0 + ! The background Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +SMAGORINSKY_KH = False ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable. +BETTER_BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable with a better bounding than just BOUND_KH. +AH = 0.0 ! [m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable. +BETTER_BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable with a better bounding than just BOUND_AH. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. +BOUND_CORIOLIS_BIHARM = True ! [Boolean] default = True + ! If true use a viscosity that increases with the square + ! of the velocity shears, so that the resulting viscous + ! drag is of comparable magnitude to the Coriolis terms + ! when the velocity differences between adjacent grid + ! points is 0.5*BOUND_CORIOLIS_VEL. The default is the + ! value of BOUND_CORIOLIS (or false). +BOUND_CORIOLIS_VEL = 6.0 ! [m s-1] default = 6.0 + ! The velocity scale at which BOUND_CORIOLIS_BIHARM causes + ! the biharmonic drag to have comparable magnitude to the + ! Coriolis acceleration. The default is set by MAXVEL. +HORVISC_BOUND_COEF = 0.8 ! [nondim] default = 0.8 + ! The nondimensional coefficient of the ratio of the + ! viscosity bounds to the theoretical maximum for + ! stability without considering other terms. + +! === module MOM_vert_friction === +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag + ! law of the form c_drag*|u|*u. The velocity magnitude + ! may be an assumed value or it may be based on the + ! actual velocity in the bottommost HBBL, depending on + ! LINEAR_DRAG. +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the + ! topmost HMIX_STRESS of fluid (like in HYCOM), and KVML + ! may be set to a very small value. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +HARMONIC_VISC = False ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for + ! calculating the vertical viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an + ! absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity + ! components to be truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations + ! to be reported; the default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0 + ! The time over which the CFL trunction value is ramped + ! up at the beginning of the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when + ! ramping up CFL_TRUNC. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of colums of truncations that any PE + ! will write out during a run. + +! === module MOM_set_visc === +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag + ! law is cdrag*DRAG_BG_VEL*u. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivitives for temperature or salt + ! based on double-diffusive paramaterization from MOM4/KPP. +PRANDTL_TURB = 0.0 ! [nondim] default = 0.0 + ! The turbulent Prandtl number applied to shear + ! instability. +BULK_RI_ML_VISC = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. By default, + ! BULK_RI_ML_VISC = BULK_RI_ML or 0. +TKE_DECAY_VISC = 10.0 ! [nondim] default = 10.0 + ! TKE_DECAY_VISC relates the vertical rate of decay of + ! the TKE available for mechanical entrainment to the + ! natural Ekman depth for use in calculating the dynamic + ! mixed layer viscosity. By default, + ! TKE_DECAY_VISC = TKE_DECAY or 0. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_USE_EOS = False ! [Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-top viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are + ! averaged for the drag law under an ice shelf. By + ! default this is the same as HBBL +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the top boundary layer. +SMAG_CONST_CHANNEL = 0.15 ! [nondim] default = 0.15 + ! The nondimensional Laplacian Smagorinsky constant used + ! in calculating the channel drag if it is enabled. The + ! default is to use the same value as SMAG_LAP_CONST if + ! it is defined, or 0.15 if it is not. The value used is + ! also 0.15 if the specified value is negative. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +GRADUAL_BT_ICS = False ! [Boolean] default = False + ! If true, adjust the initial conditions for the + ! barotropic solver to the values from the layered + ! solution over a whole timestep instead of instantly. + ! This is a decent approximation to the inclusion of + ! sum(u dh_dt) while also correcting for truncation errors. +BT_USE_WIDE_HALOS = True ! [Boolean] default = True + ! If true, use wide halos and march in during the + ! barotropic time stepping for efficiency. +BTHALO = 0 ! default = 0 + ! The minimum halo size for the barotropic solver. +!BT x-halo = 10 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 10 ! + ! The barotropic y-halo size that is actually used. +USE_BT_CONT_TYPE = True ! [Boolean] default = True + ! If true, use a structure with elements that describe + ! effective face areas from the summed continuity solver + ! as a function the barotropic flow in coupling between + ! the barotropic and baroclinic flow. This is only used + ! if SPLIT is true. +NONLINEAR_BT_CONTINUITY = False ! [Boolean] default = False + ! If true, use nonlinear transports in the barotropic + ! continuity equation. This does not apply if + ! USE_BT_CONT_TYPE is true. +RESCALE_BT_FACE_AREAS = False ! [Boolean] default = False + ! If true, the face areas used by the barotropic solver + ! are rescaled to approximately reflect the open face + ! areas of the interior layers. This probably requires + ! FLUX_BT_COUPLING to work, and should not be used with + ! USE_BT_CONT_TYPE. +BT_MASS_SOURCE_LIMIT = 0.0 ! [nondim] default = 0.0 + ! The fraction of the initial depth of the ocean that can + ! be added to or removed from the bartropic solution + ! within a thermodynamic time step. By default this is 0 + ! for no correction. +BT_PROJECT_VELOCITY = False ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +DYNAMIC_SURFACE_PRESSURE = False ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +SADOURNY = True ! [Boolean] default = True + ! If true, the Coriolis terms are discretized with the + ! Sadourny (1975) energy conserving scheme, otherwise + ! the Arakawa & Hsu scheme is used. If the internal + ! deformation radius is not resolved, the Sadourny scheme + ! should probably be used. +BT_THICK_SCHEME = "HYBRID" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +APPLY_BT_DRAG = True ! [Boolean] default = True + ! If defined, bottom drag is applied within the + ! barotropic solver. +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +CLIP_BT_VELOCITY = False ! [Boolean] default = False + ! If true, limit any velocity components that exceed + ! MAXVEL. This should only be used as a desperate + ! debugging measure. +MAXCFL_BT_CONT = 0.1 ! [nondim] default = 0.1 + ! The maximum permitted CFL number associated with the + ! barotropic accelerations from the summed velocities + ! times the time-derivatives of thicknesses. +DT_BT_FILTER = 0.0 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +G_BT_EXTRA = 0.0 ! [nondim] default = 0.0 + ! A nondimensional factor by which gtot is enhanced. +SSH_EXTRA = 10.0 ! [m] default = 10.0 + ! An estimate of how much higher SSH might get, for use + ! in calculating the safe external wave speed. The + ! default is the minimum of 10 m or 5% of MAXIMUM_DEPTH. +DEBUG_BT = False ! [Boolean] default = False + ! If true, write out verbose debugging data within the + ! barotropic time-stepping loop. The data volume can be + ! quite large if this is true. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = 60.0 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height + ! diffusivities to horizonally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is + ! not reliable and is scaled away. This is used with + ! FULL_THICKNESSDIFFUSE. +KD_SMOOTH = 1.0E-06 ! [not defined] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate + ! more sensible values of T & S into thin layers. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_MIX_FIRST = 0.0 ! [nondim] default = 0.0 + ! The fraction of the mixed layer mixing that is applied + ! before interior diapycnal mixing. 0 by default. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances as separate set of + ! equations for the internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers + ! are kept consistent with their target densities. + ! Otherwise the properties of massless layers evolve + ! diffusively to match massive neighboring layers. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at + ! the bottom into the interior as though a diffusivity of + ! KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to + ! tracers, especially in massless layers near the bottom. + ! The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will + ! allow for explicitly specified bottom fluxes. The + ! entrainment at the bottom is at least sqrt(Kd_BBL_tr*dt) + ! over the same distance. +FLUX_RI_MAX = 0.2 ! [not defined] default = 0.2 + ! The flux Richardson number where the stratification is + ! large enough that N2 > omega2. The full expression for + ! the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_EFOLD_COEFF = 0.2 ! [nondim] default = 0.2 + ! A coefficient that is used to scale the penetration + ! depth for turbulence below the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_KD_MAX = 0.001 ! [m2 s-1] default = 0.001 + ! The maximum diapycnal diffusivity due to turbulence + ! radiated from the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_APPLY_TKE_DECAY = True ! [Boolean] default = True + ! If true, apply the same exponential decay to ML_rad as + ! is applied to the other surface sources of TKE in the + ! mixed layer code. This is only used if ML_RADIATION is true. +MSTAR = 0.3 ! [units=nondim] default = 0.3 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by + ! bottom drag drives BBL diffusion. This is only + ! used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 0.0 ! [m] default = 0.0 + ! The maximum decay scale for the BBL diffusion, or 0 + ! to allow the mixing to penetrate as far as + ! stratification and rotation permit. The default is 0. + ! This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh + ! profile of background diapycnal diffusivity with depth. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +HENYEY_N0_2OMEGA = 20.0 ! [nondim] default = 20.0 + ! The ratio of the typical Buoyancy frequency to twice + ! the Earth's rotation period, used with the Henyey + ! scaling from the mixing. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, + ! like CM2.1/CM2M. There is no physical justification + ! for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +KD_MAX = -1.0 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added + ! everywhere without any filtering or scaling. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "STLAURENT_02" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +LEE_WAVE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an lee wave driven dissipation scheme to + ! drive diapycnal mixing, along the lines of Nikurashin + ! (2010) and using the St. Laurent et al. (2002) + ! and Simmons et al. (2004) vertical profile +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower + ! bound of Kd (a floor). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +MU_ITIDES = 0.2 ! [nondim] default = 0.2 + ! A dimensionless turbulent mixing efficiency used with + ! INT_TIDE_DISSIPATION, often 0.2. +GAMMA_ITIDES = 0.3333 ! [nondim] default = 0.3333 + ! The fraction of the internal tidal energy that is + ! dissipated locally with INT_TIDE_DISSIPATION. + ! THIS NAME COULD BE BETTER. +MIN_ZBOT_ITIDES = 0.0 ! [m] default = 0.0 + ! Turn off internal tidal dissipation when the total + ! ocean depth is less than this value. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +UTIDE = 0.0 ! [m s-1] default = 0.0 + ! The constant tidal amplitude used with INT_TIDE_DISSIPATION. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tideamp.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. + ! Jackson et al find values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the + ! density and shear profiles before solving for the + ! diffusivities. Defaults to value of KD. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the + ! Richardson number in the kappa source term in the + ! Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to + ! stratification (i.e. proportional to N*tke). + ! The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. + ! proportional to |S|*tke). The values found by Jackson + ! et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the + ! kappa equation. The values found by Jackson et al. are + ! in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the + ! buoyancy and shear scales in the diffusivity equation, + ! Set this to 0 (the default) to eliminate the shear scale. + ! This is only used if USE_JACKSON_PARAM is true. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. + ! Iteration stops when changes between subsequent + ! iterations are smaller than this everywhere in a + ! column. The peak diffusivities usually converge most + ! rapidly, and have much smaller errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration + ! of the kappa equation. TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring + ! massive layers in this calculation. The default is + ! true and I can think of no good reason why it should + ! be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! [nondim] default = 13 + ! The maximum number of iterations that may be used to + ! estimate the time-averaged diffusivity. +DEBUG_KAPPA_SHEAR = False ! [Boolean] default = False + ! If true, write debugging data for the kappa-shear code. + ! Caution: this option is _very_ verbose and should only + ! be used in single-column mode! +KAPPA_SHEAR_MERGE_ML = True ! [Boolean] default = True + ! If true, combine the mixed layers together before + ! solving the kappa-shear equations. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +USE_KPP = False ! [Boolean] default = False + ! If true, turns on the [CVmix] KPP scheme of Large et al., 1984, + ! to calculate diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +APPLY_NONLOCAL_TRANSPORT = True ! [Boolean] default = True + ! If True, applies the non-local transport to heat and scalars. + ! If False, calculates the non-local transport and tendencies but + ! purely for diagnostic purposes. +RI_CRIT = 0.3 ! [nondim] default = 0.3 + ! Critical bulk Richardson number used to define depth of the + ! Oceab Boundary Layer (OBL). +VON_KARMAN = 0.4 ! [nondim] default = 0.4 + ! von Karman constant. +INTERP_TYPE = "quadratic" ! default = "quadratic" + ! Type of interpolation to use to determine the OBL depth. + ! Allowed types are: linear, quadratic, cubic. +COMPUTE_EKMAN = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the Ekman depth. +COMPUTE_MONIN_OBUKHOV = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the + ! Monin-Obukhov depth. +CS = 98.96 ! [nondim] default = 98.96 + ! Parameter for computing velocity scale function. +DEEP_OBL_OFFSET = 0.0 ! [m] default = 0.0 + ! If non-zero, the distance above the bottom to which the OBL is clipped + ! if it would otherwise reach the bottom. The smaller of this and 0.1D is used. +CORRECT_SURFACE_LAYER_AVERAGE = False ! [Boolean] default = False + ! If true, applies a correction step to the averaging of surface layer + ! properties. +FIRST_GUESS_SURFACE_LAYER_DEPTH = 0.0 ! [m] default = 0.0 + ! The first guess at the depth of the surface layer used for averaging + ! the surface layer properties. If =0, the top model level properties + ! will be used for the surface layer. If CORRECT_SURFACE_LAYER_AVERAGE=True, a + ! subsequent correction is applied. +NLT_SHAPE = "CVMIX" ! default = "CVMIX" + ! The shape of the nonlocal transport (or redistribution of surface + ! forcina. Allowed values are: + ! CVMIX - Uses the profile from CVmix + ! LINEAR - A linear profile, 1-sigma + ! PARABOLIC - A paroblic profile, (1-sigma)^2 + ! CUBIC - A cubic profile, (1-sigma)^2(1+2*sigma) + ! CUBIC_LMD - The original KPP profile +KPP_ZERO_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, sets both the diffusivity and viscosity from KPP to zero; for testing. +KPP_IS_ADDITIVE = False ! [Boolean] default = False + ! If true, adds KPP diffusivity to the existing diffusivity. If false, replaces exisiting diffusivity with KPP diffusivity wherever the latter is non-zero. +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +USE_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the diffusive convection scheme that + ! increases diapycnal diffusivities at statically unstable + ! interfaces. Relevant parameters are contained in the + ! CONVECTION% parameter block. +CONVECTION% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +KD_CONV = 1.0 ! [m2/s] default = 1.0 + ! DIffusivity used in statically unstable regions of column. +%CONVECTION + +! === module MOM_entrain_diffusive === +CORRECT_DENSITY = True ! [Boolean] default = True + ! If true, and USE_EOS is true, the layer densities are + ! restored toward their target values by the diapycnal + ! mixing, as described in Hallberg (MWR, 2000). +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_THICKNESS = 0.1 ! [m] default = 0.1 + ! The thickness over which to apply geothermal heating. +GEOTHERMAL_DRHO_DT_INPLACE = -0.01 ! [kg m-3 K-1] default = -0.01 + ! The value of drho_dT above which geothermal heating + ! simply heats water in place instead of moving it between + ! isopycnal layers. This must be negative. +GEOTHERMAL_VARNAME = "geo_heat" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === module MOM_mixed_layer === +NSTAR = 0.15 ! [nondim] default = 0.15 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +CONV_DECAY = 0.5 ! [nondim] default = 0.5 + ! CONV_DECAY relates the vertical rate of decay of the + ! convectively released TKE available for penetrating + ! entrainment to the natural Ekman length. +NSTAR2 = 0.15 ! [nondim] default = 0.15 + ! The portion of any potential energy released by + ! convective adjustment that is available to drive + ! entrainment at the base of mixed layer. By default + ! NSTAR2=NSTAR. +BULK_RI_CONVECTIVE = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which convectively released mean + ! kinetic energy is converted to turbulent kinetic + ! energy. By default BULK_RI_CONVECTIVE=BULK_RI_ML. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +ALLOWED_DETRAIN_TEMP_CHG = 0.5 ! [K] default = 0.5 + ! The amount by which temperature is allowed to exceed + ! previous values during detrainment. +ALLOWED_DETRAIN_SALT_CHG = 0.1 ! [PSU] default = 0.1 + ! The amount by which salinity is allowed to exceed + ! previous values during detrainment. +ML_DT_DS_WEIGHT = 6.0 ! [degC PSU-1] default = 6.0 + ! When forced to extrapolate T & S to match the layer + ! densities, this factor (in deg C / PSU) is combined + ! with the derivatives of density with T & S to determine + ! what direction is orthogonal to density contours. It + ! should be a typical value of (dR/dS) / (dR/dT) in + ! oceanic profiles. +BUFFER_LAYER_EXTRAP_LIMIT = -1.0 ! [nondim] default = -1.0 + ! A limit on the density range over which extrapolation + ! can occur when detraining from the buffer layers, + ! relative to the density range within the mixed and + ! buffer layers, when the detrainment is going into the + ! lightest interior layer, nondimensional, or a negative + ! value not to apply this limit. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +RESOLVE_EKMAN = False ! [Boolean] default = False + ! If true, the NKML>1 layers in the mixed layer are + ! chosen to optimally represent the impact of the Ekman + ! transport on the mixed layer TKE budget. Otherwise, + ! the sublayers are distributed uniformly through the + ! mixed layer. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*froz_runoff. +LIMIT_BUFFER_DET_DH_SFC = 0.5 ! [nondim] default = 0.5 + ! The fractional limit in the change between grid points + ! of the surface region (mixed & buffer layer) thickness. +LIMIT_BUFFER_DET_DH_BATHY = 0.2 ! [nondim] default = 0.2 + ! The fraction of the total depth by which the thickness + ! of the surface region (mixed & buffer layer) is allowed + ! to change between grid points. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = False ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. +REG_SFC_DEFICIT_TOLERANCE = 0.5 ! [nondim] default = 0.5 + ! The value of the relative thickness deficit at which + ! to start modifying the layer structure when + ! REGULARIZE_SURFACE_LAYERS is true. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll + ! concentrations are translated into opacities. Currently + ! valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation + ! that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is + ! 10 m-1 - a value for muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PLM" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between + ! along isopycnal mxiing of tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use 1 iteration. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +RESTART_CONTROL = 1 ! default = 1 + ! An integer whose bits encode which restart files are + ! written. Add 2 (bit 1) for a time-stamped file, and odd + ! (bit 0) for a non-time-stamped file. A restart file + ! will be saved at the end of the run segment for any + ! non-negative value. +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit for ENERGYSAVEDAYS. +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = True ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = True ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +ICE_SALT_CONCENTRATION = 0.005 ! [kg/kg] default = 0.005 + ! The assumed sea-ice salinity needed to reverse engineer the + ! melt flux (or ice-ocean fresh-water flux). +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +FLUXCONST = 0.5 ! [m day-1] + ! The constant that relates the restoring surface fluxes + ! to the relative surface anomalies (akin to a piston + ! velocity). Note the non-MKS units. +SALT_RESTORE_FILE = "salt_restore.nc" ! default = "salt_restore.nc" + ! A file in which to find the surface salinity to use for restoring. +SALT_RESTORE_VARIABLE = "salt" ! default = "salt" + ! The name of the surface salinity variable to read from SALT_RESTORE_FILE for restoring salinity. +SRESTORE_AS_SFLUX = False ! [Boolean] default = False + ! If true, the restoring of salinity is applied as a salt + ! flux instead of as a freshwater flux. +MAX_DELTA_SRESTORE = 999.0 ! [PSU or g kg-1] default = 999.0 + ! The maximum salinity difference used in restoring terms. +MASK_SRESTORE_UNDER_ICE = False ! [Boolean] default = False + ! If true, use an ice mask defined by frazil criteria to + ! determine where to apply salinity restoring. +MASK_SRESTORE_MARGINAL_SEAS = False ! [Boolean] default = False + ! If true, mask sss restoring in marginal seas. +BASIN_FILE = "basin.nc" ! default = "basin.nc" + ! A file in which to find the basin masks, in variable 'basin'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_CONST = 0.02 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. +USE_RIGID_SEA_ICE = False ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout + ! when the energy files are written. +MAXTRUNC = 1000000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the + ! model will be stopped if there is more energy than + ! this. If zero or negative, this is set to 10*MAXVEL^2. +ENERGYFILE = "timestats" ! default = "timestats" + ! The file to use to write the energies and globally + ! summed diagnostics. +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or + ! create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the + ! entries in the depth-list file. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in MOM_parameter_doc.short . diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.short b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.short new file mode 100644 index 0000000000..73136c1a72 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/MOM_parameter_doc.short @@ -0,0 +1,647 @@ +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = True ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +USE_LEGACY_SPLIT = True ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +THICKNESS_CONFIG = "file" ! + ! A string that determines how the initial layer + ! thicknesses are specified for a new run: + ! file - read interface heights from the file specified + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! benchmark - use the benchmark test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +THICKNESS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The name of the thickness file. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +TS_CONFIG = "file" ! + ! A string that determines how the initial tempertures + ! and salinities are specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +TS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The initial condition file for temperature. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +FLUX_BT_COUPLING = True ! [Boolean] default = False + ! If true, use mass fluxes to ensure consistency between + ! the baroclinic and barotropic modes. This is only used + ! if SPLIT is true. +READJUST_BT_TRANS = True ! [Boolean] default = False + ! If true, make a barotropic adjustment to the layer + ! velocities after the thermodynamic part of the step + ! to ensure that the interaction between the thermodynamics + ! and the continuity solver do not change the barotropic + ! transport. This is only used if FLUX_BT_COUPLING and + ! SPLIT are true. +MONOTONIC_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 10 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 10 ! + ! The barotropic y-halo size that is actually used. +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +DT_BT_FILTER = 0.0 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = 60.0 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = True ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = True ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +FLUXCONST = 0.5 ! [m day-1] + ! The constant that relates the restoring surface fluxes + ! to the relative surface anomalies (akin to a piston + ! velocity). Note the non-MKS units. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 1000000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS.available_diags b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS.available_diags new file mode 100644 index 0000000000..37ec582159 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS.available_diags @@ -0,0 +1,267 @@ +"ice_model", "EXT" [Used] + ! long_name: ice modeled + ! units: 0 or 1 +"ice_model", "MI" [Used] + ! long_name: ice mass + ! units: kg/m^2 +"ice_model", "MIB" [Unused] + ! long_name: ice + bergs mass + ! units: kg/m^2 +"ice_model", "CN" [Used] + ! long_name: ice concentration + ! units: 0-1 +"ice_model", "HS" [Used] + ! long_name: snow thickness + ! units: m-snow +"ice_model", "TSN" [Unused] + ! long_name: snow layer temperature + ! units: C +"ice_model", "HI" [Used] + ! long_name: ice thickness + ! units: m-ice +"ice_model", "HIO" [Unused] + ! long_name: ice thickness + ! units: m-ice +"ice_model", "T1" [Used] + ! long_name: top ice layer temperature + ! units: C +"ice_model", "T2" [Used] + ! long_name: second ice layer temperature + ! units: C +"ice_model", "T3" [Unused] + ! long_name: third ice layer temperature + ! units: C +"ice_model", "T4" [Unused] + ! long_name: bottom ice layer temperature + ! units: C +"ice_model", "TS" [Used] + ! long_name: surface temperature + ! units: C +"ice_model", "SH" [Used] + ! long_name: sensible heat flux + ! units: W/m^2 +"ice_model", "LH" [Used] + ! long_name: latent heat flux + ! units: W/m^2 +"ice_model", "SW" [Used] + ! long_name: short wave heat flux + ! units: W/m^2 +"ice_model", "LW" [Used] + ! long_name: long wave heat flux over ice + ! units: W/m^2 +"ice_model", "SNOWFL" [Used] + ! long_name: rate of snow fall + ! units: kg/(m^2*s) +"ice_model", "RAIN" [Used] + ! long_name: rate of rain fall + ! units: kg/(m^2*s) +"ice_model", "RUNOFF" [Used] + ! long_name: liquid runoff + ! units: kg/(m^2*s) +"ice_model", "CALVING" [Used] + ! long_name: frozen runoff + ! units: kg/(m^2*s) +"ice_model", "RUNOFF_HFLX" [Unused] + ! long_name: liquid runoff sensible heat flux + ! units: W/m^2 +"ice_model", "CALVING_HFLX" [Unused] + ! long_name: frozen runoff sensible heat flux + ! units: W/m^2 +"ice_model", "EVAP" [Unused] + ! long_name: evaporation + ! units: kg/(m^2*s) +"ice_model", "SALTF" [Used] + ! long_name: ice to ocean salt flux + ! units: kg/(m^2*s) +"ice_model", "SN2IC" [Used] + ! long_name: rate of snow to ice conversion + ! units: kg/(m^2*s) +"ice_model", "TMELT" [Used] + ! long_name: upper surface melting energy flux + ! units: W/m^2 +"ice_model", "BMELT" [Used] + ! long_name: bottom surface melting energy flux + ! units: W/m^2 +"ice_model", "BHEAT" [Used] + ! long_name: ocean to ice heat flux + ! units: W/m^2 +"ice_model", "E2MELT" [Unused] + ! long_name: heat needed to melt ice + ! units: J/m^2 +"ice_model", "FRAZIL" [Used] + ! long_name: energy flux of frazil formation + ! units: W/m^2 +"ice_model", "ALB" [Used] + ! long_name: surface albedo + ! units: 0-1 +"ice_model", "coszen" [Unused] + ! long_name: cosine of zenith + ! units: -1:1 +"ice_model", "sw_abs_snow" [Unused] + ! long_name: SW frac. abs. in snow + ! units: 0:1 +"ice_model", "sw_abs_ice1" [Unused] + ! long_name: SW frac. abs. in ice1 + ! units: 0:1 +"ice_model", "sw_abs_ice2" [Unused] + ! long_name: SW frac. abs. in ice2 + ! units: 0:1 +"ice_model", "sw_abs_ice3" [Unused] + ! long_name: SW frac. abs. in ice3 + ! units: 0:1 +"ice_model", "sw_abs_ice4" [Unused] + ! long_name: SW frac. abs. in ice4 + ! units: 0:1 +"ice_model", "sw_pen" [Unused] + ! long_name: SW frac. pen. surf. + ! units: 0:1 +"ice_model", "sw_trn" [Unused] + ! long_name: SW frac. trans. to ice bot. + ! units: 0:1 +"ice_model", "alb_vis_dir" [Unused] + ! long_name: ice surface albedo vis_dir + ! units: 0-1 +"ice_model", "alb_vis_dif" [Unused] + ! long_name: ice surface albedo vis_dif + ! units: 0-1 +"ice_model", "alb_nir_dir" [Unused] + ! long_name: ice surface albedo nir_dir + ! units: 0-1 +"ice_model", "alb_nir_dif" [Unused] + ! long_name: ice surface albedo nir_dif + ! units: 0-1 +"ice_model", "XPRT" [Used] + ! long_name: frozen water transport convergence + ! units: kg/(m^2*yr) +"ice_model", "LSRC" [Used] + ! long_name: frozen water local source + ! units: kg/(m^2*yr) +"ice_model", "LSNK" [Used] + ! long_name: frozen water local sink + ! units: kg/(m^2*yr) +"ice_model", "BSNK" [Used] + ! long_name: frozen water local bottom sink + ! units: kg/(m^2*yr) +"ice_model", "QFLX_RESTORE_ICE" [Unused] + ! long_name: Ice Restoring heat flux + ! units: W/m^2 +"ice_model", "QFLX_LIMIT_ICE" [Unused] + ! long_name: Ice Limit heat flux + ! units: W/m^2 +"ice_model", "STRAIN_ANGLE" [Unused] + ! long_name: strain angle + ! units: none +"ice_model", "FA_X" [Used] + ! long_name: air stress on ice - x component + ! units: Pa +"ice_model", "FA_Y" [Used] + ! long_name: air stress on ice - y component + ! units: Pa +"ice_model", "UO" [Used] + ! long_name: surface current - x component + ! units: m/s +"ice_model", "VO" [Used] + ! long_name: surface current - y component + ! units: m/s +"ice_model", "SW_VIS" [Unused] + ! long_name: visible short wave heat flux + ! units: W/m^2 +"ice_model", "SW_DIR" [Unused] + ! long_name: direct short wave heat flux + ! units: W/m^2 +"ice_model", "SW_DIF" [Unused] + ! long_name: diffuse short wave heat flux + ! units: W/m^2 +"ice_model", "SW_VIS_DIR" [Unused] + ! long_name: visible direct short wave heat flux + ! units: W/m^2 +"ice_model", "SW_VIS_DIF" [Unused] + ! long_name: visible diffuse short wave heat flux + ! units: W/m^2 +"ice_model", "SW_NIR_DIR" [Unused] + ! long_name: near IR direct short wave heat flux + ! units: W/m^2 +"ice_model", "SW_NIR_DIF" [Unused] + ! long_name: near IR diffuse short wave heat flux + ! units: W/m^2 +"ice_model", "SWDN" [Unused] + ! long_name: downward shortwave flux + ! units: W/m^2 +"ice_model", "LWDN" [Unused] + ! long_name: downward longwave flux + ! units: W/m^2 +"ice_model", "TA" [Unused] + ! long_name: surface air temperature + ! units: C +"ice_model", "SLP" [Unused] + ! long_name: sea level pressure + ! units: Pa +"ice_model", "SST" [Used] + ! long_name: sea surface temperature + ! units: deg-C +"ice_model", "SSS" [Used] + ! long_name: sea surface salinity + ! units: psu +"ice_model", "SSH" [Used] + ! long_name: sea surface height + ! units: m +"ice_model", "OBI" [Unused] + ! long_name: ice observed + ! units: 0 or 1 +"ice_model", "SIGI" [Unused] + ! long_name: first stress invariant + ! units: none +"ice_model", "SIGII" [Unused] + ! long_name: second stress invariant + ! units: none +"ice_model", "STRENGTH" [Unused] + ! long_name: ice strength + ! units: Pa*m +"ice_model", "FI_X" [Used] + ! long_name: ice internal stress - x component + ! units: Pa +"ice_model", "FI_Y" [Used] + ! long_name: ice internal stress - y component + ! units: Pa +"ice_model", "FC_X" [Unused] + ! long_name: coriolis force - x component + ! units: Pa +"ice_model", "FC_Y" [Unused] + ! long_name: coriolis force - y component + ! units: Pa +"ice_model", "FW_X" [Unused] + ! long_name: water stress on ice - x component + ! units: Pa +"ice_model", "FW_Y" [Unused] + ! long_name: water stress on ice - y component + ! units: Pa +"ice_model", "UI" [Used] + ! long_name: ice velocity - x component + ! units: m/s +"ice_model", "VI" [Used] + ! long_name: ice velocity - y component + ! units: m/s +"ice_model", "U_STAR" [Unused] + ! long_name: channel transport velocity - x component + ! units: m/s +"ice_model", "V_STAR" [Unused] + ! long_name: channel transport velocity - y component + ! units: m/s +"ice_model", "U_CHAN_OCN" [Unused] + ! long_name: ocean component of channel transport - x + ! units: m/s +"ice_model", "V_CHAN_OCN" [Unused] + ! long_name: ocean component of channel transport - y + ! units: m/s +"ice_model", "U_CHAN_VISC" [Unused] + ! long_name: viscous component of channel transport - x + ! units: m/s +"ice_model", "V_CHAN_VISC" [Unused] + ! long_name: viscous component of channel transport - y + ! units: m/s +"ice_model", "IX_TRANS" [Used] + ! long_name: x-direction ice transport + ! units: kg/s +"ice_model", "IY_TRANS" [Used] + ! long_name: y-direction ice transport + ! units: kg/s diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_input b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_input new file mode 100644 index 0000000000..fc1014ffd8 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_input @@ -0,0 +1,99 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This file determines the adjustable run-time parameters for the * +!* Sea Ice Simulator (SIS), versions 2 and later. Where * +!* appropriate, MKS units are used. * +!********+*********+*********+*********+*********+*********+*********+* +! >>> Global coupled ice-ocean SIS2 5 layer ice, 63 layer ocean test case. + +DO_ICEBERGS = True ! If true, use the icebergs module. + +! Specify properties of the physical domain. +OMEGA = 7.2921e-5 ! The rotation rate of the earth in s-1. +ROTATION = "2omegasinlat" ! Rotation approximation (2omegasinlat, + ! betaplane or USER). +G_EARTH = 9.80 ! G_EARTH is the Earth's gravitational + ! acceleration, in m s-2. +GRID_CONFIG = "mosaic" ! Method for defining horizontal grid + ! = file|cartesian|spherical|mercator + ! file - read grid from file "GRID_FILE" + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +GRID_FILE = "ocean_hgrid.nc" + ! Name of file to read horizontal grid data +INPUTDIR = "INPUT" + ! INPUTDIR is a directory in which NetCDF + ! input files might be found. + +CGRID_ICE_DYNAMICS = True ! If true, use a C-grid discretization of the + ! sea-ice dynamics; if false use a B-grid + ! discretization. + +! Specify the numerical domain. +LAYOUT = 0,1 ! LAYOUT specifies the grid layout for the + ! sea-ice, with 0 indicating a PE count in one + ! or both directions that is automatically + ! generated. +NIGLOBAL = 360 ! NIGLOBAL and NJGLOBAL are the number of thickness +NJGLOBAL = 210 ! grid points in the zonal and meridional + ! directions of the physical domain. +NK = 63 ! The number of layers. +NCAT_ICE = 5 ! The number of sea ice thickness categories. +NIHALO = 2 ! NIHALO and NJHALO are the number of halo +NJHALO = 2 ! points on each side in the x- and y-directions. + ! If static memory allocation is used, these + ! must match the values of NIHALO_ and NJHALO_ + ! in MOM_memory.h. +NIPROC_IO = 1 ! The number of processors used for I/O in the + ! x-direction, or 0 to equal NIPROC. NIPROC_IO + ! must be a factor of NIPROC. +NJPROC_IO = 1 ! The number of processors used for I/O in the + ! y-direction, or 0 to equal NJPROC. NJPROC_IO + ! must be a factor of NJPROC. + +REENTRANT_X = True ! If defined, the domain is zonally reentrant. +REENTRANT_Y = False ! If defined, the domain is meridionally + ! reentrant. +TRIPOLAR_N = True ! Use tripolar connectivity at the northern + ! edge of the domain. With TRIPOLAR_N, NIGLOBAL + ! must be even. + +DEBUG = False ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! If true, calculate all diagnostics that are + ! useful for debugging truncations. +SEND_LOG_TO_STDOUT = False ! If true write out log information to stdout. + +! Specify the time integration scheme for the ice dynamics. +NSTEPS_DYN = 72 ! The number of iterations in the EVP dynamics + ! for each slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! The damping timescale associated with the + ! elastic terms in the sea-ice dynamics. + +! Specify the ice properties. +ICE_STRENGTH_PSTAR = 2.75e4 ! ICE_STRENGTH_PSTAR is a constant in the + ! expression for the ice strength, P* in + ! Hunke & Dukowics '97, in Pa. +RHO_OCEAN = 1030.0 ! RHO_OCEAN is used in the Boussinesq + ! approximation to calculations of pressure and + ! pressure gradients, in units of kg m-3. +RHO_ICE = 905.0 ! RHO_ICE is the nominal density of sea ice + ! used in SIS, in units of kg m-3. +RHO_SNOW = 330.0 ! RHO_SNOW is the nominal density of snow + ! used in SIS, in units of kg m-3. +C_P_ICE = 2100.0 ! C_P_ICE is the heat capacity of fresh ice + ! in J kg-1 K-1, approximated as a constant. +C_P = 3925.0 ! C_P is the heat capacity of sea water in + ! J kg-1 K-1, approximated as a constant. +SNOW_ALBEDO = 0.88 ! The albedo of dry snow atop sea ice, ND. +ICE_ALBEDO = 0.68 ! The albedo of dry bare sea ice, ND. +ICE_BULK_SALINITY = 0.005 ! The fixed bulk salinity of sea ice, in kg/kg. + +! Specify the properties of the surface forcing. +WIND_STAGGER = "B" ! "A", "B", or "C" to indicate the + ! staggering of the wind stresses between the + ! sea ice and ocean. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_override b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_override new file mode 100644 index 0000000000..8244328586 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_override @@ -0,0 +1 @@ +# Blank file in which we can put "overrides" for parameters diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.all b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.all new file mode 100644 index 0000000000..8e192ebd96 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.all @@ -0,0 +1,251 @@ +SPECIFIED_ICE = False ! [Boolean] default = False + ! If true, the ice is specified and there is no dynamics. +CGRID_ICE_DYNAMICS = True ! [Boolean] default = False + ! If true, use a C-grid discretization of the sea-ice + ! dynamics; if false use a B-grid discretization. +USE_SLAB_ICE = False ! [Boolean] default = False + ! If true, use the very old slab-style ice. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RHO_OCEAN = 1030.0 ! [kg m-3] default = 1030.0 + ! The nominal density of sea water as used by SIS. +RHO_ICE = 905.0 ! [kg m-3] default = 905.0 + ! The nominal density of sea ice as used by SIS. +RHO_SNOW = 330.0 ! [kg m-3] default = 330.0 + ! The nominal density of snow as used by SIS. +MOMENTUM_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default momentum roughness length scale for the ocean. +HEAT_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default roughness length scale for the turbulent + ! transfer of heat into the ocean. +ICE_KMELT = 240.0 ! [W m-2 K-1] default = 240.0 + ! A constant giving the proportionality of the ocean/ice + ! base heat flux to the tempature difference, given by + ! the product of the heat capacity per unit volume of sea + ! water times a molecular diffusive piston velocity. +SNOW_CONDUCT = 0.31 ! [W m-1 K-1] default = 0.31 + ! The conductivity of heat in snow. +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_SW_PEN_FRAC = 0.3 ! [Nondimensional] default = 0.3 + ! The fraction of the unreflected shortwave radiation that + ! penetrates into the ice. +ICE_OPTICAL_DEPTH = 0.67 ! [m] default = 0.67 + ! The optical depth of shortwave radiation in sea ice. +ALBEDO_T_MELT_RANGE = 1.0 ! [degC] default = 1.0 + ! The temperature range below freezing over which the + ! albedos are changed by partial melting. +ICE_CONSERVATION_CHECK = True ! [Boolean] default = True + ! If true, do additional calculations to check for + ! internal conservation of heat, salt, and water mass in + ! the sea ice model. This does not change answers, but + ! can increase model run time. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +ICE_SEES_ATMOS_WINDS = True ! [Boolean] default = True + ! If true, the sea ice is being given wind stresses with + ! the atmospheric sign convention, and need to have their + ! sign changed. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +DO_ICE_RESTORE = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_ICE_LIMIT = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_SLP_TO_OCEAN = False ! [Boolean] default = False + ! If true, apply the atmospheric sea level pressure to + ! the ocean. +MIN_H_FOR_TEMP_CALC = 0.0 ! [m] default = 0.0 + ! The minimum ice thickness at which to do temperature + ! calculations. +VERBOSE = False ! [Boolean] default = False + ! If true, write out verbose diagnostics. +DO_ICEBERGS = True ! [Boolean] default = False + ! If true, call the iceberg module. +ADD_DIURNAL_SW = False ! [Boolean] default = False + ! If true, add a synthetic diurnal cycle to the shortwave + ! radiation. +DO_SUN_ANGLE_FOR_ALB = False ! [Boolean] default = False + ! If true, find the sun angle for calculating the ocean + ! albedo within the sea ice model. +DO_DELTA_EDDINGTON_SW = True ! [Boolean] default = True + ! If true, a delta-Eddington radiative transfer calculation + ! for the shortwave radiation within the sea-ice. +ICE_DELTA_EDD_R_ICE = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of sea ice with the delta-Eddington radiative + ! transfer calculation. +ICE_DELTA_EDD_R_SNOW = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of snow on sea ice with the delta-Eddington + ! radiative transfer calculation. +ICE_DELTA_EDD_R_POND = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of meltwater ponds on sea ice with the delta-Eddington + ! radiative transfer calculation. +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in SIS2_memory.h (if defined) or 2. +NJHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in SIS2_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +LAYOUT = 0, 1 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 60 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 1 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 60, 1 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so + ! that corresponding points on different processors have + ! the same index. This does not work with static memory. +NCAT_ICE = 5 ! [nondim] default = 5 + ! The number of sea ice thickness categories. +NK_ICE = 4 ! [nondim] default = 4 + ! The number of layers within the sea ice. +NK_SNOW = 1 ! [nondim] default = 1 + ! The number of layers within the snow atop the sea ice. +SET_GRID_LIKE_SIS1 = False ! [Boolean] default = False + ! If true, use SIS1 code to set the grid values. Otherwise + ! use code derived from MOM6. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +AVAILABLE_DIAGS_FILE = "SIS.available_diags" ! default = "SIS.available_diags" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! [s] default = 0.0 + ! The damping timescale associated with the elastic terms + ! in the sea-ice dynamics equations. +WEAK_LOW_SHEAR_ICE = False ! [Boolean] default = False + ! If true, the divergent stresses go toward 0 in the C-grid + ! dynamics when the shear magnitudes are very weak. + ! Otherwise they go to -P_ice. This setting is temporary. +ICE_YEILD_ELLIPTICITY = 2.0 ! [Nondim] default = 2.0 + ! The ellipticity coefficient for the plastic yeild curve + ! in the sea-ice rheology. For an infinite ellipticity + ! (i.e., a cavitating fluid rheology), use 0. +ICE_STRENGTH_PSTAR = 2.75E+04 ! [Pa] default = 2.75E+04 + ! A constant in the expression for the ice strength, + ! P* in Hunke & Dukowicz 1997. +ICE_STRENGTH_CSTAR = 20.0 ! [nondim] default = 20.0 + ! A constant in the exponent of the expression for the + ! ice strength, c* in Hunke & Dukowicz 1997. +ICE_CDRAG_WATER = 0.00324 ! [nondim] default = 0.00324 + ! The drag coefficient between the sea ice and water. +ICE_DEL_SH_MIN_SCALE = 2.0 ! [nondim] default = 2.0 + ! A scaling factor for the lower bound on the shear rates + ! used in the denominator of the stress calculation. This + ! probably needs to be greater than 1. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points. +NSTEPS_ADV = 1 ! default = 1 + ! The number of advective iterations for each slow time + ! step. +ICE_CHANNEL_VISCOSITY = 0.0 ! [m2 s-1] default = 0.0 + ! A viscosity used in one-cell wide channels to + ! parameterize transport, especially with B-grid sea ice + ! coupled to a C-grid ocean model. +ICE_CHANNEL_SMAG_COEF = 0.15 ! [Nondim] default = 0.15 + ! A Smagorinsky coefficient for viscosity in channels. +ICE_CHANNEL_CFL_LIMIT = 0.25 ! [Nondim] default = 0.25 + ! The CFL limit that is applied to the parameterized + ! viscous transport in single-point channels. +SIS1_ICE_TRANSPORT = True ! [Boolean] default = True + ! If true, use SIS1 code to solve the ice continuity + ! equation and transport tracers. +CHECK_ICE_TRANSPORT_CONSERVATION = False ! [Boolean] default = False + ! If true, use add multiple diagnostics of ice and snow + ! mass conservation in the sea-ice transport code. This + ! is expensive and should be used sparingly. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in SIS_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in SIS_parameter_doc.short . diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.short b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.short new file mode 100644 index 0000000000..2637a8e69a --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/SIS_parameter_doc.short @@ -0,0 +1,75 @@ +CGRID_ICE_DYNAMICS = True ! [Boolean] default = False + ! If true, use a C-grid discretization of the sea-ice + ! dynamics; if false use a B-grid discretization. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +DO_ICEBERGS = True ! [Boolean] default = False + ! If true, call the iceberg module. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +LAYOUT = 0, 1 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 60 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 1 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 60, 1 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! [s] default = 0.0 + ! The damping timescale associated with the elastic terms + ! in the sea-ice dynamics equations. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/data_table b/examples/ocean_SIS2/SIS2_bergs_cgrid/data_table new file mode 100644 index 0000000000..2fbf816d8f --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/data_table @@ -0,0 +1,49 @@ +"ATM", "cfc_11_flux_pcair_atm","CFC_11","INPUT/cfc.bc.nc",.false., 1.0e-12 +"ATM", "cfc_12_flux_pcair_atm","CFC_12","INPUT/cfc.bc.nc",.false., 1.0e-12 +"ATM" , "p_surf" , "SLP" , "./INPUT/slp.clim.nc" , .false. , 1.0 +"ATM" , "p_bot" , "SLP" , "./INPUT/slp.clim.nc" , .false. , 1.0 +"ATM" , "t_bot" , "T_10_MOD" , "./INPUT/t_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "sphum_bot" , "Q_10_MOD" , "./INPUT/q_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "u_bot" , "U_10_MOD" , "./INPUT/u_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "v_bot" , "V_10_MOD" , "./INPUT/v_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "z_bot" , "" , "" , .false. , 10.0 +"ATM" , "gust" , "" , "" , .false. , 0.0 +"ICE" , "lw_flux_dn" , "LWDN_MOD" , "./INPUT/ncar_rad_clim.nc" , .false. , 1.0 +"ICE" , "sw_flux_vis_dir_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.285 +"ICE" , "sw_flux_vis_dif_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.285 +"ICE" , "sw_flux_nir_dir_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.215 +"ICE" , "sw_flux_nir_dif_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.215 +"ICE" , "lprec" , "RAIN" , "./INPUT/ncar_precip_clim.nc" , .false. , 0.9933 +"ICE" , "fprec" , "SNOW" , "./INPUT/ncar_precip_clim.nc" , .false. , 0.9933 +"ICE" , "runoff" , "runoff" , "./INPUT/runoff.nc" , .true. , 1.0 +"ICE" , "calving" , "CALVING" , "./INPUT/example_calving.nc" , .true. , 1.0 +"ICE" , "dhdt" , "" , "" , .true. , 80.0 +"ICE" , "dedt" , "" , "" , .true. , 2.0e-6 +"ICE" , "drdt" , "" , "" , .true. , 10.0 +"ICE", "sic_obs" , "SIC" ,"./INPUT/sst_ice_clim.nc" , .false. , 0.00 +"ICE", "sit_obs" , "SIT" ,"./INPUT/sst_ice_clim.nc" , .false. , 0.00 +"ICE", "sst_obs" , "SST" ,"./INPUT/sst_ice_clim.nc" , .false. , 1.0 +"LND" , "t_surf" , "" , "" , .true. , 273.0 +"LND" , "t_ca" , "" , "" , .true. , 273.0 +"LND" , "q_ca" , "" , "" , .true. , 0.0 +"LND" , "rough_mom" , "" , "" , .true. , 0.01 +"LND" , "rough_heat" , "" , "" , .true. , 0.1 +"LND" , "albedo" , "" , "" , .true. , 0.1 +"LND" , "t_ca" , "" , "" , .true. , 273.0 +"LND" , "t_surf" , "" , "" , .true. , 273.0 +"LND" , "sphum_surf" , "" , "" , .true. , 0.0 +"LND" , "sphum_ca" , "" , "" , .true. , 0.0 +"LND" , "t_flux" , "" , "" , .true. , 0.0 +"LND" , "sphum_flux" , "" , "" , .true. , 0.0 +"LND" , "lw_flux" , "" , "" , .true. , 0.0 +"LND" , "sw_flux" , "" , "" , .true. , 0.0 +"LND" , "lprec" , "" , "" , .true. , 0.0 +"LND" , "fprec" , "" , "" , .true. , 0.0 +"LND" , "dhdt" , "" , "" , .true. , 5.0 +"LND" , "dedt" , "" , "" , .true. , 2e-6 +"LND" , "dedq" , "" , "" , .true. , 0.0 +"LND" , "drdt" , "" , "" , .true. , 5.0 +"LND" , "drag_q" , "" , "" , .true. , 0.0 +"LND" , "p_surf" , "" , "" , .true. , 1.e5 + + diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/diag_table b/examples/ocean_SIS2/SIS2_bergs_cgrid/diag_table new file mode 100644 index 0000000000..ac1d8d6eb2 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/diag_table @@ -0,0 +1,360 @@ +GOLD_SIS +1 1 1 0 0 0 +#output files +# "ice_day", 1, "months", 1, "days", "time", +# "ocean_day", 1, "months", 1, "days", "time", +# "ocean_day_z", 1, "months", 1, "days", "time", +# "flux_day", 1, "months", 1, "days", "time" + +"ice_day", 1, "days", 1, "days", "time", +"icebergs_day", 1, "days", 1, "days", "time", +"ocean_day", 1, "days", 1, "days", "time", +"ocean_sfc", 1, "days", 1, "days", "time", +"ocean_day_z", 1, "days", 1, "days", "time", +# "flux_day", 5, "days", 1, "days", "time" +"ocean_static",-1, "months", 1, "days", "time", +#"ocean_scalar", 1, "months", 1, "days", "time" +# +#output variables +# +# OCEAN DIAGNOSTICS: +#=================== +#=================== +# +# Surface Ocean fields: +#========================= +"ocean_model","SSH","SSH","ocean_sfc","all",.false.,"none",2 +"ocean_model","SSU","SSU","ocean_sfc","all",.false.,"none",2 +"ocean_model","SSV","SSV","ocean_sfc","all",.false.,"none",2 +"ocean_model","SST","SST","ocean_sfc","all",.false.,"none",2 +"ocean_model","SSS","SSS","ocean_sfc","all",.false.,"none",2 +"ocean_model","speed","speed","ocean_sfc","all",.false.,"none",2 + +# Prognostic Ocean fields: +#========================= +"ocean_model","u","u","ocean_day","all",.true.,"none",2 +"ocean_model","v","v","ocean_day","all",.true.,"none",2 +"ocean_model","h","h","ocean_day","all",.true.,"none",1 +"ocean_model","e","e","ocean_day","all",.true.,"none",2 +"ocean_model","temp","temp","ocean_day","all",.true.,"none",2 +"ocean_model","salt","salt","ocean_day","all",.true.,"none",2 +#"ocean_model","e","e","ocean_daily","all",.false.,"none",2 +# +# Auxilary Tracers: +#================== +#"ocean_model","vintage","vintage","ocean_day","all",.true.,"none",2 +#"ocean_model","age","age","ocean_day","all",.true.,"none",2 +# +# Z-space fields: +#================== +"ocean_model","u_z","u","ocean_day_z","all",.true.,"none",2 +"ocean_model","v_z","v","ocean_day_z","all",.true.,"none",2 +"ocean_model","temp_z","temp","ocean_day_z","all",.true.,"none",2 +"ocean_model","salt_z","salt","ocean_day_z","all",.true.,"none",2 +#"ocean_model","vintage_z","vintage","ocean_day_z","all",.true.,"none",2 +"ocean_model","age_z","age","ocean_day_z","all",.true.,"none",2 + +# Continuity Equation Terms: +#=========================== +#"ocean_model","wd","wd","ocean_day","all",.true.,"none",2 +"ocean_model","uh","uh","ocean_day","all",.true.,"none",2 +"ocean_model","vh","vh","ocean_day","all",.true.,"none",2 +#"ocean_model","h_rho","h_rho","ocean_day","all",.true.,"none",2 +#"ocean_model","uh_rho","uh_rho","ocean_day","all",.true.,"none",2 +#"ocean_model","vh_rho","vh_rho","ocean_day","all",.true.,"none",2 +#"ocean_model","uhGM_rho","uhGM_rho","ocean_day","all",.true.,"none",2 +#"ocean_model","vhGM_rho","vhGM_rho","ocean_day","all",.true.,"none",2 +"ocean_model","GMwork","GMwork","ocean_day","all",.true.,"none",2 +# +# Mixed Layer TKE Budget Terms: +#=========================== +#"ocean_model","TKE_wind","TKE_wind","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_RiBulk","TKE_RiBulk","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_conv","TKE_conv","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_pen_SW","TKE_pen_SW","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_mixing","TKE_mixing","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_mech_decay","TKE_mech_decay","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_conv_decay","TKE_conv_decay","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_conv_s2","TKE_conv_s2","ocean_day","all",.true.,"none",2 +#"ocean_model","TKE_tidal","TKE_tidal","ocean_day","all",.true.,"none",2 +#"ocean_model","h_ML","h_ML","ocean_day","all",.true.,"none",2 +#"ocean_model","Kd_effective","Kd_effective","ocean_day","all",.true.,"none",2 +# +# Tracer Fluxes: +#================== +#"ocean_model","T_adx", "T_adx", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","T_ady", "T_ady", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","T_diffx","T_diffx","ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","T_diffy","T_diffy","ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_adx", "S_adx", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_ady", "S_ady", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_diffx","S_diffx","ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_diffy","S_diffy","ave_prog_%4yr_%3dy","all",.true.,"none",2 + + +# Momentum Balance Terms: +#======================= +#"ocean_model","dudt","dudt","ocean_day","all",.true.,"none",2 +#"ocean_model","dvdt","dvdt","ocean_day","all",.true.,"none",2 +#"ocean_model","CAu","CAu","ocean_day","all",.true.,"none",2 +#"ocean_model","CAv","CAv","ocean_day","all",.true.,"none",2 +#"ocean_model","PFu","PFu","ocean_day","all",.true.,"none",2 +#"ocean_model","PFv","PFv","ocean_day","all",.true.,"none",2 +#"ocean_model","du_dt_visc","du_dt_visc","ocean_day","all",.true.,"none",2 +#"ocean_model","dv_dt_visc","dv_dt_visc","ocean_day","all",.true.,"none",2 +#"ocean_model","diffu","diffu","ocean_day","all",.true.,"none",2 +#"ocean_model","diffv","diffv","ocean_day","all",.true.,"none",2 +#"ocean_model","dudt_dia","dudt_dia","ocean_day","all",.true.,"none",2 +#"ocean_model","dvdt_dia","dvdt_dia","ocean_day","all",.true.,"none",2 +# Subterms that should not be added to a closed budget. +#"ocean_model","gKEu","gKEu","ocean_day","all",.true.,"none",2 +#"ocean_model","gKEv","gKEv","ocean_day","all",.true.,"none",2 +#"ocean_model","rvxu","rvxu","ocean_day","all",.true.,"none",2 +#"ocean_model","rvxv","rvxv","ocean_day","all",.true.,"none",2 +#"ocean_model","PFu_bc","PFu_bc","ocean_day","all",.true.,"none",2 +#"ocean_model","PFv_bc","PFv_bc","ocean_day","all",.true.,"none",2 + +# Barotropic Momentum Balance Terms: +# (only available with split time stepping.) +#=========================================== +#"ocean_model","PFuBT","PFuBT","ocean_day","all",.true.,"none",2 +#"ocean_model","PFvBT","PFvBT","ocean_day","all",.true.,"none",2 +#"ocean_model","CoruBT","CoruBT","ocean_day","all",.true.,"none",2 +#"ocean_model","CorvBT","CorvBT","ocean_day","all",.true.,"none",2 +#"ocean_model","ubtforce","ubtforce","ocean_day","all",.true.,"none",2 +#"ocean_model","vbtforce","vbtforce","ocean_day","all",.true.,"none",2 +#"ocean_model","u_accel_bt","u_accel_bt","ocean_day","all",.true.,"none",2 +#"ocean_model","v_accel_bt","v_accel_bt","ocean_day","all",.true.,"none",2 +# +# Viscosities and diffusivities: +#=============================== +#"ocean_model","Kd","Kd","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Ahh","Ahh","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Ahq","Ahq","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Khh","Khh","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Khq","Khq","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","bbl_thick_u","bbl_thick_u","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","kv_bbl_u","kv_bbl_u","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","bbl_thick_v","bbl_thick_v","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","kv_bbl_v","kv_bbl_v","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","av_visc","av_visc","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","au_visc","au_visc","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","FrictWork","FrictWork","ocean_day","all",.true.,"none",2 +#"ocean_model","SN_u","SN_u","ocean_day","all",.true.,"none",2 +#"ocean_model","SN_v","SN_v","ocean_day","all",.true.,"none",2 +#"ocean_model","NH","NH","ocean_day","all",.true.,"none",2 +#"ocean_model","Ld","Ld","ocean_day","all",.true.,"none",2 +#"ocean_model","Le","Le","ocean_day","all",.true.,"none",2 +#"ocean_model","L2u","L2u","ocean_day","all",.true.,"none",2 +#"ocean_model","L2v","L2v","ocean_day","all",.true.,"none",2 +#"ocean_model","S2u","S2u","ocean_day","all",.true.,"none",2 +#"ocean_model","S2v","S2v","ocean_day","all",.true.,"none",2 +#"ocean_model","eff_beta","eff_beta","ocean_day","all",.true.,"none",2 +"ocean_model","KHTH_u","KHTH_u","ocean_day","all",.true.,"none",2 +"ocean_model","KHTH_v","KHTH_v","ocean_day","all",.true.,"none",2 +"ocean_model","KHTR_u","KHTR_u","ocean_day","all",.true.,"none",2 +"ocean_model","KHTR_v","KHTR_v","ocean_day","all",.true.,"none",2 + +# MEKE: +#====== +# "ocean_model","MEKE","MEKE","ocean_day","all",.true.,"none",2 +# "ocean_model","MEKE_src","MEKE_src","ocean_day","all",.true.,"none",2 +# "ocean_model","MEKE_Kh","MEKE_Kh","ocean_day","all",.true.,"none",2 +# +# Kinetic Energy Balance Terms: +#============================= +#"ocean_model","KE","KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","dKE_dt","dKE_dt","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","PE_to_KE","PE_to_KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_Coradv","KE_Coradv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_adv","KE_adv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_visc","KE_visc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_horvisc","KE_horvisc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_dia","KE_dia","energy_%4yr_%3dy","all",.true.,"none",2 +# +# Surface Forcing: +#================= +"ocean_model","taux", "taux", "ocean_day","all",.true.,"none",2 +"ocean_model","tauy", "tauy", "ocean_day","all",.true.,"none",2 +"ocean_model","ustar", "ustar", "ocean_day","all",.true.,"none",2 +"ocean_model","PmE", "PmE", "ocean_day","all",.true.,"none",2 +"ocean_model","SW", "SW", "ocean_day","all",.true.,"none",2 +"ocean_model","LwLatSens","LwLatSens","ocean_day","all",.true.,"none",2 +"ocean_model","p_surf", "p_surf", "ocean_day","all",.true.,"none",2 +"ocean_model","salt_flux","salt_flux","ocean_day","all",.true.,"none",2 + +# Static ocean fields: +#===================== +"ocean_model", "geolon", "geolon", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat", "geolat", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolon_c", "geolon_c", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat_c", "geolat_c", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolon_u", "geolon_u", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat_u", "geolat_u", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolon_v", "geolon_v", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat_v", "geolat_v", "ocean_static", "all", .false., "none", 2 +"ocean_model", "area_t", "area_t", "ocean_static", "all", .false., "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet", "wet", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet_c", "wet_c", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet_u", "wet_u", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet_v", "wet_v", "ocean_static", "all", .false., "none", 2 +"ocean_model", "Coriolis", "Coriolis", "ocean_static", "all", .false., "none", 2 + +# +# ICE DIAGNOSTICS: +#================= +#================= +"ice_model", "FRAZIL", "FRAZIL", "ice_day", "all", .true., "none", 2, +"ice_model", "HI", "HI", "ice_day", "all", .true., "none", 2, +"ice_model", "HS", "HS", "ice_day", "all", .true., "none", 2, +"ice_model", "TS", "TS", "ice_day", "all", .true., "none", 2, +"ice_model", "T1", "T1", "ice_day", "all", .true., "none", 2, +"ice_model", "T2", "T2", "ice_day", "all", .true., "none", 2, +"ice_model", "CN", "CN", "ice_day", "all", .true., "none", 2, +"ice_model", "EXT", "EXT", "ice_day", "all", .true., "none", 2, +"ice_model", "MI", "MI", "ice_day", "all", .true., "none", 2, +"ice_model", "XPRT", "XPRT", "ice_day", "all", .true., "none", 2, +"ice_model", "LSRC", "LSRC", "ice_day", "all", .true., "none", 2, +"ice_model", "LSNK", "LSNK", "ice_day", "all", .true., "none", 2, +"ice_model", "BSNK", "BSNK", "ice_day", "all", .true., "none", 2, +"ice_model", "SN2IC", "SN2IC", "ice_day", "all", .true., "none", 2, +"ice_model", "ALB", "ALB", "ice_day", "all", .true., "none", 2, +"ice_model", "SW", "SW", "ice_day", "all", .true., "none", 2, +"ice_model", "LW", "LW", "ice_day", "all", .true., "none", 2, +"ice_model", "SH", "SH", "ice_day", "all", .true., "none", 2, +"ice_model", "LH", "LH", "ice_day", "all", .true., "none", 2, +"ice_model", "TMELT", "TMELT", "ice_day", "all", .true., "none", 2, +"ice_model", "BMELT", "BMELT", "ice_day", "all", .true., "none", 2, +"ice_model", "BHEAT", "BHEAT", "ice_day", "all", .true., "none", 2, +"ice_model", "UI", "UI", "ice_day", "all", .true., "none", 2, +"ice_model", "VI", "VI", "ice_day", "all", .true., "none", 2, +"ice_model", "FA_X", "FA_X", "ice_day", "all", .true., "none", 2, +"ice_model", "FA_Y", "FA_Y", "ice_day", "all", .true., "none", 2, +"ice_model", "FI_X", "FI_X", "ice_day", "all", .true., "none", 2, +"ice_model", "FI_Y", "FI_Y", "ice_day", "all", .true., "none", 2, +"ice_model", "SST", "SST", "ice_day", "all", .true., "none", 2, +"ice_model", "SSS", "SSS", "ice_day", "all", .true., "none", 2, +"ice_model", "SSH", "SSH", "ice_day", "all", .true., "none", 2, +"ice_model", "UO", "UO", "ice_day", "all", .true., "none", 2, +"ice_model", "VO", "VO", "ice_day", "all", .true., "none", 2, +"ice_model", "SNOWFL", "SNOWFL", "ice_day", "all", .true., "none", 2, +"ice_model", "RAIN", "RAIN", "ice_day", "all", .true., "none", 2, +"ice_model", "CALVING", "CALVING", "ice_day", "all", .true., "none", 2, +"ice_model", "RUNOFF", "RUNOFF", "ice_day", "all", .true., "none", 2, +"ice_model", "CELL_AREA", "CELL_AREA", "ice_day", "all", .false., "none", 2, +"ice_model", "GEOLON", "GEOLON", "ice_day", "all", .false., "none", 2, +"ice_model", "GEOLAT", "GEOLAT", "ice_day", "all", .false., "none", 2, +"ice_model", "SINROT", "SINROT", "ice_day", "all", .false., "none", 2, +"ice_model", "COSROT", "COSROT", "ice_day", "all", .false., "none", 2, +"ice_model", "SALTF", "SALTF", "ice_day", "all", .true., "none", 2, +"ice_model", "IX_TRANS", "IX_TRANS", "ice_day", "all", .true., "none", 2, +"ice_model", "IY_TRANS", "IY_TRANS", "ice_day", "all", .true., "none", 2, + +# ICEBERG DIAGNOSTICS: +#===================== +#===================== +"icebergs", "calving", "calving", "icebergs_day", "all", .true., "none", 2, +"icebergs", "accum_calving", "accum_calving", "icebergs_day", "all", .true., "none", 2, +"icebergs", "unused_calving", "unused_calving", "icebergs_day", "all", .true., "none", 2, +"icebergs", "real_calving", "real_calving", "icebergs_day", "all", .true., "none", 2, +"icebergs", "stored_ice", "stored_ice", "icebergs_day", "all", .true., "none", 2, +"icebergs", "hi", "hi", "icebergs_day", "all", .true., "none", 2, +"icebergs", "cn", "cn", "icebergs_day", "all", .true., "none", 2, +"icebergs", "ui", "ui", "icebergs_day", "all", .true., "none", 2, +"icebergs", "vi", "vi", "icebergs_day", "all", .true., "none", 2, +"icebergs", "ua", "ua", "icebergs_day", "all", .true., "none", 2, +"icebergs", "va", "va", "icebergs_day", "all", .true., "none", 2, +"icebergs", "uo", "uo", "icebergs_day", "all", .true., "none", 2, +"icebergs", "vo", "vo", "icebergs_day", "all", .true., "none", 2, +"icebergs", "sst", "sst", "icebergs_day", "all", .true., "none", 2, +"icebergs", "mass", "mass", "icebergs_day", "all", .true., "none", 2, +"icebergs", "virtual_area", "virtual_area", "icebergs_day", "all", .true., "none", 2, +"icebergs", "melt", "melt", "icebergs_day", "all", .true., "none", 2, +"icebergs", "berg_melt", "berg_melt", "icebergs_day", "all", .true., "none", 2, +"icebergs", "melt_buoy", "melt_buoy", "icebergs_day", "all", .true., "none", 2, +"icebergs", "melt_eros", "melt_eros", "icebergs_day", "all", .true., "none", 2, +"icebergs", "melt_conv", "melt_conv", "icebergs_day", "all", .true., "none", 2, +"icebergs", "mask", "mask", "icebergs_day", "all", .false., "none", 2, +"icebergs", "area", "area", "icebergs_day", "all", .false., "none", 2, +"icebergs", "lon", "lon", "icebergs_day", "all", .false., "none", 2, +"icebergs", "lat", "lat", "icebergs_day", "all", .false., "none", 2, + +# +#======================== +# ATMOSPHERE DIAGNOSTICS: +#======================== +#======================== +# "flux", "land_mask", "land_mask", "flux_day", "all", .false., "none", 2, +# "flux", "ice_mask", "ice_mask", "flux_day", "all", .true., "none", 2, +# "flux", "drag_moist", "drag_moist", "flux_day", "all", .true., "none", 2, +# "flux", "drag_heat", "drag_heat", "flux_day", "all", .true., "none", 2, +# "flux", "drag_mom", "drag_mom", "flux_day", "all", .true., "none", 2, +# "flux", "wind", "wind", "flux_day", "all", .true., "none", 2, +# # "flux" forcing fields for land model: wind, q_ref atmos_8xdaily +# #"flux", "wind", "wind", "atmos_8xdaily", "all", .true., "none", 2, +# #"flux", "q_ref", "q_ref", "atmos_8xdaily", "all", .true., "none", 2, +# "flux", "tau_x", "tau_x", "flux_day", "all", .true., "none", 2, +# "flux", "tau_y", "tau_y", "flux_day", "all", .true., "none", 2, +# "flux", "shflx", "shflx", "flux_day", "all", .true., "none", 2, +# "flux", "evap", "evap", "flux_day", "all", .true., "none", 2, +# "flux", "lwflx", "lwflx", "flux_day", "all", .true., "none", 2, +# "flux", "rh_ref", "rh_ref", "flux_day", "all", .true., "none", 2, +# "flux", "u_ref", "u_ref", "flux_day", "all", .true., "none", 2, +# "flux", "v_ref", "v_ref", "flux_day", "all", .true., "none", 2, +# "flux", "u_atm", "u_atm", "flux_day", "all", .true.,"none", 2, +# "flux", "v_atm", "v_atm", "flux_day", "all", .true.,"none", 2, +# "flux", "t_atm", "t_atm", "flux_day", "all", .true.,"none", 2, +# "flux", "t_surf", "t_surf", "flux_day", "all", .true.,"none", 2, +# "flux", "q_atm", "q_atm", "flux_day", "all", .true.,"none", 2, +# +# For these "_col" fields, set do_cmip_diagnostics=.true. in &shortwave_driver_nml, and uncomment +#"radiation", "organic_carbon_exopdep_col","org_crb_exdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "organic_carbon_abopdep_col","org_crb_abdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "black_carbon_exopdep_col", "blk_crb_exdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "black_carbon_abopdep_col", "blk_crb_abdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "sea_salt_exopdep_col", "salt_exdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "sea_salt_abopdep_col", "salt_abdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "so4_anthro_col", "so4_ant_col", "atmos_day", "all", .true., "none", 2, +#"radiation", "so4_natural_col", "so4_nat_col", "atmos_day", "all", .true., "none", 2, +#"radiation", "small_dust_exopdep_col", "sm_dust_exdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "small_dust_abopdep_col", "sm_dust_abdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "large_dust_exopdep_col", "lg_dust_exdep_c", "atmos_day", "all", .true., "none", 2, +#"radiation", "large_dust_abopdep_col", "lg_dust_abdep_c", "atmos_day", "all", .true., "none", 2, +# + + +#============================================================================================= +# +#====> This file can be used with diag_manager/v2.0a (or higher) <==== +# +# +# FORMATS FOR FILE ENTRIES (not all input values are used) +# ------------------------ +# +#"file_name", output_freq, "output_units", format, "time_units", "long_name", +# +# +#output_freq: > 0 output frequency in "output_units" +# = 0 output frequency every time step +# =-1 output frequency at end of run +# +#output_units = units used for output frequency +# (years, months, days, minutes, hours, seconds) +# +#time_units = units used to label the time axis +# (days, minutes, hours, seconds) +# +# +# FORMAT FOR FIELD ENTRIES (not all input values are used) +# ------------------------ +# +#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing +# +#time_avg = .true. or .false. +# +#packing = 1 double precision +# = 2 float +# = 4 packed 16-bit integers +# = 8 packed 1-byte (not tested?) + diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/field_table b/examples/ocean_SIS2/SIS2_bergs_cgrid/field_table new file mode 100644 index 0000000000..a4e98a7caf --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/field_table @@ -0,0 +1,71 @@ +"diag_tracers","ocean_mod","frazil" + +file_in = INPUT/ocean_frazil.res.nc +file_out = RESTART/ocean_frazil.res.nc +/ + + +"prog_tracers","ocean_mod","temp" + +horizontal-advection-scheme = mdfl_sweby +vertical-advection-scheme = mdfl_sweby +file_in = INPUT/ocean_temp_salt.res.nc +file_out = RESTART/ocean_temp_salt.res.nc +/ + +"prog_tracers","ocean_mod","salt" + +rizontal-advection-scheme = mdfl_sweby +vertical-advection-scheme = mdfl_sweby +file_in = INPUT/ocean_temp_salt.res.nc +file_out = RESTART/ocean_temp_salt.res.nc +/ + + +"tracer_packages","ocean_mod","ocean_age_tracer" + +names = global +horizontal-advection-scheme = mdfl_sweby +vertical-advection-scheme = mdfl_sweby +file_in = INPUT/ocean_age.res.nc +file_out = RESTART/ocean_age.res.nc +min_tracer_limit=0.0 +/ + +"prog_tracers","ocean_mod","age_global" + +const_init_tracer = t +const_init_value = 0.0 +/ + +"namelists","ocean_mod","ocean_age_tracer/global" + +slat = -90.0 +nlat = 90.0 +wlon = 0.0 +elon = 360.0 +/ + + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / + +# prognotic cloud scheme tracers + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud liquid specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice water specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud fraction" + "units", "none" / + +# test tracer for radon + +# "TRACER", "atmos_mod", "radon" +# "longname", "radon test tracer" +# "units", "kg/kg" / + + "TRACER", "land_mod", "sphum"/ + diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/input.nml b/examples/ocean_SIS2/SIS2_bergs_cgrid/input.nml new file mode 100644 index 0000000000..8ce68182b9 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/input.nml @@ -0,0 +1,87 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' / + + &SIS_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'SIS_input', + 'SIS_override' / + + &diag_manager_nml + / + + &coupler_nml + months = 0, + days = 1, + current_date = 1,1,1,0,0,0, + hours = 0 + minutes = 0 + seconds = 0 + calendar = 'NOLEAP', + dt_cpld = 7200, + dt_atmos = 7200, + do_atmos = .false., + do_land = .false., + do_ice = .true., + do_ocean = .true., + atmos_npes = 0, + ocean_npes = 0, + concurrent = .false. + use_lag_fluxes=.true. / + + &data_override_nml + / + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ice_albedo_nml + t_range = 10. / + + &ice_model_nml + / + + &icebergs_nml + verbose=.false., + verbose_hrs=24, + traj_sample_hrs=24, + debug=.false., + really_debug=.false., + use_slow_find=.true., + add_weight_to_ocean=.true., + passive_mode=.false., + generate_test_icebergs=.false., + speed_limit=0., + use_roundoff_fix=.true., + make_calving_reproduce=.true., + / + + &monin_obukhov_nml + neutral = .true. / + + &ocean_albedo_nml + ocean_albedo_option = 5 / + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. / + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' / + diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/static_input.nml b/examples/ocean_SIS2/SIS2_bergs_cgrid/static_input.nml new file mode 100644 index 0000000000..083c482acc --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/static_input.nml @@ -0,0 +1,50 @@ + + &data_override_nml + / + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ice_albedo_nml + t_range = 10. / + + &ice_model_nml + / + + &icebergs_nml + verbose=.false., + verbose_hrs=24, + traj_sample_hrs=24, + debug=.false., + really_debug=.false., + use_slow_find=.true., + add_weight_to_ocean=.true., + passive_mode=.false., + generate_test_icebergs=.false., + speed_limit=0., + use_roundoff_fix=.true., + make_calving_reproduce=.true., + / + + &monin_obukhov_nml + neutral = .true. / + + &ocean_albedo_nml + ocean_albedo_option = 5 / + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. / + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' / + diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.gnu b/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.gnu new file mode 100644 index 0000000000..3604a336e5 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.gnu @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 0.000, 0, En 6.974470353868E-01, CFL 0.00000, SL 1.8221E-09, M 1.37957E+21, S 34.7200, T 3.6134, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 0.250, 0, En 6.976624624285E-01, CFL 0.16338, SL 1.1838E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 1.64E-16, Se 5.79E-15, Te 2.37E-15 + 6, 0.500, 0, En 7.019686408467E-01, CFL 0.12579, SL 1.3493E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 2.48E-16, Se 8.52E-15, Te 1.63E-15 + 9, 0.750, 0, En 7.057122387890E-01, CFL 0.13532, SL 1.5899E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 3.47E-16, Se 1.19E-14, Te 2.32E-15 + 12, 1.000, 0, En 7.071365619835E-01, CFL 0.16923, SL 1.8434E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 4.36E-16, Se 1.49E-14, Te 2.83E-15 diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.intel b/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.intel new file mode 100644 index 0000000000..e454b4a2a2 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.intel @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 0.000, 0, En 6.974470353868E-01, CFL 0.00000, SL 1.8221E-09, M 1.37957E+21, S 34.7200, T 3.6134, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 0.250, 0, En 6.976643598431E-01, CFL 0.16338, SL 1.1838E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 1.63E-16, Se 5.80E-15, Te 2.37E-15 + 6, 0.500, 0, En 7.019611756333E-01, CFL 0.12579, SL 1.3493E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 2.49E-16, Se 8.59E-15, Te 1.63E-15 + 9, 0.750, 0, En 7.057058412294E-01, CFL 0.14732, SL 1.5896E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 3.44E-16, Se 1.18E-14, Te 2.31E-15 + 12, 1.000, 0, En 7.071497957569E-01, CFL 0.16996, SL 1.8432E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 4.30E-16, Se 1.47E-14, Te 2.80E-15 diff --git a/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.pgi b/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.pgi new file mode 100644 index 0000000000..7f9a75f453 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_bergs_cgrid/timestats.pgi @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 0.000, 0, En 6.974470353868E-01, CFL 0.00000, SL 1.8221E-09, M 1.37957E+21, S 34.7200, T 3.6134, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 0.250, 0, En 6.976635449979E-01, CFL 0.16338, SL 1.1838E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 1.63E-16, Se 5.74E-15, Te 2.37E-15 + 6, 0.500, 0, En 7.019703834396E-01, CFL 0.12579, SL 1.3493E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 2.50E-16, Se 8.61E-15, Te 1.62E-15 + 9, 0.750, 0, En 7.055883090136E-01, CFL 0.13532, SL 1.5896E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 3.45E-16, Se 1.18E-14, Te 2.31E-15 + 12, 1.000, 0, En 7.071641064643E-01, CFL 0.16958, SL 1.8431E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 4.33E-16, Se 1.48E-14, Te 2.83E-15 diff --git a/examples/ocean_SIS2/SIS2_cgrid/INPUT/.datasets b/examples/ocean_SIS2/SIS2_cgrid/INPUT/.datasets new file mode 120000 index 0000000000..086a13aa04 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/INPUT/.datasets @@ -0,0 +1 @@ +../../../.datasets \ No newline at end of file diff --git a/examples/ocean_SIS2/SIS2_cgrid/INPUT/README b/examples/ocean_SIS2/SIS2_cgrid/INPUT/README new file mode 120000 index 0000000000..fc45a3cbc3 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/INPUT/README @@ -0,0 +1 @@ +.datasets/GOLD_SIS/riga/mosaic.unpacked/README \ No newline at end of file diff --git a/examples/ocean_SIS2/SIS2_cgrid/MOM_channel_list b/examples/ocean_SIS2/SIS2_cgrid/MOM_channel_list new file mode 100644 index 0000000000..3bbb2ca75d --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/MOM_channel_list @@ -0,0 +1,20 @@ +! This file specifies restricted channel widths in GOLD. The order is: +! [UV]_WIDTH, min_longitude, max_longitude, min_latitude, max_latitude, width + +U_width, -6.5, -4.5, 35.0, 36.0, 12000.0 ! Gibraltar +U_width, 42.5, 43.5, 12.0, 13.0, 10000.0 ! Red Sea, Bab-el-Mendeb +U_width, 25.5, 26.5, 40.0, 41.0, 5000.0 ! Dardanelles +U_width, 139.5, 140.5, 41.0, 42.0, 35000.0 ! Tsugaru Strait +U_width, 141.6, 143.4, 45.0, 46.0, 15000.0 ! Between Sakhalin & Hokkaido +U_width, -65.7, -64.1, 80.64, 81.04, 38000.0 ! Smith Sound, Canadian Arctic + +V_width, 28.0, 29.0, 40.5, 41.5, 2500.0 ! Bosporus - should be 1km wide. +V_width, 42.0, 43.0, 12.5, 13.5, 10000.0 ! Red Sea, Bab-el-Mendeb +V_width, 118.0, 119.0, -3.6, -2.0, 40000.0 ! Makassar Straits +V_width, 119.0, 120.0, 0.06, 1.06, 80000.0 ! Entry to Makassar Straits +V_width, 129.0, 131.0, -0.31, 0.69, 25000.0 ! Between New Guinea & Halmahera +V_width, 131.0, 132.0, -0.25, 0.25, 25000.0 ! Between New Guinea & Halmahera +V_width, 115.0, 116.0, -9.0, -8.0, 20000.0 ! Lombok Straits +V_width, 124.0, 125.0, -9.0, -8.0, 20000.0 ! Timor Straits +V_width, 141.0, 142.0, 51.5, 52.5, 2500.0 ! Between Sakhalin & Russia +V_width, -89.2, -88.2, 76.74, 76.86, 8400.0 ! Jones Sound, Canadian Arctic diff --git a/examples/ocean_SIS2/SIS2_cgrid/MOM_input b/examples/ocean_SIS2/SIS2_cgrid/MOM_input new file mode 100644 index 0000000000..8aa549dab8 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/MOM_input @@ -0,0 +1,661 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in SIS2. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +USE_LEGACY_SPLIT = True ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +THICKNESS_CONFIG = "file" ! + ! A string that determines how the initial layer + ! thicknesses are specified for a new run: + ! file - read interface heights from the file specified + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! benchmark - use the benchmark test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +THICKNESS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The name of the thickness file. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +TS_CONFIG = "file" ! + ! A string that determines how the initial tempertures + ! and salinities are specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +TS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The initial condition file for temperature. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +FLUX_BT_COUPLING = True ! [Boolean] default = False + ! If true, use mass fluxes to ensure consistency between + ! the baroclinic and barotropic modes. This is only used + ! if SPLIT is true. +READJUST_BT_TRANS = True ! [Boolean] default = False + ! If true, make a barotropic adjustment to the layer + ! velocities after the thermodynamic part of the step + ! to ensure that the interaction between the thermodynamics + ! and the continuity solver do not change the barotropic + ! transport. This is only used if FLUX_BT_COUPLING and + ! SPLIT are true. +MONOTONIC_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 0 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 0 ! + ! The barotropic y-halo size that is actually used. +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +DT_BT_FILTER = 0.0 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = 60.0 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_kappa_shear === +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = True ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = True ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +FLUXCONST = 0.5 ! [m day-1] + ! The constant that relates the restoring surface fluxes + ! to the relative surface anomalies (akin to a piston + ! velocity). Note the non-MKS units. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 1000000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/ocean_SIS2/SIS2_cgrid/MOM_memory.h b/examples/ocean_SIS2/SIS2_cgrid/MOM_memory.h new file mode 100644 index 0000000000..4708772a43 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/MOM_memory.h @@ -0,0 +1,51 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This include file determines the compile-time memory settings * +!* for the Modular Ocean Model (MOM), versions 6 and later. * +!********+*********+*********+*********+*********+*********+*********+* + +! Specify the numerical domain. +#define NIGLOBAL_ 360 +#define NJGLOBAL_ 210 + ! NIGLOBAL_ and NJGLOBAL_ are the number of thickness + ! grid points in the zonal and meridional + ! directions of the physical domain. +#define NK_ 63 + ! The number of layers. + +#define STATIC_MEMORY_ + ! If STATIC_MEMORY_ is defined, the principle + ! variables will have sizes that are statically + ! determined at compile time. Otherwise the + ! sizes are not determined until run time. The + ! STATIC option is substantially faster, but + ! does not allow the PE count to be changed at + ! run time. +#undef SYMMETRIC_MEMORY_ + ! If defined, the velocity point data domain + ! includes every face of the thickness points. + ! In other words, some arrays are larger than + ! others, depending on where they are on the + ! staggered grid. + +#define NIPROC_ 10 + ! NIPROC_ is the number of processors in the + ! x-direction. +#define NJPROC_ 6 + ! NJPROC_ is the number of processors in the + ! y-direction. + +#define MAX_FIELDS_ 80 + ! The maximum permitted number (each) of + ! restart variables, time derivatives, etc. + ! This is mostly used for the size of pointer + ! arrays, so it should be set generously. + +#define NIHALO_ 4 +#define NJHALO_ 4 + ! NIHALO_ and NJHALO_ are the sizes of the + ! memory halos on each side. +#define BTHALO_ 10 + ! BTHALO_ is the size of the memory halos in + ! the barotropic solver. + +#include diff --git a/examples/ocean_SIS2/SIS2_cgrid/MOM_override b/examples/ocean_SIS2/SIS2_cgrid/MOM_override new file mode 100644 index 0000000000..5d67420dc4 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/MOM_override @@ -0,0 +1 @@ +! Blank file in which we can put "overrides" for parameters diff --git a/examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.all b/examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.all new file mode 100644 index 0000000000..f90eb91f51 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.all @@ -0,0 +1,1708 @@ +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = True ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to + ! calculate accelerations and the mass for conservation + ! properties, or with BOUSSINSEQ false to convert some + ! parameters from vertical units of m to kg m-2. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first + ! in parts of the code that use directionally split + ! updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minumum layer thickness, usually one-Angstrom. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths + ! at velocity points. Otherwise the effects of of + ! topography are entirely determined from thickness points. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +AVAILABLE_DIAGS_FILE = "available_diags.000000" ! default = "available_diags.000000" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +SPLIT = True ! [Boolean] default = True + ! Use the split time stepping if true. +USE_LEGACY_SPLIT = True ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state + ! variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and + ! salinity with an equation of state. If USE_EOS is + ! true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, + ! including buoyancy forcing and mass gain or loss, + ! before stepping the dynamics forward. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is + ! true. This assumes that KD = KDML = 0.0 and that + ! there is no buoyancy forcing, but makes the model + ! faster by eliminating subroutine calls. +BULKMIXEDLAYER = True ! [Boolean] default = True + ! If true, use a Kraus-Turner-like bulk mixed layer + ! with transitional buffer layers. Layers 1 through + ! NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. + ! The default is the same setting as ENABLE_THERMODYNAMICS. +USE_REGRIDDING = False ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for + ! debugging truncations. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure + ! over the coupling time step, using the specified value + ! at the end of the step. +SSH_SMOOTHING_PASSES = 0.0 ! [nondim] default = 0.0 + ! The number of Laplacian smoothing passes to apply to the + ! the sea surface height that is reported to the sea-ice. +DTBT_RESET_PERIOD = -1.0 ! [s] default = -1.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If + ! dynamic, DTBT will be set at least every forcing time + ! step, and if 0, every dynamics time step. The default is + ! set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate + ! density. (1 Pa = 1e4 dbar, so 2e7 is commonly used.) + ! This is only used if USE_EOS and ENABLE_THERMODYNAMICS + ! are true. +NKML = 2 ! [nondim] default = 2 + ! The number of sublayers within the mixed layer if + ! BULKMIXEDLAYER is true. +NKBL = 2 ! [nondim] default = 2 + ! The number of layers that are used as variable density + ! buffer layers if BULKMIXEDLAYER is true. +CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state + ! should be used. Currently, the valid choices are + ! "LINEAR", "UNESCO", and "WRIGHT". + ! This is only used if USE_EOS is true. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code + ! code for the integrals of density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be + ! used for the freezing point. Currently, the valid + ! choices are "LINEAR", "MILLERO_78". +TFREEZE_S0_P0 = 0.0 ! [deg C] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the freezing potential temperature at + ! S=0, P=0. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure. +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +LARGE_FILE_SUPPORT = True ! [Boolean] default = True + ! If true, use the file-size limits with NetCDF large + ! file support (4Gb), otherwise the limit is 2Gb. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a + ! preprocessor macro, use the MOM_generic_tracer packages. + +! === module ideal_age_example === +DO_IDEAL_AGE = True ! [Boolean] default = True + ! If true, use an ideal age tracer that is set to 0 age + ! in the mixed layer and ages at unit rate in the interior. +DO_IDEAL_VINTAGE = False ! [Boolean] default = False + ! If true, use an ideal vintage tracer that is set to an + ! exponentially increasing value in the mixed layer and + ! is conserved thereafter. +DO_IDEAL_AGE_DATED = False ! [Boolean] default = False + ! If true, use an ideal age tracer that is everywhere 0 + ! before IDEAL_AGE_DATED_START_YEAR, but the behaves like + ! the standard ideal age tracer - i.e. is set to 0 age in + ! the mixed layer and ages at unit rate in the interior. +AGE_IC_FILE = "" ! default = "" + ! The file in which the age-tracer initial values can be + ! found, or an empty string for internal initialization. +AGE_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, AGE_IC_FILE is in depth space, not layer space +MASK_MASSLESS_TRACERS = False ! [Boolean] default = False + ! If true, the tracers are masked out in massless layer. + ! This can be a problem with time-averages. +TRACERS_MAY_REINIT = False ! [Boolean] default = False + ! If true, tracers may go through the initialization code + ! if they are not found in the restart files. Otherwise + ! it is a fatal error if the tracers are not found in the + ! restart files of a restarted run. + +! === module MOM_OCMIP2_CFC === +CFC_IC_FILE = "" ! default = "" + ! The file in which the CFC initial values can be + ! found, or an empty string for internal initialization. +CFC_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, CFC_IC_FILE is in depth space, not layer space +CFC11_A1 = 3501.8 ! [nondim] default = 3501.8 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A2 = -210.31 ! [degC-1] default = -210.31 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A3 = 6.1851 ! [degC-2] default = 6.1851 + ! A coefficient in the Schmidt number of CFC11. +CFC11_A4 = -0.07513 ! [degC-3] default = -0.07513 + ! A coefficient in the Schmidt number of CFC11. +CFC12_A1 = 3845.4 ! [nondim] default = 3845.4 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A2 = -228.95 ! [degC-1] default = -228.95 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A3 = 6.1908 ! [degC-2] default = 6.1908 + ! A coefficient in the Schmidt number of CFC12. +CFC12_A4 = -0.06743 ! [degC-3] default = -0.06743 + ! A coefficient in the Schmidt number of CFC12. +CFC11_D1 = -229.9261 ! [none] default = -229.9261 + ! A coefficient in the solubility of CFC11. +CFC11_D2 = 319.6552 ! [hK] default = 319.6552 + ! A coefficient in the solubility of CFC11. +CFC11_D3 = 119.4471 ! [none] default = 119.4471 + ! A coefficient in the solubility of CFC11. +CFC11_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC11. +CFC11_E1 = -0.142382 ! [PSU-1] default = -0.142382 + ! A coefficient in the solubility of CFC11. +CFC11_E2 = 0.091459 ! [PSU-1 hK-1] default = 0.091459 + ! A coefficient in the solubility of CFC11. +CFC11_E3 = -0.0157274 ! [PSU-1 hK-2] default = -0.0157274 + ! A coefficient in the solubility of CFC11. +CFC12_D1 = -218.0971 ! [none] default = -218.0971 + ! A coefficient in the solubility of CFC12. +CFC12_D2 = 298.9702 ! [hK] default = 298.9702 + ! A coefficient in the solubility of CFC12. +CFC12_D3 = 113.8049 ! [none] default = 113.8049 + ! A coefficient in the solubility of CFC12. +CFC12_D4 = -1.39165 ! [hK-2] default = -1.39165 + ! A coefficient in the solubility of CFC12. +CFC12_E1 = -0.143566 ! [PSU-1] default = -0.143566 + ! A coefficient in the solubility of CFC12. +CFC12_E2 = 0.091015 ! [PSU-1 hK-1] default = 0.091015 + ! A coefficient in the solubility of CFC12. +CFC12_E3 = -0.0153924 ! [PSU-1 hK-2] default = -0.0153924 + ! A coefficient in the solubility of CFC12. +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. +COORD_VAR = "Layer" ! default = "Layer" + ! The variable in COORD_FILE that is to be used for the + ! coordinate densities. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +TOPO_FILE = "topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative. +APPLY_OBC_U_FLATHER_EAST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the eastern + ! side of the global domain +APPLY_OBC_U_FLATHER_WEST = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the western + ! side of the global domain +APPLY_OBC_V_FLATHER_NORTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the northern + ! side of the global domain +APPLY_OBC_V_FLATHER_SOUTH = False ! [Boolean] default = False + ! Apply a Flather open boundary condition on the southern + ! side of the global domain +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ROTATION = "2omegasinlat" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +INIT_LAYERS_FROM_Z_FILE = False ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. +THICKNESS_CONFIG = "file" ! + ! A string that determines how the initial layer + ! thicknesses are specified for a new run: + ! file - read interface heights from the file specified + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! benchmark - use the benchmark test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +THICKNESS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The name of the thickness file. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +TS_CONFIG = "file" ! + ! A string that determines how the initial tempertures + ! and salinities are specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +TS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The initial condition file for temperature. +TEMP_IC_VAR = "PTEMP" ! default = "PTEMP" + ! The initial condition variable for potential temperature. +SALT_IC_VAR = "SALT" ! default = "SALT" + ! The initial condition variable for salinity. +SALT_FILE = "GOLD_IC.2010.11.15.nc" ! default = "GOLD_IC.2010.11.15.nc" + ! The initial condition file for salinity. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities + ! are specified for a new run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! paremters TORUS_U and TORUS_V). + ! USER - call a user modified routine. +CONVERT_THICKNESS_UNITS = False ! [Boolean] default = False + ! If true, convert the thickness initial conditions from + ! units of m to kg m-2 or vice versa, depending on whether + ! BOUSSINESQ is defined. This does not apply if a restart + ! file is read. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge + ! tsunamis when a large surface pressure is applied. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. + ! The exact location and properties of those sponges are + ! specified via SPONGE_CONFIG. +APPLY_OBC_U = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! u-points, with the configuration controlled by OBC_CONFIG +APPLY_OBC_V = False ! [Boolean] default = False + ! If true, open boundary conditions may be set at some + ! v-points, with the configuration controlled by OBC_CONFIG + +! === module MOM_MEKE === +MEKE_DAMPING = 0.0 ! [s-1] default = 0.0 + ! The local depth-indepented MEKE dissipation rate. +MEKE_CD_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scaling for the bottom drag applied to MEKE. This + ! should be less than 1 to account for the surface + ! intensification of MEKE and the fraction of MEKE that + ! may be temporarily stored as potential energy. +MEKE_GMCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_FRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into + ! MEKE. If MEKE_FRCOEFF is negative, this conversion + ! is not used or calculated. +MEKE_BGSRC = 0.0 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KH = -1.0 ! [m2 s-1] default = -1.0 + ! A background lateral diffusivity of MEKE, or a + ! Use a negative value to not apply lateral diffusion to MEKE. +MEKE_DTSCALE = 1.0 ! [nondim] default = 1.0 + ! A scaling factor to accelerate the time evolution of MEKE. +MEKE_KHCOEFF = -1.0 ! [nondim] default = -1.0 + ! A scaling factor which is combined with the square root + ! of MEKE times the grid-cell area to give MEKE%Kh, or a + ! negative value not to calculate MEKE%Kh. + ! This factor must be >0 for MEKE to contribute to the + ! thickness/tracer mixing in the rest of the model. +MEKE_USCALE = 1.0 ! [m s-1] default = 1.0 + ! The background velocity that is combined with MEKE to + ! calculate the bottom drag. +CDRAG = 0.003 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of + ! the velocity field to the bottom stress. +MEKE_VISC_DRAG = False ! [Boolean] default = False + ! If true, use the vertvisc_type to calculate the bottom + ! drag acting on MEKE. +MEKE_KHTH_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 1.0 ! [nondim] default = 1.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_RD_MAX_SCALE = True ! [nondim] default = True + ! If true, the maximum length scale used by MEKE is + ! the deformation radius. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled + ! away when the first baroclinic deformation radius is + ! well resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +KH_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if + ! RESOLN_SCALED_... is true, as + ! F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). +KH_RES_FN_POWER = 2 ! [nondim] default = 2 + ! The power of dx/Ld in the resolution function. Any + ! positive integer may be used, although even integers + ! are more efficient to calculate. Setting this greater + ! than 100 results in a step-function being used. +TIDES = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing. +BE = 0.6 ! [nondim] default = 0.6 + ! If SPLIT is true, BE determines the relative weighting + ! of a 2nd-order Runga-Kutta baroclinic time stepping + ! scheme (0.5) and a backward Euler scheme (1) that is + ! used for the Coriolis and inertial terms. BE may be + ! from 0.5 to 1, but instability may occur near 0.5. + ! BE is also applicable if SPLIT is false and USE_RK2 + ! is true. +BEGW = 0.0 ! [nondim] default = 0.0 + ! If SPILT is true, BEGW is a number from 0 to 1 that + ! controls the extent to which the treatment of gravity + ! waves is forward-backward (0) or simulated backward + ! Euler (1). 0 is almost always used. + ! If SPLIT is false and USE_RK2 is true, BEGW can be + ! between 0 and 0.5 to damp gravity waves. +FLUX_BT_COUPLING = True ! [Boolean] default = False + ! If true, use mass fluxes to ensure consistency between + ! the baroclinic and barotropic modes. This is only used + ! if SPLIT is true. +READJUST_BT_TRANS = True ! [Boolean] default = False + ! If true, make a barotropic adjustment to the layer + ! velocities after the thermodynamic part of the step + ! to ensure that the interaction between the thermodynamics + ! and the continuity solver do not change the barotropic + ! transport. This is only used if FLUX_BT_COUPLING and + ! SPLIT are true. +SPLIT_BOTTOM_STRESS = False ! [Boolean] default = False + ! If true, provide the bottom stress calculated by the + ! vertical viscosity to the barotropic solver. +BT_USE_LAYER_FLUXES = True ! [Boolean] default = True + ! If true, use the summed layered fluxes plus an + ! adjustment due to the change in the barotropic velocity + ! in the barotropic continuity equation. +CONTINUITY_SCHEME = "PPM" ! default = "PPM" + ! CONTINUITY_SCHEME selects the discretization for the + ! continuity solver. The only valid value currently is: + ! PPM - use a positive-definite (or monotonic) + ! piecewise parabolic reconstruction solver. +MONOTONIC_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order + ! (arithmetic mean) interpolation of the edge values. + ! This may give better PV conservation propterties. While + ! it formally reduces the accuracy of the continuity + ! solver itself in the strongly advective limit, it does + ! not reduce the overall order of accuracy of the dynamic + ! core. +UPWIND_1ST_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind + ! continuity solver. This scheme is highly diffusive + ! but may be useful for debugging or in single-column + ! mode where its minimal stensil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 1.0E-06 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a + ! relative CFL change up to 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the + ! tracer cell areas when estimating CFL numbers. The + ! default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity + ! based criterion and only stop if the iteration is + ! better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for + ! corrections in strongly viscous columns. +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise + ! free slip boundary conditions are assumed. The + ! implementation of the free slip BCs on a C-grid is much + ! cleaner than the no slip BCs. The use of free slip BCs + ! is strongly encouraged, and no slip BCs are not used with + ! the biharmonic viscosity. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration + ! due to the kinetic energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV + ! advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated + ! with a finite volume form that analytically integrates + ! the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as + ! described in Adcroft et al., O. Mod. (2008). +MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +BIHARMONIC = True ! [Boolean] default = True + ! If true, se a biharmonic horizontal viscosity. + ! BIHARMONIC may be used with LAPLACIAN. +KH = 0.0 ! [m2 s-1] default = 0.0 + ! The background Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +SMAGORINSKY_KH = False ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable. +BETTER_BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited + ! to be stable with a better bounding than just BOUND_KH. +AH = 0.0 ! [m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable. +BETTER_BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited + ! to be stable with a better bounding than just BOUND_AH. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. +BOUND_CORIOLIS_BIHARM = True ! [Boolean] default = True + ! If true use a viscosity that increases with the square + ! of the velocity shears, so that the resulting viscous + ! drag is of comparable magnitude to the Coriolis terms + ! when the velocity differences between adjacent grid + ! points is 0.5*BOUND_CORIOLIS_VEL. The default is the + ! value of BOUND_CORIOLIS (or false). +BOUND_CORIOLIS_VEL = 6.0 ! [m s-1] default = 6.0 + ! The velocity scale at which BOUND_CORIOLIS_BIHARM causes + ! the biharmonic drag to have comparable magnitude to the + ! Coriolis acceleration. The default is set by MAXVEL. +HORVISC_BOUND_COEF = 0.8 ! [nondim] default = 0.8 + ! The nondimensional coefficient of the ratio of the + ! viscosity bounds to the theoretical maximum for + ! stability without considering other terms. + +! === module MOM_vert_friction === +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag + ! law of the form c_drag*|u|*u. The velocity magnitude + ! may be an assumed value or it may be based on the + ! actual velocity in the bottommost HBBL, depending on + ! LINEAR_DRAG. +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the + ! topmost HMIX_STRESS of fluid (like in HYCOM), and KVML + ! may be set to a very small value. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +HARMONIC_VISC = False ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for + ! calculating the vertical viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an + ! absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity + ! components to be truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations + ! to be reported; the default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0 + ! The time over which the CFL trunction value is ramped + ! up at the beginning of the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when + ! ramping up CFL_TRUNC. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of colums of truncations that any PE + ! will write out during a run. + +! === module MOM_set_visc === +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag + ! law is cdrag*DRAG_BG_VEL*u. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivitives for temperature or salt + ! based on double-diffusive paramaterization from MOM4/KPP. +PRANDTL_TURB = 0.0 ! [nondim] default = 0.0 + ! The turbulent Prandtl number applied to shear + ! instability. +BULK_RI_ML_VISC = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. By default, + ! BULK_RI_ML_VISC = BULK_RI_ML or 0. +TKE_DECAY_VISC = 10.0 ! [nondim] default = 10.0 + ! TKE_DECAY_VISC relates the vertical rate of decay of + ! the TKE available for mechanical entrainment to the + ! natural Ekman depth for use in calculating the dynamic + ! mixed layer viscosity. By default, + ! TKE_DECAY_VISC = TKE_DECAY or 0. +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_USE_EOS = False ! [Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-top viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are + ! averaged for the drag law under an ice shelf. By + ! default this is the same as HBBL +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum viscosities in the top boundary layer. +SMAG_CONST_CHANNEL = 0.15 ! [nondim] default = 0.15 + ! The nondimensional Laplacian Smagorinsky constant used + ! in calculating the channel drag if it is enabled. The + ! default is to use the same value as SMAG_LAP_CONST if + ! it is defined, or 0.15 if it is not. The value used is + ! also 0.15 if the specified value is negative. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +GRADUAL_BT_ICS = False ! [Boolean] default = False + ! If true, adjust the initial conditions for the + ! barotropic solver to the values from the layered + ! solution over a whole timestep instead of instantly. + ! This is a decent approximation to the inclusion of + ! sum(u dh_dt) while also correcting for truncation errors. +BT_USE_WIDE_HALOS = True ! [Boolean] default = True + ! If true, use wide halos and march in during the + ! barotropic time stepping for efficiency. +BTHALO = 0 ! default = 0 + ! The minimum halo size for the barotropic solver. +!BT x-halo = 10 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 10 ! + ! The barotropic y-halo size that is actually used. +USE_BT_CONT_TYPE = True ! [Boolean] default = True + ! If true, use a structure with elements that describe + ! effective face areas from the summed continuity solver + ! as a function the barotropic flow in coupling between + ! the barotropic and baroclinic flow. This is only used + ! if SPLIT is true. +NONLINEAR_BT_CONTINUITY = False ! [Boolean] default = False + ! If true, use nonlinear transports in the barotropic + ! continuity equation. This does not apply if + ! USE_BT_CONT_TYPE is true. +RESCALE_BT_FACE_AREAS = False ! [Boolean] default = False + ! If true, the face areas used by the barotropic solver + ! are rescaled to approximately reflect the open face + ! areas of the interior layers. This probably requires + ! FLUX_BT_COUPLING to work, and should not be used with + ! USE_BT_CONT_TYPE. +BT_MASS_SOURCE_LIMIT = 0.0 ! [nondim] default = 0.0 + ! The fraction of the initial depth of the ocean that can + ! be added to or removed from the bartropic solution + ! within a thermodynamic time step. By default this is 0 + ! for no correction. +BT_PROJECT_VELOCITY = False ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +DYNAMIC_SURFACE_PRESSURE = False ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +SADOURNY = True ! [Boolean] default = True + ! If true, the Coriolis terms are discretized with the + ! Sadourny (1975) energy conserving scheme, otherwise + ! the Arakawa & Hsu scheme is used. If the internal + ! deformation radius is not resolved, the Sadourny scheme + ! should probably be used. +BT_THICK_SCHEME = "HYBRID" ! default = "HYBRID" + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +APPLY_BT_DRAG = True ! [Boolean] default = True + ! If defined, bottom drag is applied within the + ! barotropic solver. +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +CLIP_BT_VELOCITY = False ! [Boolean] default = False + ! If true, limit any velocity components that exceed + ! MAXVEL. This should only be used as a desperate + ! debugging measure. +MAXCFL_BT_CONT = 0.1 ! [nondim] default = 0.1 + ! The maximum permitted CFL number associated with the + ! barotropic accelerations from the summed velocities + ! times the time-derivatives of thicknesses. +DT_BT_FILTER = 0.0 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +G_BT_EXTRA = 0.0 ! [nondim] default = 0.0 + ! A nondimensional factor by which gtot is enhanced. +SSH_EXTRA = 10.0 ! [m] default = 10.0 + ! An estimate of how much higher SSH might get, for use + ! in calculating the safe external wave speed. The + ! default is the minimum of 10 m or 5% of MAXIMUM_DEPTH. +DEBUG_BT = False ! [Boolean] default = False + ! If true, write out verbose debugging data within the + ! barotropic time-stepping loop. The data volume can be + ! quite large if this is true. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = 60.0 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height + ! diffusivities to horizonally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is + ! not reliable and is scaled away. This is used with + ! FULL_THICKNESSDIFFUSE. +KD_SMOOTH = 1.0E-06 ! [not defined] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate + ! more sensible values of T & S into thin layers. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_MIX_FIRST = 0.0 ! [nondim] default = 0.0 + ! The fraction of the mixed layer mixing that is applied + ! before interior diapycnal mixing. 0 by default. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances as separate set of + ! equations for the internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers + ! are kept consistent with their target densities. + ! Otherwise the properties of massless layers evolve + ! diffusively to match massive neighboring layers. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at + ! the bottom into the interior as though a diffusivity of + ! KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to + ! tracers, especially in massless layers near the bottom. + ! The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will + ! allow for explicitly specified bottom fluxes. The + ! entrainment at the bottom is at least sqrt(Kd_BBL_tr*dt) + ! over the same distance. +FLUX_RI_MAX = 0.2 ! [not defined] default = 0.2 + ! The flux Richardson number where the stratification is + ! large enough that N2 > omega2. The full expression for + ! the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_EFOLD_COEFF = 0.2 ! [nondim] default = 0.2 + ! A coefficient that is used to scale the penetration + ! depth for turbulence below the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_KD_MAX = 0.001 ! [m2 s-1] default = 0.001 + ! The maximum diapycnal diffusivity due to turbulence + ! radiated from the base of the mixed layer. + ! This is only used if ML_RADIATION is true. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_APPLY_TKE_DECAY = True ! [Boolean] default = True + ! If true, apply the same exponential decay to ML_rad as + ! is applied to the other surface sources of TKE in the + ! mixed layer code. This is only used if ML_RADIATION is true. +MSTAR = 0.3 ! [units=nondim] default = 0.3 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by + ! bottom drag drives BBL diffusion. This is only + ! used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 0.0 ! [m] default = 0.0 + ! The maximum decay scale for the BBL diffusion, or 0 + ! to allow the mixing to penetrate as far as + ! stratification and rotation permit. The default is 0. + ! This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh + ! profile of background diapycnal diffusivity with depth. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +HENYEY_N0_2OMEGA = 20.0 ! [nondim] default = 20.0 + ! The ratio of the typical Buoyancy frequency to twice + ! the Earth's rotation period, used with the Henyey + ! scaling from the mixing. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, + ! like CM2.1/CM2M. There is no physical justification + ! for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +KD_MAX = -1.0 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added + ! everywhere without any filtering or scaling. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "STLAURENT_02" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +LEE_WAVE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an lee wave driven dissipation scheme to + ! drive diapycnal mixing, along the lines of Nikurashin + ! (2010) and using the St. Laurent et al. (2002) + ! and Simmons et al. (2004) vertical profile +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower + ! bound of Kd (a floor). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +MU_ITIDES = 0.2 ! [nondim] default = 0.2 + ! A dimensionless turbulent mixing efficiency used with + ! INT_TIDE_DISSIPATION, often 0.2. +GAMMA_ITIDES = 0.3333 ! [nondim] default = 0.3333 + ! The fraction of the internal tidal energy that is + ! dissipated locally with INT_TIDE_DISSIPATION. + ! THIS NAME COULD BE BETTER. +MIN_ZBOT_ITIDES = 0.0 ! [m] default = 0.0 + ! Turn off internal tidal dissipation when the total + ! ocean depth is less than this value. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +UTIDE = 0.0 ! [m s-1] default = 0.0 + ! The constant tidal amplitude used with INT_TIDE_DISSIPATION. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tideamp.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. + ! Jackson et al find values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the + ! density and shear profiles before solving for the + ! diffusivities. Defaults to value of KD. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the + ! Richardson number in the kappa source term in the + ! Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to + ! stratification (i.e. proportional to N*tke). + ! The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. + ! proportional to |S|*tke). The values found by Jackson + ! et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the + ! kappa equation. The values found by Jackson et al. are + ! in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the + ! buoyancy and shear scales in the diffusivity equation, + ! Set this to 0 (the default) to eliminate the shear scale. + ! This is only used if USE_JACKSON_PARAM is true. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. + ! Iteration stops when changes between subsequent + ! iterations are smaller than this everywhere in a + ! column. The peak diffusivities usually converge most + ! rapidly, and have much smaller errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration + ! of the kappa equation. TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring + ! massive layers in this calculation. The default is + ! true and I can think of no good reason why it should + ! be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! [nondim] default = 13 + ! The maximum number of iterations that may be used to + ! estimate the time-averaged diffusivity. +DEBUG_KAPPA_SHEAR = False ! [Boolean] default = False + ! If true, write debugging data for the kappa-shear code. + ! Caution: this option is _very_ verbose and should only + ! be used in single-column mode! +KAPPA_SHEAR_MERGE_ML = True ! [Boolean] default = True + ! If true, combine the mixed layers together before + ! solving the kappa-shear equations. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +USE_KPP = False ! [Boolean] default = False + ! If true, turns on the [CVmix] KPP scheme of Large et al., 1984, + ! to calculate diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +APPLY_NONLOCAL_TRANSPORT = True ! [Boolean] default = True + ! If True, applies the non-local transport to heat and scalars. + ! If False, calculates the non-local transport and tendencies but + ! purely for diagnostic purposes. +RI_CRIT = 0.3 ! [nondim] default = 0.3 + ! Critical bulk Richardson number used to define depth of the + ! Oceab Boundary Layer (OBL). +VON_KARMAN = 0.4 ! [nondim] default = 0.4 + ! von Karman constant. +INTERP_TYPE = "quadratic" ! default = "quadratic" + ! Type of interpolation to use to determine the OBL depth. + ! Allowed types are: linear, quadratic, cubic. +COMPUTE_EKMAN = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the Ekman depth. +COMPUTE_MONIN_OBUKHOV = False ! [Boolean] default = False + ! If True, limit the OBL depth to be shallower than the + ! Monin-Obukhov depth. +CS = 98.96 ! [nondim] default = 98.96 + ! Parameter for computing velocity scale function. +DEEP_OBL_OFFSET = 0.0 ! [m] default = 0.0 + ! If non-zero, the distance above the bottom to which the OBL is clipped + ! if it would otherwise reach the bottom. The smaller of this and 0.1D is used. +CORRECT_SURFACE_LAYER_AVERAGE = False ! [Boolean] default = False + ! If true, applies a correction step to the averaging of surface layer + ! properties. +FIRST_GUESS_SURFACE_LAYER_DEPTH = 0.0 ! [m] default = 0.0 + ! The first guess at the depth of the surface layer used for averaging + ! the surface layer properties. If =0, the top model level properties + ! will be used for the surface layer. If CORRECT_SURFACE_LAYER_AVERAGE=True, a + ! subsequent correction is applied. +NLT_SHAPE = "CVMIX" ! default = "CVMIX" + ! The shape of the nonlocal transport (or redistribution of surface + ! forcina. Allowed values are: + ! CVMIX - Uses the profile from CVmix + ! LINEAR - A linear profile, 1-sigma + ! PARABOLIC - A paroblic profile, (1-sigma)^2 + ! CUBIC - A cubic profile, (1-sigma)^2(1+2*sigma) + ! CUBIC_LMD - The original KPP profile +KPP_ZERO_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, sets both the diffusivity and viscosity from KPP to zero; for testing. +KPP_IS_ADDITIVE = False ! [Boolean] default = False + ! If true, adds KPP diffusivity to the existing diffusivity. If false, replaces exisiting diffusivity with KPP diffusivity wherever the latter is non-zero. +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +USE_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the diffusive convection scheme that + ! increases diapycnal diffusivities at statically unstable + ! interfaces. Relevant parameters are contained in the + ! CONVECTION% parameter block. +CONVECTION% +PASSIVE = False ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +KD_CONV = 1.0 ! [m2/s] default = 1.0 + ! DIffusivity used in statically unstable regions of column. +%CONVECTION + +! === module MOM_entrain_diffusive === +CORRECT_DENSITY = True ! [Boolean] default = True + ! If true, and USE_EOS is true, the layer densities are + ! restored toward their target values by the diapycnal + ! mixing, as described in Hallberg (MWR, 2000). +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_THICKNESS = 0.1 ! [m] default = 0.1 + ! The thickness over which to apply geothermal heating. +GEOTHERMAL_DRHO_DT_INPLACE = -0.01 ! [kg m-3 K-1] default = -0.01 + ! The value of drho_dT above which geothermal heating + ! simply heats water in place instead of moving it between + ! isopycnal layers. This must be negative. +GEOTHERMAL_VARNAME = "geo_heat" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === module MOM_mixed_layer === +NSTAR = 0.15 ! [nondim] default = 0.15 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +CONV_DECAY = 0.5 ! [nondim] default = 0.5 + ! CONV_DECAY relates the vertical rate of decay of the + ! convectively released TKE available for penetrating + ! entrainment to the natural Ekman length. +NSTAR2 = 0.15 ! [nondim] default = 0.15 + ! The portion of any potential energy released by + ! convective adjustment that is available to drive + ! entrainment at the base of mixed layer. By default + ! NSTAR2=NSTAR. +BULK_RI_CONVECTIVE = 0.05 ! [nondim] default = 0.05 + ! The efficiency with which convectively released mean + ! kinetic energy is converted to turbulent kinetic + ! energy. By default BULK_RI_CONVECTIVE=BULK_RI_ML. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +ALLOWED_DETRAIN_TEMP_CHG = 0.5 ! [K] default = 0.5 + ! The amount by which temperature is allowed to exceed + ! previous values during detrainment. +ALLOWED_DETRAIN_SALT_CHG = 0.1 ! [PSU] default = 0.1 + ! The amount by which salinity is allowed to exceed + ! previous values during detrainment. +ML_DT_DS_WEIGHT = 6.0 ! [degC PSU-1] default = 6.0 + ! When forced to extrapolate T & S to match the layer + ! densities, this factor (in deg C / PSU) is combined + ! with the derivatives of density with T & S to determine + ! what direction is orthogonal to density contours. It + ! should be a typical value of (dR/dS) / (dR/dT) in + ! oceanic profiles. +BUFFER_LAYER_EXTRAP_LIMIT = -1.0 ! [nondim] default = -1.0 + ! A limit on the density range over which extrapolation + ! can occur when detraining from the buffer layers, + ! relative to the density range within the mixed and + ! buffer layers, when the detrainment is going into the + ! lightest interior layer, nondimensional, or a negative + ! value not to apply this limit. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +RESOLVE_EKMAN = False ! [Boolean] default = False + ! If true, the NKML>1 layers in the mixed layer are + ! chosen to optimally represent the impact of the Ekman + ! transport on the mixed layer TKE budget. Otherwise, + ! the sublayers are distributed uniformly through the + ! mixed layer. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the + ! heat carried by runoff, instead of using SST*CP*froz_runoff. +LIMIT_BUFFER_DET_DH_SFC = 0.5 ! [nondim] default = 0.5 + ! The fractional limit in the change between grid points + ! of the surface region (mixed & buffer layer) thickness. +LIMIT_BUFFER_DET_DH_BATHY = 0.2 ! [nondim] default = 0.2 + ! The fraction of the total depth by which the thickness + ! of the surface region (mixed & buffer layer) is allowed + ! to change between grid points. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = False ! [Boolean] default = False + ! If defined, vertically restructure the near-surface + ! layers when they have too much lateral variations to + ! allow for sensible lateral barotropic transports. +REG_SFC_DEFICIT_TOLERANCE = 0.5 ! [nondim] default = 0.5 + ! The value of the relative thickness deficit at which + ! to start modifying the layer structure when + ! REGULARIZE_SURFACE_LAYERS is true. + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll + ! concentrations are translated into opacities. Currently + ! valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation + ! that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is + ! 10 m-1 - a value for muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PLM" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between + ! along isopycnal mxiing of tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use 1 iteration. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +RESTART_CONTROL = 1 ! default = 1 + ! An integer whose bits encode which restart files are + ! written. Add 2 (bit 1) for a time-stamped file, and odd + ! (bit 0) for a non-time-stamped file. A restart file + ! will be saved at the end of the run segment for any + ! non-negative value. +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit for ENERGYSAVEDAYS. +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = True ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = True ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +ICE_SALT_CONCENTRATION = 0.005 ! [kg/kg] default = 0.005 + ! The assumed sea-ice salinity needed to reverse engineer the + ! melt flux (or ice-ocean fresh-water flux). +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +WIND_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +FLUXCONST = 0.5 ! [m day-1] + ! The constant that relates the restoring surface fluxes + ! to the relative surface anomalies (akin to a piston + ! velocity). Note the non-MKS units. +SALT_RESTORE_FILE = "salt_restore.nc" ! default = "salt_restore.nc" + ! A file in which to find the surface salinity to use for restoring. +SALT_RESTORE_VARIABLE = "salt" ! default = "salt" + ! The name of the surface salinity variable to read from SALT_RESTORE_FILE for restoring salinity. +SRESTORE_AS_SFLUX = False ! [Boolean] default = False + ! If true, the restoring of salinity is applied as a salt + ! flux instead of as a freshwater flux. +MAX_DELTA_SRESTORE = 999.0 ! [PSU or g kg-1] default = 999.0 + ! The maximum salinity difference used in restoring terms. +MASK_SRESTORE_UNDER_ICE = False ! [Boolean] default = False + ! If true, use an ice mask defined by frazil criteria to + ! determine where to apply salinity restoring. +MASK_SRESTORE_MARGINAL_SEAS = False ! [Boolean] default = False + ! If true, mask sss restoring in marginal seas. +BASIN_FILE = "basin.nc" ! default = "basin.nc" + ! A file in which to find the basin masks, in variable 'basin'. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_CONST = 0.02 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. +USE_RIGID_SEA_ICE = False ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout + ! when the energy files are written. +MAXTRUNC = 1000000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the + ! model will be stopped if there is more energy than + ! this. If zero or negative, this is set to 10*MAXVEL^2. +ENERGYFILE = "timestats" ! default = "timestats" + ! The file to use to write the energies and globally + ! summed diagnostics. +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or + ! create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the + ! entries in the depth-list file. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in MOM_parameter_doc.short . diff --git a/examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.short b/examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.short new file mode 100644 index 0000000000..73136c1a72 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/MOM_parameter_doc.short @@ -0,0 +1,647 @@ +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = True ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the vertical grid. +NK = 63 ! [nondim] + ! The number of model layers. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. + +! === module MOM === +USE_LEGACY_SPLIT = True ! [Boolean] default = False + ! If true, use the full range of options available from + ! the older GOLD-derived split time stepping code. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. +MIN_Z_DIAG_INTERVAL = 2.16E+04 ! [s] default = 0.0 + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_tracer_registry === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_OCMIP2_CFC = True ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. + +! === module ideal_age_example === + +! === module MOM_OCMIP2_CFC === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! linear - linear based on interfaces not layesrs. + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The file from which the coordinate densities are read. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ALWAYS_WRITE_GEOM = False ! [Boolean] default = True + ! If true, write the geometry and vertical grid files + ! every time the model is run. Otherwise, only write + ! them for new runs. +THICKNESS_CONFIG = "file" ! + ! A string that determines how the initial layer + ! thicknesses are specified for a new run: + ! file - read interface heights from the file specified + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! benchmark - use the benchmark test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +THICKNESS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The name of the thickness file. +ADJUST_THICKNESS = True ! [Boolean] default = False + ! If true, all mass below the bottom removed if the + ! topography is shallower than the thickness input file + ! would indicate. +TS_CONFIG = "file" ! + ! A string that determines how the initial tempertures + ! and salinities are specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! adjustment2d - TBD AJA. + ! sloshing - TBD AJA. + ! seamount - TBD AJA. + ! USER - call a user modified routine. +TS_FILE = "GOLD_IC.2010.11.15.nc" ! + ! The initial condition file for temperature. + +! === module MOM_MEKE === + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the interface depth diffusivity +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +VARMIX_KTOP = 6 ! [nondim] default = 2 + ! The layer number at which to start vertical integration + ! of S*N for purposes of finding the Eady growth rate. +VISBECK_L_SCALE = 3.0E+04 ! [m] default = 0.0 + ! The fixed length scale in the Visbeck formula. + +! === module MOM_wave_speed === +FLUX_BT_COUPLING = True ! [Boolean] default = False + ! If true, use mass fluxes to ensure consistency between + ! the baroclinic and barotropic modes. This is only used + ! if SPLIT is true. +READJUST_BT_TRANS = True ! [Boolean] default = False + ! If true, make a barotropic adjustment to the layer + ! velocities after the thermodynamic part of the step + ! to ensure that the interaction between the thermodynamics + ! and the continuity solver do not change the barotropic + ! transport. This is only used if FLUX_BT_COUPLING and + ! SPLIT are true. +MONOTONIC_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward + ! monotonic limiter. The default (false) is to use a + ! simple positive definite limiter. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used + ! to estimate the Coriolis term, and the one that + ! dissipates energy relative to the other one is used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option is + ! always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +DYNAMIC_VISCOUS_ML = True ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to + ! determine the mixed layer thickness for viscosity. +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_set_visc === +ML_USE_OMEGA = True ! [Boolean] default = False + ! If true, use the absolute rotation rate instead of the + ! vertical component of rotation when setting the decay + ! scale for turbulence. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. +!BT x-halo = 10 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 10 ! + ! The barotropic y-halo size that is actually used. +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding + ! effects of strong bottom drag, by making it implicit + ! with the barotropic time-step instead of implicit with + ! the baroclinic time-step and dividing by the number of + ! barotropic steps. +DT_BT_FILTER = 0.0 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions + ! are filtered, in seconds if positive, or as a fraction + ! of DT if negative. When used this can never be taken to + ! be longer than 2*dt. Set this to 0 to apply no filtering. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = 60.0 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. + +! === module MOM_thickness_diffuse === +KHTH = 10.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_mixed_layer_restrat === +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +Z_OUTPUT_GRID_FILE = "OM3_zgrid.nc" ! default = "" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 50 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind + ! work to penetrate below the base of the mixed layer + ! with a vertical decay scale determined by the minimum + ! of: (1) The depth of the mixed layer, (2) an Ekman + ! length scale. +ML_RAD_COEFF = 0.1 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain + ! the energy available for mixing below the base of the + ! mixed layer. This is only used if ML_RADIATION is true. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 2.0E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +DISSIPATION_N0 = 1.0E-07 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression + ! used to set a minimum dissipation by which to determine + ! a lower bound of Kd (a floor): A in eps_min = A + B*N. +DISSIPATION_N1 = 6.0E-04 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to + ! set a minimum dissipation by which to determine a lower + ! bound of Kd (a floor): B in eps_min = A + B*N +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ +KPP% +%KPP + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === +MAX_ENT_IT = 20 ! default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment. +TOLERANCE_ENT = 1.0E-05 ! [m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. + +! === module MOM_mixed_layer === +BULK_RI_ML = 0.05 ! [nondim] + ! The efficiency with which mean kinetic energy released + ! by mechanically forced entrainment of the mixed layer + ! is converted to turbulent kinetic energy. +ABSORB_ALL_SW = True ! [Boolean] default = False + ! If true, all shortwave radiation is absorbed by the + ! ocean, instead of passing through to the bottom mud. +HMIX_MIN = 2.0 ! [m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically. +LIMIT_BUFFER_DETRAIN = True ! [Boolean] default = False + ! If true, limit the detrainment from the buffer layers + ! to not be too different from the neighbors. +DEPTH_LIMIT_FLUXES = 0.1 ! [m] default = 0.2 + ! The surface fluxes are scaled away when the total ocean + ! depth is less than DEPTH_LIMIT_FLUXES. +ML_RESORT = True ! [Boolean] default = False + ! If true, resort the topmost layers by potential density + ! before the mixed layer calculations. +ML_PRESORT_NK_CONV_ADJ = 4 ! [nondim] default = 0 + ! Convectively mix the first ML_PRESORT_NK_CONV_ADJ + ! layers before sorting when ML_RESORT is true. +CORRECT_ABSORPTION_DEPTH = True ! [Boolean] default = False + ! If true, the depth at which penetrating shortwave + ! radiation is absorbed is corrected by moving some of + ! the heating upward in the water column. +DO_RIVERMIX = True ! [Boolean] default = False + ! If true, apply additional mixing whereever there is + ! runoff, so that it is mixed down to RIVERMIX_DEPTH, + ! if the ocean is that deep. +RIVERMIX_DEPTH = 40.0 ! [m] default = 0.0 + ! The depth to which rivers are mixed if DO_RIVERMIX is + ! defined. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 10.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 3.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over + ! grid-spacing in passivity, where passiviity is the ratio + ! between along isopycnal mxiing of tracers to thickness mixing. + ! A non-zero value enables this parameterization. +DIFFUSE_ML_TO_INTERIOR = True ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface + ! boundary layer and the interior. +ML_KHTR_SCALE = 0.0 ! [nondim] default = 1.0 + ! With Diffuse_ML_interior, the ratio of the truly + ! horizontal diffusivity in the mixed layer to the + ! epipycnal diffusivity. The valid range is 0 to 1. + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +OCEAN_SURFACE_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTORE_SALINITY = True ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. + +! === module MOM_surface_forcing === +MAX_P_SURF = 7.0E+04 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +ADJUST_NET_FRESH_WATER_TO_ZERO = True ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero. +USE_LIMITED_PATM_SSH = False ! [Boolean] default = True + ! If true, return the the sea surface height with the + ! correction for the atmospheric (and sea-ice) pressure + ! limited by max_p_surf instead of the full atmospheric + ! pressure. +FLUXCONST = 0.5 ! [m day-1] + ! The constant that relates the restoring surface fluxes + ! to the relative surface anomalies (akin to a piston + ! velocity). Note the non-MKS units. +CD_TIDES = 0.0025 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from + ! an input file +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in + ! variable gustiness. + +! === module MOM_sum_output === +MAXTRUNC = 1000000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. diff --git a/examples/ocean_SIS2/SIS2_cgrid/SIS.available_diags b/examples/ocean_SIS2/SIS2_cgrid/SIS.available_diags new file mode 100644 index 0000000000..37ec582159 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/SIS.available_diags @@ -0,0 +1,267 @@ +"ice_model", "EXT" [Used] + ! long_name: ice modeled + ! units: 0 or 1 +"ice_model", "MI" [Used] + ! long_name: ice mass + ! units: kg/m^2 +"ice_model", "MIB" [Unused] + ! long_name: ice + bergs mass + ! units: kg/m^2 +"ice_model", "CN" [Used] + ! long_name: ice concentration + ! units: 0-1 +"ice_model", "HS" [Used] + ! long_name: snow thickness + ! units: m-snow +"ice_model", "TSN" [Unused] + ! long_name: snow layer temperature + ! units: C +"ice_model", "HI" [Used] + ! long_name: ice thickness + ! units: m-ice +"ice_model", "HIO" [Unused] + ! long_name: ice thickness + ! units: m-ice +"ice_model", "T1" [Used] + ! long_name: top ice layer temperature + ! units: C +"ice_model", "T2" [Used] + ! long_name: second ice layer temperature + ! units: C +"ice_model", "T3" [Unused] + ! long_name: third ice layer temperature + ! units: C +"ice_model", "T4" [Unused] + ! long_name: bottom ice layer temperature + ! units: C +"ice_model", "TS" [Used] + ! long_name: surface temperature + ! units: C +"ice_model", "SH" [Used] + ! long_name: sensible heat flux + ! units: W/m^2 +"ice_model", "LH" [Used] + ! long_name: latent heat flux + ! units: W/m^2 +"ice_model", "SW" [Used] + ! long_name: short wave heat flux + ! units: W/m^2 +"ice_model", "LW" [Used] + ! long_name: long wave heat flux over ice + ! units: W/m^2 +"ice_model", "SNOWFL" [Used] + ! long_name: rate of snow fall + ! units: kg/(m^2*s) +"ice_model", "RAIN" [Used] + ! long_name: rate of rain fall + ! units: kg/(m^2*s) +"ice_model", "RUNOFF" [Used] + ! long_name: liquid runoff + ! units: kg/(m^2*s) +"ice_model", "CALVING" [Used] + ! long_name: frozen runoff + ! units: kg/(m^2*s) +"ice_model", "RUNOFF_HFLX" [Unused] + ! long_name: liquid runoff sensible heat flux + ! units: W/m^2 +"ice_model", "CALVING_HFLX" [Unused] + ! long_name: frozen runoff sensible heat flux + ! units: W/m^2 +"ice_model", "EVAP" [Unused] + ! long_name: evaporation + ! units: kg/(m^2*s) +"ice_model", "SALTF" [Used] + ! long_name: ice to ocean salt flux + ! units: kg/(m^2*s) +"ice_model", "SN2IC" [Used] + ! long_name: rate of snow to ice conversion + ! units: kg/(m^2*s) +"ice_model", "TMELT" [Used] + ! long_name: upper surface melting energy flux + ! units: W/m^2 +"ice_model", "BMELT" [Used] + ! long_name: bottom surface melting energy flux + ! units: W/m^2 +"ice_model", "BHEAT" [Used] + ! long_name: ocean to ice heat flux + ! units: W/m^2 +"ice_model", "E2MELT" [Unused] + ! long_name: heat needed to melt ice + ! units: J/m^2 +"ice_model", "FRAZIL" [Used] + ! long_name: energy flux of frazil formation + ! units: W/m^2 +"ice_model", "ALB" [Used] + ! long_name: surface albedo + ! units: 0-1 +"ice_model", "coszen" [Unused] + ! long_name: cosine of zenith + ! units: -1:1 +"ice_model", "sw_abs_snow" [Unused] + ! long_name: SW frac. abs. in snow + ! units: 0:1 +"ice_model", "sw_abs_ice1" [Unused] + ! long_name: SW frac. abs. in ice1 + ! units: 0:1 +"ice_model", "sw_abs_ice2" [Unused] + ! long_name: SW frac. abs. in ice2 + ! units: 0:1 +"ice_model", "sw_abs_ice3" [Unused] + ! long_name: SW frac. abs. in ice3 + ! units: 0:1 +"ice_model", "sw_abs_ice4" [Unused] + ! long_name: SW frac. abs. in ice4 + ! units: 0:1 +"ice_model", "sw_pen" [Unused] + ! long_name: SW frac. pen. surf. + ! units: 0:1 +"ice_model", "sw_trn" [Unused] + ! long_name: SW frac. trans. to ice bot. + ! units: 0:1 +"ice_model", "alb_vis_dir" [Unused] + ! long_name: ice surface albedo vis_dir + ! units: 0-1 +"ice_model", "alb_vis_dif" [Unused] + ! long_name: ice surface albedo vis_dif + ! units: 0-1 +"ice_model", "alb_nir_dir" [Unused] + ! long_name: ice surface albedo nir_dir + ! units: 0-1 +"ice_model", "alb_nir_dif" [Unused] + ! long_name: ice surface albedo nir_dif + ! units: 0-1 +"ice_model", "XPRT" [Used] + ! long_name: frozen water transport convergence + ! units: kg/(m^2*yr) +"ice_model", "LSRC" [Used] + ! long_name: frozen water local source + ! units: kg/(m^2*yr) +"ice_model", "LSNK" [Used] + ! long_name: frozen water local sink + ! units: kg/(m^2*yr) +"ice_model", "BSNK" [Used] + ! long_name: frozen water local bottom sink + ! units: kg/(m^2*yr) +"ice_model", "QFLX_RESTORE_ICE" [Unused] + ! long_name: Ice Restoring heat flux + ! units: W/m^2 +"ice_model", "QFLX_LIMIT_ICE" [Unused] + ! long_name: Ice Limit heat flux + ! units: W/m^2 +"ice_model", "STRAIN_ANGLE" [Unused] + ! long_name: strain angle + ! units: none +"ice_model", "FA_X" [Used] + ! long_name: air stress on ice - x component + ! units: Pa +"ice_model", "FA_Y" [Used] + ! long_name: air stress on ice - y component + ! units: Pa +"ice_model", "UO" [Used] + ! long_name: surface current - x component + ! units: m/s +"ice_model", "VO" [Used] + ! long_name: surface current - y component + ! units: m/s +"ice_model", "SW_VIS" [Unused] + ! long_name: visible short wave heat flux + ! units: W/m^2 +"ice_model", "SW_DIR" [Unused] + ! long_name: direct short wave heat flux + ! units: W/m^2 +"ice_model", "SW_DIF" [Unused] + ! long_name: diffuse short wave heat flux + ! units: W/m^2 +"ice_model", "SW_VIS_DIR" [Unused] + ! long_name: visible direct short wave heat flux + ! units: W/m^2 +"ice_model", "SW_VIS_DIF" [Unused] + ! long_name: visible diffuse short wave heat flux + ! units: W/m^2 +"ice_model", "SW_NIR_DIR" [Unused] + ! long_name: near IR direct short wave heat flux + ! units: W/m^2 +"ice_model", "SW_NIR_DIF" [Unused] + ! long_name: near IR diffuse short wave heat flux + ! units: W/m^2 +"ice_model", "SWDN" [Unused] + ! long_name: downward shortwave flux + ! units: W/m^2 +"ice_model", "LWDN" [Unused] + ! long_name: downward longwave flux + ! units: W/m^2 +"ice_model", "TA" [Unused] + ! long_name: surface air temperature + ! units: C +"ice_model", "SLP" [Unused] + ! long_name: sea level pressure + ! units: Pa +"ice_model", "SST" [Used] + ! long_name: sea surface temperature + ! units: deg-C +"ice_model", "SSS" [Used] + ! long_name: sea surface salinity + ! units: psu +"ice_model", "SSH" [Used] + ! long_name: sea surface height + ! units: m +"ice_model", "OBI" [Unused] + ! long_name: ice observed + ! units: 0 or 1 +"ice_model", "SIGI" [Unused] + ! long_name: first stress invariant + ! units: none +"ice_model", "SIGII" [Unused] + ! long_name: second stress invariant + ! units: none +"ice_model", "STRENGTH" [Unused] + ! long_name: ice strength + ! units: Pa*m +"ice_model", "FI_X" [Used] + ! long_name: ice internal stress - x component + ! units: Pa +"ice_model", "FI_Y" [Used] + ! long_name: ice internal stress - y component + ! units: Pa +"ice_model", "FC_X" [Unused] + ! long_name: coriolis force - x component + ! units: Pa +"ice_model", "FC_Y" [Unused] + ! long_name: coriolis force - y component + ! units: Pa +"ice_model", "FW_X" [Unused] + ! long_name: water stress on ice - x component + ! units: Pa +"ice_model", "FW_Y" [Unused] + ! long_name: water stress on ice - y component + ! units: Pa +"ice_model", "UI" [Used] + ! long_name: ice velocity - x component + ! units: m/s +"ice_model", "VI" [Used] + ! long_name: ice velocity - y component + ! units: m/s +"ice_model", "U_STAR" [Unused] + ! long_name: channel transport velocity - x component + ! units: m/s +"ice_model", "V_STAR" [Unused] + ! long_name: channel transport velocity - y component + ! units: m/s +"ice_model", "U_CHAN_OCN" [Unused] + ! long_name: ocean component of channel transport - x + ! units: m/s +"ice_model", "V_CHAN_OCN" [Unused] + ! long_name: ocean component of channel transport - y + ! units: m/s +"ice_model", "U_CHAN_VISC" [Unused] + ! long_name: viscous component of channel transport - x + ! units: m/s +"ice_model", "V_CHAN_VISC" [Unused] + ! long_name: viscous component of channel transport - y + ! units: m/s +"ice_model", "IX_TRANS" [Used] + ! long_name: x-direction ice transport + ! units: kg/s +"ice_model", "IY_TRANS" [Used] + ! long_name: y-direction ice transport + ! units: kg/s diff --git a/examples/ocean_SIS2/SIS2_cgrid/SIS_input b/examples/ocean_SIS2/SIS2_cgrid/SIS_input new file mode 100644 index 0000000000..61c5d80d31 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/SIS_input @@ -0,0 +1,93 @@ +!********+*********+*********+*********+*********+*********+*********+* +!* This file determines the adjustable run-time parameters for the * +!* Sea Ice Simulator (SIS), versions 2 and later. Where * +!* appropriate, MKS units are used. * +!********+*********+*********+*********+*********+*********+*********+* +! >>> Global coupled ice-ocean SIS2 5 layer ice, 63 layer ocean test case. + +! Specify properties of the physical domain. +OMEGA = 7.2921e-5 ! The rotation rate of the earth in s-1. +ROTATION = "2omegasinlat" ! Rotation approximation (2omegasinlat, + ! betaplane or USER). +G_EARTH = 9.80 ! G_EARTH is the Earth's gravitational + ! acceleration, in m s-2. +GRID_CONFIG = "mosaic" ! Method for defining horizontal grid + ! = file|cartesian|spherical|mercator + ! file - read grid from file "GRID_FILE" + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +GRID_FILE = "ocean_hgrid.nc" + ! Name of file to read horizontal grid data +INPUTDIR = "INPUT" + ! INPUTDIR is a directory in which NetCDF + ! input files might be found. + +CGRID_ICE_DYNAMICS = True ! If true, use a C-grid discretization of the + ! sea-ice dynamics; if false use a B-grid + ! discretization. + +! Specify the numerical domain. +NIGLOBAL = 360 ! NIGLOBAL and NJGLOBAL are the number of thickness +NJGLOBAL = 210 ! grid points in the zonal and meridional + ! directions of the physical domain. +NK = 63 ! The number of layers. +NCAT_ICE = 5 ! The number of sea ice thickness categories. +NIHALO = 2 ! NIHALO and NJHALO are the number of halo +NJHALO = 2 ! points on each side in the x- and y-directions. + ! If static memory allocation is used, these + ! must match the values of NIHALO_ and NJHALO_ + ! in MOM_memory.h. +NIPROC_IO = 1 ! The number of processors used for I/O in the + ! x-direction, or 0 to equal NIPROC. NIPROC_IO + ! must be a factor of NIPROC. +NJPROC_IO = 1 ! The number of processors used for I/O in the + ! y-direction, or 0 to equal NJPROC. NJPROC_IO + ! must be a factor of NJPROC. + +REENTRANT_X = True ! If defined, the domain is zonally reentrant. +REENTRANT_Y = False ! If defined, the domain is meridionally + ! reentrant. +TRIPOLAR_N = True ! Use tripolar connectivity at the northern + ! edge of the domain. With TRIPOLAR_N, NIGLOBAL + ! must be even. + +DEBUG = False ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! If true, calculate all diagnostics that are + ! useful for debugging truncations. +SEND_LOG_TO_STDOUT = False ! If true write out log information to stdout. + +! Specify the time integration scheme for the ice dynamics. +NSTEPS_DYN = 72 ! The number of iterations in the EVP dynamics + ! for each slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! The damping timescale associated with the + ! elastic terms in the sea-ice dynamics. + +! Specify the ice properties. +ICE_STRENGTH_PSTAR = 2.75e4 ! ICE_STRENGTH_PSTAR is a constant in the + ! expression for the ice strength, P* in + ! Hunke & Dukowics '97, in Pa. +RHO_OCEAN = 1030.0 ! RHO_OCEAN is used in the Boussinesq + ! approximation to calculations of pressure and + ! pressure gradients, in units of kg m-3. +RHO_ICE = 905.0 ! RHO_ICE is the nominal density of sea ice + ! used in SIS, in units of kg m-3. +RHO_SNOW = 330.0 ! RHO_SNOW is the nominal density of snow + ! used in SIS, in units of kg m-3. +C_P_ICE = 2100.0 ! C_P_ICE is the heat capacity of fresh ice + ! in J kg-1 K-1, approximated as a constant. +C_P = 3925.0 ! C_P is the heat capacity of sea water in + ! J kg-1 K-1, approximated as a constant. +SNOW_ALBEDO = 0.88 ! The albedo of dry snow atop sea ice, ND. +ICE_ALBEDO = 0.68 ! The albedo of dry bare sea ice, ND. +ICE_BULK_SALINITY = 0.005 ! The fixed bulk salinity of sea ice, in kg/kg. + +! Specify the properties of the surface forcing. +WIND_STAGGER = "B" ! "A", "B", or "C" to indicate the + ! staggering of the wind stresses between the + ! sea ice and ocean. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. diff --git a/examples/ocean_SIS2/SIS2_cgrid/SIS_override b/examples/ocean_SIS2/SIS2_cgrid/SIS_override new file mode 100644 index 0000000000..8244328586 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/SIS_override @@ -0,0 +1 @@ +# Blank file in which we can put "overrides" for parameters diff --git a/examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.all b/examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.all new file mode 100644 index 0000000000..1ae2e0981e --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.all @@ -0,0 +1,251 @@ +SPECIFIED_ICE = False ! [Boolean] default = False + ! If true, the ice is specified and there is no dynamics. +CGRID_ICE_DYNAMICS = True ! [Boolean] default = False + ! If true, use a C-grid discretization of the sea-ice + ! dynamics; if false use a B-grid discretization. +USE_SLAB_ICE = False ! [Boolean] default = False + ! If true, use the very old slab-style ice. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RHO_OCEAN = 1030.0 ! [kg m-3] default = 1030.0 + ! The nominal density of sea water as used by SIS. +RHO_ICE = 905.0 ! [kg m-3] default = 905.0 + ! The nominal density of sea ice as used by SIS. +RHO_SNOW = 330.0 ! [kg m-3] default = 330.0 + ! The nominal density of snow as used by SIS. +MOMENTUM_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default momentum roughness length scale for the ocean. +HEAT_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default roughness length scale for the turbulent + ! transfer of heat into the ocean. +ICE_KMELT = 240.0 ! [W m-2 K-1] default = 240.0 + ! A constant giving the proportionality of the ocean/ice + ! base heat flux to the tempature difference, given by + ! the product of the heat capacity per unit volume of sea + ! water times a molecular diffusive piston velocity. +SNOW_CONDUCT = 0.31 ! [W m-1 K-1] default = 0.31 + ! The conductivity of heat in snow. +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_SW_PEN_FRAC = 0.3 ! [Nondimensional] default = 0.3 + ! The fraction of the unreflected shortwave radiation that + ! penetrates into the ice. +ICE_OPTICAL_DEPTH = 0.67 ! [m] default = 0.67 + ! The optical depth of shortwave radiation in sea ice. +ALBEDO_T_MELT_RANGE = 1.0 ! [degC] default = 1.0 + ! The temperature range below freezing over which the + ! albedos are changed by partial melting. +ICE_CONSERVATION_CHECK = True ! [Boolean] default = True + ! If true, do additional calculations to check for + ! internal conservation of heat, salt, and water mass in + ! the sea ice model. This does not change answers, but + ! can increase model run time. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +ICE_SEES_ATMOS_WINDS = True ! [Boolean] default = True + ! If true, the sea ice is being given wind stresses with + ! the atmospheric sign convention, and need to have their + ! sign changed. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +DO_ICE_RESTORE = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_ICE_LIMIT = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +APPLY_SLP_TO_OCEAN = False ! [Boolean] default = False + ! If true, apply the atmospheric sea level pressure to + ! the ocean. +MIN_H_FOR_TEMP_CALC = 0.0 ! [m] default = 0.0 + ! The minimum ice thickness at which to do temperature + ! calculations. +VERBOSE = False ! [Boolean] default = False + ! If true, write out verbose diagnostics. +DO_ICEBERGS = False ! [Boolean] default = False + ! If true, call the iceberg module. +ADD_DIURNAL_SW = False ! [Boolean] default = False + ! If true, add a synthetic diurnal cycle to the shortwave + ! radiation. +DO_SUN_ANGLE_FOR_ALB = False ! [Boolean] default = False + ! If true, find the sun angle for calculating the ocean + ! albedo within the sea ice model. +DO_DELTA_EDDINGTON_SW = True ! [Boolean] default = True + ! If true, a delta-Eddington radiative transfer calculation + ! for the shortwave radiation within the sea-ice. +ICE_DELTA_EDD_R_ICE = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of sea ice with the delta-Eddington radiative + ! transfer calculation. +ICE_DELTA_EDD_R_SNOW = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of snow on sea ice with the delta-Eddington + ! radiative transfer calculation. +ICE_DELTA_EDD_R_POND = 0.0 ! [perhaps nondimensional?] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative + ! propeties of meltwater ponds on sea ice with the delta-Eddington + ! radiative transfer calculation. +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in SIS2_memory.h (if defined) or 2. +NJHALO = 2 ! default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in SIS2_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in SIS2_memory.h (if defined) or 2. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. + ! This feature masks out processors that contain only land points. + ! The first line of mask_table is the number of regions to be masked out. + ! The second line is the layout of the model and must be + ! consistent with the actual model layout. + ! The following (n_mask) lines give the logical positions + ! of the processors that are masked out. The mask_table + ! can be created by tools like check_mask. The + ! following example of mask_table masks out 2 processors, + ! (1,2) and (3,6), out of the 24 in a 4x6 layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +LAYOUT = 0, 0 ! default = 0 + ! The processor layout to be used, or 0, 0 to automatically + ! set the layout based on the number of processors. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so + ! that corresponding points on different processors have + ! the same index. This does not work with static memory. +NCAT_ICE = 5 ! [nondim] default = 5 + ! The number of sea ice thickness categories. +NK_ICE = 4 ! [nondim] default = 4 + ! The number of layers within the sea ice. +NK_SNOW = 1 ! [nondim] default = 1 + ! The number of layers within the snow atop the sea ice. +SET_GRID_LIKE_SIS1 = False ! [Boolean] default = False + ! If true, use SIS1 code to set the grid values. Otherwise + ! use code derived from MOM6. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +AVAILABLE_DIAGS_FILE = "SIS.available_diags" ! default = "SIS.available_diags" + ! A file into which to write a list of all available + ! ocean diagnostics that can be included in a diag_table. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! [s] default = 0.0 + ! The damping timescale associated with the elastic terms + ! in the sea-ice dynamics equations. +WEAK_LOW_SHEAR_ICE = False ! [Boolean] default = False + ! If true, the divergent stresses go toward 0 in the C-grid + ! dynamics when the shear magnitudes are very weak. + ! Otherwise they go to -P_ice. This setting is temporary. +ICE_YEILD_ELLIPTICITY = 2.0 ! [Nondim] default = 2.0 + ! The ellipticity coefficient for the plastic yeild curve + ! in the sea-ice rheology. For an infinite ellipticity + ! (i.e., a cavitating fluid rheology), use 0. +ICE_STRENGTH_PSTAR = 2.75E+04 ! [Pa] default = 2.75E+04 + ! A constant in the expression for the ice strength, + ! P* in Hunke & Dukowicz 1997. +ICE_STRENGTH_CSTAR = 20.0 ! [nondim] default = 20.0 + ! A constant in the exponent of the expression for the + ! ice strength, c* in Hunke & Dukowicz 1997. +ICE_CDRAG_WATER = 0.00324 ! [nondim] default = 0.00324 + ! The drag coefficient between the sea ice and water. +ICE_DEL_SH_MIN_SCALE = 2.0 ! [nondim] default = 2.0 + ! A scaling factor for the lower bound on the shear rates + ! used in the denominator of the stress calculation. This + ! probably needs to be greater than 1. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points. +NSTEPS_ADV = 1 ! default = 1 + ! The number of advective iterations for each slow time + ! step. +ICE_CHANNEL_VISCOSITY = 0.0 ! [m2 s-1] default = 0.0 + ! A viscosity used in one-cell wide channels to + ! parameterize transport, especially with B-grid sea ice + ! coupled to a C-grid ocean model. +ICE_CHANNEL_SMAG_COEF = 0.15 ! [Nondim] default = 0.15 + ! A Smagorinsky coefficient for viscosity in channels. +ICE_CHANNEL_CFL_LIMIT = 0.25 ! [Nondim] default = 0.25 + ! The CFL limit that is applied to the parameterized + ! viscous transport in single-point channels. +SIS1_ICE_TRANSPORT = True ! [Boolean] default = True + ! If true, use SIS1 code to solve the ice continuity + ! equation and transport tracers. +CHECK_ICE_TRANSPORT_CONSERVATION = False ! [Boolean] default = False + ! If true, use add multiple diagnostics of ice and snow + ! mass conservation in the sea-ice transport code. This + ! is expensive and should be used sparingly. +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +REPORT_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, report any parameter lines that are not used + ! in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused + ! parameters. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are + ! documented in SIS_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are + ! documented in SIS_parameter_doc.short . diff --git a/examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.short b/examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.short new file mode 100644 index 0000000000..22e7658529 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/SIS_parameter_doc.short @@ -0,0 +1,70 @@ +CGRID_ICE_DYNAMICS = True ! [Boolean] default = False + ! If true, use a C-grid discretization of the sea-ice + ! dynamics; if false use a B-grid discretization. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "B" + ! A case-insensitive character string to indicate the + ! staggering of the stress field on the ocean that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +SNOW_ALBEDO = 0.88 ! [nondim] default = 0.85 + ! The albedo of dry snow atop sea ice. +ICE_ALBEDO = 0.68 ! [nondim] default = 0.5826 + ! The albedo of dry bare sea ice. +ICE_BULK_SALINITY = 0.005 ! [kg/kg] default = 0.004 + ! The fixed bulk salinity of sea ice. +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes + ! every face of the thickness points. In other words, + ! some arrays are larger than others, depending on where + ! they are on the staggered grid. Also, the starting + ! index of the velocity-point arrays is usually 0, not 1. + ! This can only be set at compile time. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables + ! will have sizes that are statically determined at + ! compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially + ! faster, but does not allow the PE count to be changed + ! at run time. This can only be set at compile time. +NIGLOBAL = 360 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 210 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +!NIPROC = 10 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!NJPROC = 6 ! + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +!LAYOUT = 10, 6 ! + ! The processor layout that was acutally used. +IO_LAYOUT = 1, 1 ! default = 0 + ! The processor layout to be used, or 0,0 to automatically + ! set the io_layout to be the same as the layout. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +GRID_CONFIG = "mosaic" ! + ! The method for defining the horizontal grid. Valid + ! entries include: + ! file - read the grid from GRID_FILE + ! mosaic - read the grid from a mosaic grid file + ! cartesian - a Cartesian grid + ! spherical - a spherical grid + ! mercator - a Mercator grid +NSTEPS_DYN = 72 ! default = 432 + ! The number of iterations in the EVP dynamics for each + ! slow time step. +ICE_TDAMP_ELASTIC = 1000.0 ! [s] default = 0.0 + ! The damping timescale associated with the elastic terms + ! in the sea-ice dynamics equations. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their + ! settings, units and defaults are documented. Blank will + ! disable all parameter documentation. diff --git a/examples/ocean_SIS2/SIS2_cgrid/data_table b/examples/ocean_SIS2/SIS2_cgrid/data_table new file mode 100644 index 0000000000..eb564ee012 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/data_table @@ -0,0 +1,49 @@ +"ATM", "cfc_11_flux_pcair_atm","CFC_11","INPUT/cfc.bc.nc",.false., 1.0e-12 +"ATM", "cfc_12_flux_pcair_atm","CFC_12","INPUT/cfc.bc.nc",.false., 1.0e-12 +"ATM" , "p_surf" , "SLP" , "./INPUT/slp.clim.nc" , .false. , 1.0 +"ATM" , "p_bot" , "SLP" , "./INPUT/slp.clim.nc" , .false. , 1.0 +"ATM" , "t_bot" , "T_10_MOD" , "./INPUT/t_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "sphum_bot" , "Q_10_MOD" , "./INPUT/q_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "u_bot" , "U_10_MOD" , "./INPUT/u_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "v_bot" , "V_10_MOD" , "./INPUT/v_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "z_bot" , "" , "" , .false. , 10.0 +"ATM" , "gust" , "" , "" , .false. , 0.0 +"ICE" , "lw_flux_dn" , "LWDN_MOD" , "./INPUT/ncar_rad_clim.nc" , .false. , 1.0 +"ICE" , "sw_flux_vis_dir_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.285 +"ICE" , "sw_flux_vis_dif_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.285 +"ICE" , "sw_flux_nir_dir_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.215 +"ICE" , "sw_flux_nir_dif_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.215 +"ICE" , "lprec" , "RAIN" , "./INPUT/ncar_precip_clim.nc" , .false. , 0.9933 +"ICE" , "fprec" , "SNOW" , "./INPUT/ncar_precip_clim.nc" , .false. , 0.9933 +"ICE" , "runoff" , "runoff" , "./INPUT/runoff.nc" , .true. , 1.0 +"ICE" , "calving" , "" , "" , .true. , 0.0 +"ICE" , "dhdt" , "" , "" , .true. , 80.0 +"ICE" , "dedt" , "" , "" , .true. , 2.0e-6 +"ICE" , "drdt" , "" , "" , .true. , 10.0 +"ICE", "sic_obs" , "SIC" ,"./INPUT/sst_ice_clim.nc" , .false. , 0.00 +"ICE", "sit_obs" , "SIT" ,"./INPUT/sst_ice_clim.nc" , .false. , 0.00 +"ICE", "sst_obs" , "SST" ,"./INPUT/sst_ice_clim.nc" , .false. , 1.0 +"LND" , "t_surf" , "" , "" , .true. , 273.0 +"LND" , "t_ca" , "" , "" , .true. , 273.0 +"LND" , "q_ca" , "" , "" , .true. , 0.0 +"LND" , "rough_mom" , "" , "" , .true. , 0.01 +"LND" , "rough_heat" , "" , "" , .true. , 0.1 +"LND" , "albedo" , "" , "" , .true. , 0.1 +"LND" , "t_ca" , "" , "" , .true. , 273.0 +"LND" , "t_surf" , "" , "" , .true. , 273.0 +"LND" , "sphum_surf" , "" , "" , .true. , 0.0 +"LND" , "sphum_ca" , "" , "" , .true. , 0.0 +"LND" , "t_flux" , "" , "" , .true. , 0.0 +"LND" , "sphum_flux" , "" , "" , .true. , 0.0 +"LND" , "lw_flux" , "" , "" , .true. , 0.0 +"LND" , "sw_flux" , "" , "" , .true. , 0.0 +"LND" , "lprec" , "" , "" , .true. , 0.0 +"LND" , "fprec" , "" , "" , .true. , 0.0 +"LND" , "dhdt" , "" , "" , .true. , 5.0 +"LND" , "dedt" , "" , "" , .true. , 2e-6 +"LND" , "dedq" , "" , "" , .true. , 0.0 +"LND" , "drdt" , "" , "" , .true. , 5.0 +"LND" , "drag_q" , "" , "" , .true. , 0.0 +"LND" , "p_surf" , "" , "" , .true. , 1.e5 + + diff --git a/examples/ocean_SIS2/SIS2_cgrid/diag_table b/examples/ocean_SIS2/SIS2_cgrid/diag_table new file mode 100644 index 0000000000..be587e6925 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/diag_table @@ -0,0 +1,367 @@ +GOLD_SIS +1 1 1 0 0 0 +#output files +# "ice_month", 1, "months", 1, "days", "time", +# "ocean_month", 1, "months", 1, "days", "time", +# "ocean_month_z", 1, "months", 1, "days", "time", +# "flux_month", 1, "months", 1, "days", "time" + +"ice_month", 1, "days", 1, "days", "time", +"ice_state", 1, "days", 1, "days", "time", +# "ice_hf", 5, "minutes", 1, "days", "time", +"ocean_month", 1, "days", 1, "days", "time", +"ocean_sfc", 1, "days", 1, "days", "time", +"ocean_month_z", 1, "days", 1, "days", "time", +# "flux_month", 5, "days", 1, "days", "time" +"ocean_static", -1, "months", 1, "days", "time", +#"ocean_scalar", 1, "months", 1, "days", "time" +# +#output variables +# +# OCEAN DIAGNOSTICS: +#=================== +#=================== +# +# Surface Ocean fields: +#========================= +"ocean_model","SSH","SSH","ocean_sfc","all",.false.,"none",2 +"ocean_model","SSU","SSU","ocean_sfc","all",.false.,"none",2 +"ocean_model","SSV","SSV","ocean_sfc","all",.false.,"none",2 +"ocean_model","SST","SST","ocean_sfc","all",.false.,"none",2 +"ocean_model","SSS","SSS","ocean_sfc","all",.false.,"none",2 +"ocean_model","speed","speed","ocean_sfc","all",.false.,"none",2 + +# Prognostic Ocean fields: +#========================= +"ocean_model","u","u","ocean_month","all",.true.,"none",2 +"ocean_model","v","v","ocean_month","all",.true.,"none",2 +"ocean_model","h","h","ocean_month","all",.true.,"none",1 +"ocean_model","e","e","ocean_month","all",.true.,"none",2 +"ocean_model","temp","temp","ocean_month","all",.true.,"none",2 +"ocean_model","salt","salt","ocean_month","all",.true.,"none",2 +#"ocean_model","e","e","ocean_daily","all",.false.,"none",2 +# +# Auxilary Tracers: +#================== +#"ocean_model","vintage","vintage","ocean_month","all",.true.,"none",2 +#"ocean_model","age","age","ocean_month","all",.true.,"none",2 +# +# Z-space fields: +#================== +"ocean_model","u_z","u","ocean_month_z","all",.true.,"none",2 +"ocean_model","v_z","v","ocean_month_z","all",.true.,"none",2 +"ocean_model","temp_z","temp","ocean_month_z","all",.true.,"none",2 +"ocean_model","salt_z","salt","ocean_month_z","all",.true.,"none",2 +#"ocean_model","vintage_z","vintage","ocean_month_z","all",.true.,"none",2 +"ocean_model","age_z","age","ocean_month_z","all",.true.,"none",2 + +# Continuity Equation Terms: +#=========================== +#"ocean_model","wd","wd","ocean_month","all",.true.,"none",2 +"ocean_model","uh","uh","ocean_month","all",.true.,"none",2 +"ocean_model","vh","vh","ocean_month","all",.true.,"none",2 +#"ocean_model","h_rho","h_rho","ocean_month","all",.true.,"none",2 +#"ocean_model","uh_rho","uh_rho","ocean_month","all",.true.,"none",2 +#"ocean_model","vh_rho","vh_rho","ocean_month","all",.true.,"none",2 +#"ocean_model","uhGM_rho","uhGM_rho","ocean_month","all",.true.,"none",2 +#"ocean_model","vhGM_rho","vhGM_rho","ocean_month","all",.true.,"none",2 +"ocean_model","GMwork","GMwork","ocean_month","all",.true.,"none",2 +# +# Mixed Layer TKE Budget Terms: +#=========================== +#"ocean_model","TKE_wind","TKE_wind","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_RiBulk","TKE_RiBulk","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_conv","TKE_conv","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_pen_SW","TKE_pen_SW","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_mixing","TKE_mixing","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_mech_decay","TKE_mech_decay","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_conv_decay","TKE_conv_decay","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_conv_s2","TKE_conv_s2","ocean_month","all",.true.,"none",2 +#"ocean_model","TKE_tidal","TKE_tidal","ocean_month","all",.true.,"none",2 +#"ocean_model","h_ML","h_ML","ocean_month","all",.true.,"none",2 +#"ocean_model","Kd_effective","Kd_effective","ocean_month","all",.true.,"none",2 +# +# Tracer Fluxes: +#================== +#"ocean_model","T_adx", "T_adx", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","T_ady", "T_ady", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","T_diffx","T_diffx","ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","T_diffy","T_diffy","ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_adx", "S_adx", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_ady", "S_ady", "ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_diffx","S_diffx","ave_prog_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","S_diffy","S_diffy","ave_prog_%4yr_%3dy","all",.true.,"none",2 + + +# Momentum Balance Terms: +#======================= +#"ocean_model","dudt","dudt","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt","dvdt","ocean_month","all",.true.,"none",2 +#"ocean_model","CAu","CAu","ocean_month","all",.true.,"none",2 +#"ocean_model","CAv","CAv","ocean_month","all",.true.,"none",2 +#"ocean_model","PFu","PFu","ocean_month","all",.true.,"none",2 +#"ocean_model","PFv","PFv","ocean_month","all",.true.,"none",2 +#"ocean_model","du_dt_visc","du_dt_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","dv_dt_visc","dv_dt_visc","ocean_month","all",.true.,"none",2 +#"ocean_model","diffu","diffu","ocean_month","all",.true.,"none",2 +#"ocean_model","diffv","diffv","ocean_month","all",.true.,"none",2 +#"ocean_model","dudt_dia","dudt_dia","ocean_month","all",.true.,"none",2 +#"ocean_model","dvdt_dia","dvdt_dia","ocean_month","all",.true.,"none",2 +# Subterms that should not be added to a closed budget. +#"ocean_model","gKEu","gKEu","ocean_month","all",.true.,"none",2 +#"ocean_model","gKEv","gKEv","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxu","rvxu","ocean_month","all",.true.,"none",2 +#"ocean_model","rvxv","rvxv","ocean_month","all",.true.,"none",2 +#"ocean_model","PFu_bc","PFu_bc","ocean_month","all",.true.,"none",2 +#"ocean_model","PFv_bc","PFv_bc","ocean_month","all",.true.,"none",2 + +# Barotropic Momentum Balance Terms: +# (only available with split time stepping.) +#=========================================== +#"ocean_model","PFuBT","PFuBT","ocean_month","all",.true.,"none",2 +#"ocean_model","PFvBT","PFvBT","ocean_month","all",.true.,"none",2 +#"ocean_model","CoruBT","CoruBT","ocean_month","all",.true.,"none",2 +#"ocean_model","CorvBT","CorvBT","ocean_month","all",.true.,"none",2 +#"ocean_model","ubtforce","ubtforce","ocean_month","all",.true.,"none",2 +#"ocean_model","vbtforce","vbtforce","ocean_month","all",.true.,"none",2 +#"ocean_model","u_accel_bt","u_accel_bt","ocean_month","all",.true.,"none",2 +#"ocean_model","v_accel_bt","v_accel_bt","ocean_month","all",.true.,"none",2 +# +# Viscosities and diffusivities: +#=============================== +#"ocean_model","Kd","Kd","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Ahh","Ahh","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Ahq","Ahq","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Khh","Khh","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","Khq","Khq","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","bbl_thick_u","bbl_thick_u","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","kv_bbl_u","kv_bbl_u","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","bbl_thick_v","bbl_thick_v","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","kv_bbl_v","kv_bbl_v","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","av_visc","av_visc","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","au_visc","au_visc","visc_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","FrictWork","FrictWork","ocean_month","all",.true.,"none",2 +#"ocean_model","SN_u","SN_u","ocean_month","all",.true.,"none",2 +#"ocean_model","SN_v","SN_v","ocean_month","all",.true.,"none",2 +#"ocean_model","NH","NH","ocean_month","all",.true.,"none",2 +#"ocean_model","Ld","Ld","ocean_month","all",.true.,"none",2 +#"ocean_model","Le","Le","ocean_month","all",.true.,"none",2 +#"ocean_model","L2u","L2u","ocean_month","all",.true.,"none",2 +#"ocean_model","L2v","L2v","ocean_month","all",.true.,"none",2 +#"ocean_model","S2u","S2u","ocean_month","all",.true.,"none",2 +#"ocean_model","S2v","S2v","ocean_month","all",.true.,"none",2 +#"ocean_model","eff_beta","eff_beta","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_u","KHTH_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTH_v","KHTH_v","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_u","KHTR_u","ocean_month","all",.true.,"none",2 +"ocean_model","KHTR_v","KHTR_v","ocean_month","all",.true.,"none",2 + +# MEKE: +#====== +# "ocean_model","MEKE","MEKE","ocean_month","all",.true.,"none",2 +# "ocean_model","MEKE_src","MEKE_src","ocean_month","all",.true.,"none",2 +# "ocean_model","MEKE_Kh","MEKE_Kh","ocean_month","all",.true.,"none",2 +# +# Kinetic Energy Balance Terms: +#============================= +#"ocean_model","KE","KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","dKE_dt","dKE_dt","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","PE_to_KE","PE_to_KE","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_Coradv","KE_Coradv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_adv","KE_adv","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_visc","KE_visc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_horvisc","KE_horvisc","energy_%4yr_%3dy","all",.true.,"none",2 +#"ocean_model","KE_dia","KE_dia","energy_%4yr_%3dy","all",.true.,"none",2 +# +# Surface Forcing: +#================= +"ocean_model","taux", "taux", "ocean_month","all",.true.,"none",2 +"ocean_model","tauy", "tauy", "ocean_month","all",.true.,"none",2 +"ocean_model","ustar", "ustar", "ocean_month","all",.true.,"none",2 +"ocean_model","PmE", "PmE", "ocean_month","all",.true.,"none",2 +"ocean_model","SW", "SW", "ocean_month","all",.true.,"none",2 +"ocean_model","LwLatSens","LwLatSens","ocean_month","all",.true.,"none",2 +"ocean_model","p_surf", "p_surf", "ocean_month","all",.true.,"none",2 +"ocean_model","salt_flux","salt_flux","ocean_month","all",.true.,"none",2 + +# Static ocean fields: +#===================== +"ocean_model", "geolon", "geolon", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat", "geolat", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolon_c", "geolon_c", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat_c", "geolat_c", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolon_u", "geolon_u", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat_u", "geolat_u", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolon_v", "geolon_v", "ocean_static", "all", .false., "none", 2 +"ocean_model", "geolat_v", "geolat_v", "ocean_static", "all", .false., "none", 2 +"ocean_model", "area_t", "area_t", "ocean_static", "all", .false., "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet", "wet", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet_c", "wet_c", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet_u", "wet_u", "ocean_static", "all", .false., "none", 2 +"ocean_model", "wet_v", "wet_v", "ocean_static", "all", .false., "none", 2 +"ocean_model", "Coriolis", "Coriolis", "ocean_static", "all", .false., "none", 2 + +# +# ICE DIAGNOSTICS: +#================= +#================= +"ice_model", "FRAZIL", "FRAZIL", "ice_month", "all", .true., "none", 2, +"ice_model", "HI", "HI", "ice_month", "all", .true., "none", 2, +"ice_model", "HS", "HS", "ice_month", "all", .true., "none", 2, +"ice_model", "TS", "TS", "ice_month", "all", .true., "none", 2, +"ice_model", "T1", "T1", "ice_month", "all", .true., "none", 2, +"ice_model", "T2", "T2", "ice_month", "all", .true., "none", 2, +"ice_model", "CN", "CN", "ice_month", "all", .true., "none", 2, +"ice_model", "EXT", "EXT", "ice_month", "all", .true., "none", 2, +"ice_model", "MI", "MI", "ice_month", "all", .true., "none", 2, +"ice_model", "XPRT", "XPRT", "ice_month", "all", .true., "none", 2, +"ice_model", "LSRC", "LSRC", "ice_month", "all", .true., "none", 2, +"ice_model", "LSNK", "LSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "BSNK", "BSNK", "ice_month", "all", .true., "none", 2, +"ice_model", "SN2IC", "SN2IC", "ice_month", "all", .true., "none", 2, +"ice_model", "ALB", "ALB", "ice_month", "all", .true., "none", 2, +"ice_model", "SW", "SW", "ice_month", "all", .true., "none", 2, +"ice_model", "LW", "LW", "ice_month", "all", .true., "none", 2, +"ice_model", "SH", "SH", "ice_month", "all", .true., "none", 2, +"ice_model", "LH", "LH", "ice_month", "all", .true., "none", 2, +"ice_model", "TMELT", "TMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BMELT", "BMELT", "ice_month", "all", .true., "none", 2, +"ice_model", "BHEAT", "BHEAT", "ice_month", "all", .true., "none", 2, +"ice_model", "UI", "UI", "ice_month", "all", .true., "none", 2, +"ice_model", "VI", "VI", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_X", "FA_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FA_Y", "FA_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_X", "FI_X", "ice_month", "all", .true., "none", 2, +"ice_model", "FI_Y", "FI_Y", "ice_month", "all", .true., "none", 2, +"ice_model", "SST", "SST", "ice_month", "all", .true., "none", 2, +"ice_model", "SSS", "SSS", "ice_month", "all", .true., "none", 2, +"ice_model", "SSH", "SSH", "ice_month", "all", .true., "none", 2, +"ice_model", "UO", "UO", "ice_month", "all", .true., "none", 2, +"ice_model", "VO", "VO", "ice_month", "all", .true., "none", 2, +"ice_model", "SNOWFL", "SNOWFL", "ice_month", "all", .true., "none", 2, +"ice_model", "RAIN", "RAIN", "ice_month", "all", .true., "none", 2, +"ice_model", "CALVING", "CALVING", "ice_month", "all", .true., "none", 2, +"ice_model", "RUNOFF", "RUNOFF", "ice_month", "all", .true., "none", 2, +"ice_model", "CELL_AREA", "CELL_AREA", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLON", "GEOLON", "ice_month", "all", .false., "none", 2, +"ice_model", "GEOLAT", "GEOLAT", "ice_month", "all", .false., "none", 2, +"ice_model", "SINROT", "SINROT", "ice_month", "all", .false., "none", 2, +"ice_model", "COSROT", "COSROT", "ice_month", "all", .false., "none", 2, +"ice_model", "SALTF", "SALTF", "ice_month", "all", .true., "none", 2, +"ice_model", "IX_TRANS", "IX_TRANS", "ice_month", "all", .true., "none", 2, +"ice_model", "IY_TRANS", "IY_TRANS", "ice_month", "all", .true., "none", 2, + +"ice_model", "MI", "MI", "ice_state", "all", .false., "none", 2, +"ice_model", "UI", "UI", "ice_state", "all", .false., "none", 2, +"ice_model", "VI", "VI", "ice_state", "all", .false., "none", 2, +"ice_model", "FA_X", "FA_X", "ice_state", "all", .false., "none", 2, +"ice_model", "FA_Y", "FA_Y", "ice_state", "all", .false., "none", 2, +"ice_model", "FI_X", "FI_X", "ice_state", "all", .false., "none", 2, +"ice_model", "FI_Y", "FI_Y", "ice_state", "all", .false., "none", 2, +"ice_model", "FC_X", "FC_X", "ice_state", "all", .false., "none", 2, +"ice_model", "FC_Y", "FC_Y", "ice_state", "all", .false., "none", 2, +"ice_model", "FP_X", "FP_X", "ice_state", "all", .false., "none", 2, +"ice_model", "FP_Y", "FP_Y", "ice_state", "all", .false., "none", 2, +"ice_model", "FW_X", "FW_X", "ice_state", "all", .false., "none", 2, +"ice_model", "FW_Y", "FW_Y", "ice_state", "all", .false., "none", 2, +"ice_model", "STRENGTH", "STRENGTH", "ice_state", "all", .false., "none", 2, +"ice_model", "SIGI", "SIGI", "ice_state", "all", .false., "none", 2, +"ice_model", "SIGII", "SIGII", "ice_state", "all", .false., "none", 2, +"ice_model", "str_d", "str_d", "ice_state", "all", .false., "none", 2, +"ice_model", "str_t", "str_t", "ice_state", "all", .false., "none", 2, +"ice_model", "str_s", "str_s", "ice_state", "all", .false., "none", 2, + +"ice_model", "sh_d", "sh_d", "ice_state", "all", .false., "none", 2, +"ice_model", "sh_t", "sh_t", "ice_state", "all", .false., "none", 2, +"ice_model", "sh_s", "sh_s", "ice_state", "all", .false., "none", 2, +"ice_model", "del_sh", "del_sh", "ice_state", "all", .false., "none", 2, +"ice_model", "del_sh_min", "del_sh_min", "ice_state", "all", .false., "none", 2, + +# "ice_model", "sigI_hf", "sigI", "ice_hf", "all", .false., "none", 2, +# "ice_model", "sigII_hf", "sigII", "ice_hf", "all", .false., "none", 2, +# "ice_model", "str_d_hf", "str_d", "ice_hf", "all", .false., "none", 2, +# "ice_model", "str_t_hf", "str_t", "ice_hf", "all", .false., "none", 2, +# "ice_model", "str_s_hf", "str_s", "ice_hf", "all", .false., "none", 2, +# "ice_model", "sh_d_hf", "sh_d", "ice_hf", "all", .false., "none", 2, +# "ice_model", "sh_t_hf", "sh_t", "ice_hf", "all", .false., "none", 2, +# "ice_model", "sh_s_hf", "sh_s", "ice_hf", "all", .false., "none", 2, + +# +#======================== +# ATMOSPHERE DIAGNOSTICS: +#======================== +#======================== +# "flux", "land_mask", "land_mask", "flux_month", "all", .false., "none", 2, +# "flux", "ice_mask", "ice_mask", "flux_month", "all", .true., "none", 2, +# "flux", "drag_moist", "drag_moist", "flux_month", "all", .true., "none", 2, +# "flux", "drag_heat", "drag_heat", "flux_month", "all", .true., "none", 2, +# "flux", "drag_mom", "drag_mom", "flux_month", "all", .true., "none", 2, +# "flux", "wind", "wind", "flux_month", "all", .true., "none", 2, +# # "flux" forcing fields for land model: wind, q_ref atmos_8xdaily +# #"flux", "wind", "wind", "atmos_8xdaily", "all", .true., "none", 2, +# #"flux", "q_ref", "q_ref", "atmos_8xdaily", "all", .true., "none", 2, +# "flux", "tau_x", "tau_x", "flux_month", "all", .true., "none", 2, +# "flux", "tau_y", "tau_y", "flux_month", "all", .true., "none", 2, +# "flux", "shflx", "shflx", "flux_month", "all", .true., "none", 2, +# "flux", "evap", "evap", "flux_month", "all", .true., "none", 2, +# "flux", "lwflx", "lwflx", "flux_month", "all", .true., "none", 2, +# "flux", "rh_ref", "rh_ref", "flux_month", "all", .true., "none", 2, +# "flux", "u_ref", "u_ref", "flux_month", "all", .true., "none", 2, +# "flux", "v_ref", "v_ref", "flux_month", "all", .true., "none", 2, +# "flux", "u_atm", "u_atm", "flux_month", "all", .true.,"none", 2, +# "flux", "v_atm", "v_atm", "flux_month", "all", .true.,"none", 2, +# "flux", "t_atm", "t_atm", "flux_month", "all", .true.,"none", 2, +# "flux", "t_surf", "t_surf", "flux_month", "all", .true.,"none", 2, +# "flux", "q_atm", "q_atm", "flux_month", "all", .true.,"none", 2, +# +# For these "_col" fields, set do_cmip_diagnostics=.true. in &shortwave_driver_nml, and uncomment +#"radiation", "organic_carbon_exopdep_col","org_crb_exdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "organic_carbon_abopdep_col","org_crb_abdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "black_carbon_exopdep_col", "blk_crb_exdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "black_carbon_abopdep_col", "blk_crb_abdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "sea_salt_exopdep_col", "salt_exdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "sea_salt_abopdep_col", "salt_abdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "so4_anthro_col", "so4_ant_col", "atmos_month", "all", .true., "none", 2, +#"radiation", "so4_natural_col", "so4_nat_col", "atmos_month", "all", .true., "none", 2, +#"radiation", "small_dust_exopdep_col", "sm_dust_exdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "small_dust_abopdep_col", "sm_dust_abdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "large_dust_exopdep_col", "lg_dust_exdep_c", "atmos_month", "all", .true., "none", 2, +#"radiation", "large_dust_abopdep_col", "lg_dust_abdep_c", "atmos_month", "all", .true., "none", 2, +# + + +#============================================================================================= +# +#====> This file can be used with diag_manager/v2.0a (or higher) <==== +# +# +# FORMATS FOR FILE ENTRIES (not all input values are used) +# ------------------------ +# +#"file_name", output_freq, "output_units", format, "time_units", "long_name", +# +# +#output_freq: > 0 output frequency in "output_units" +# = 0 output frequency every time step +# =-1 output frequency at end of run +# +#output_units = units used for output frequency +# (years, months, days, minutes, hours, seconds) +# +#time_units = units used to label the time axis +# (days, minutes, hours, seconds) +# +# +# FORMAT FOR FIELD ENTRIES (not all input values are used) +# ------------------------ +# +#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing +# +#time_avg = .true. or .false. +# +#packing = 1 double precision +# = 2 float +# = 4 packed 16-bit integers +# = 8 packed 1-byte (not tested?) + diff --git a/examples/ocean_SIS2/SIS2_cgrid/field_table b/examples/ocean_SIS2/SIS2_cgrid/field_table new file mode 100644 index 0000000000..a4e98a7caf --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/field_table @@ -0,0 +1,71 @@ +"diag_tracers","ocean_mod","frazil" + +file_in = INPUT/ocean_frazil.res.nc +file_out = RESTART/ocean_frazil.res.nc +/ + + +"prog_tracers","ocean_mod","temp" + +horizontal-advection-scheme = mdfl_sweby +vertical-advection-scheme = mdfl_sweby +file_in = INPUT/ocean_temp_salt.res.nc +file_out = RESTART/ocean_temp_salt.res.nc +/ + +"prog_tracers","ocean_mod","salt" + +rizontal-advection-scheme = mdfl_sweby +vertical-advection-scheme = mdfl_sweby +file_in = INPUT/ocean_temp_salt.res.nc +file_out = RESTART/ocean_temp_salt.res.nc +/ + + +"tracer_packages","ocean_mod","ocean_age_tracer" + +names = global +horizontal-advection-scheme = mdfl_sweby +vertical-advection-scheme = mdfl_sweby +file_in = INPUT/ocean_age.res.nc +file_out = RESTART/ocean_age.res.nc +min_tracer_limit=0.0 +/ + +"prog_tracers","ocean_mod","age_global" + +const_init_tracer = t +const_init_value = 0.0 +/ + +"namelists","ocean_mod","ocean_age_tracer/global" + +slat = -90.0 +nlat = 90.0 +wlon = 0.0 +elon = 360.0 +/ + + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / + +# prognotic cloud scheme tracers + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud liquid specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice water specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud fraction" + "units", "none" / + +# test tracer for radon + +# "TRACER", "atmos_mod", "radon" +# "longname", "radon test tracer" +# "units", "kg/kg" / + + "TRACER", "land_mod", "sphum"/ + diff --git a/examples/ocean_SIS2/SIS2_cgrid/input.nml b/examples/ocean_SIS2/SIS2_cgrid/input.nml new file mode 100644 index 0000000000..fba8f7cb2c --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/input.nml @@ -0,0 +1,72 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' / + + &SIS_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'SIS_input', + 'SIS_override' / + + &diag_manager_nml + / + + &coupler_nml + months = 0, + days = 1, + current_date = 1,1,1,0,0,0, + hours = 0 + minutes = 0 + seconds = 0 + calendar = 'NOLEAP', + dt_cpld = 7200, + dt_atmos = 7200, + do_atmos = .false., + do_land = .false., + do_ice = .true., + do_ocean = .true., + atmos_npes = 0, + ocean_npes = 0, + concurrent = .false. + use_lag_fluxes=.true. / + + &data_override_nml + / + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ice_albedo_nml + t_range = 10. / + + &ice_model_nml + / + + &monin_obukhov_nml + neutral = .true. / + + &ocean_albedo_nml + ocean_albedo_option = 5 / + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. / + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' / + diff --git a/examples/ocean_SIS2/SIS2_cgrid/static_input.nml b/examples/ocean_SIS2/SIS2_cgrid/static_input.nml new file mode 100644 index 0000000000..e79bffaa6f --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/static_input.nml @@ -0,0 +1,36 @@ + + + &data_override_nml + / + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + threading_write='single' + fileset_write='single' / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ice_albedo_nml + t_range = 10. / + + &ice_model_nml + / + + &monin_obukhov_nml + neutral = .true. / + + &ocean_albedo_nml + ocean_albedo_option = 5 / + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. / + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' / + diff --git a/examples/ocean_SIS2/SIS2_cgrid/timestats.gnu b/examples/ocean_SIS2/SIS2_cgrid/timestats.gnu new file mode 100644 index 0000000000..ac6ece00a3 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/timestats.gnu @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 0.000, 0, En 6.974470353868E-01, CFL 0.00000, SL 1.8221E-09, M 1.37957E+21, S 34.7200, T 3.6134, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 0.250, 0, En 6.976627433846E-01, CFL 0.16338, SL 1.1838E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 1.63E-16, Se 5.77E-15, Te 2.37E-15 + 6, 0.500, 0, En 7.019642475458E-01, CFL 0.12579, SL 1.3493E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 2.49E-16, Se 8.54E-15, Te 1.63E-15 + 9, 0.750, 0, En 7.055612673234E-01, CFL 0.16183, SL 1.5897E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 3.48E-16, Se 1.19E-14, Te 2.34E-15 + 12, 1.000, 0, En 7.071358894101E-01, CFL 0.16844, SL 1.8434E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 4.31E-16, Se 1.47E-14, Te 2.77E-15 diff --git a/examples/ocean_SIS2/SIS2_cgrid/timestats.intel b/examples/ocean_SIS2/SIS2_cgrid/timestats.intel new file mode 100644 index 0000000000..34e8bf1748 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/timestats.intel @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 0.000, 0, En 6.974470353868E-01, CFL 0.00000, SL 1.8221E-09, M 1.37957E+21, S 34.7200, T 3.6134, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 0.250, 0, En 6.976636708398E-01, CFL 0.16338, SL 1.1838E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 1.63E-16, Se 5.75E-15, Te 2.38E-15 + 6, 0.500, 0, En 7.019706902699E-01, CFL 0.12579, SL 1.3492E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 2.50E-16, Se 8.64E-15, Te 1.63E-15 + 9, 0.750, 0, En 7.057642840999E-01, CFL 0.13532, SL 1.5898E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 3.45E-16, Se 1.18E-14, Te 2.31E-15 + 12, 1.000, 0, En 7.072727514283E-01, CFL 0.16841, SL 1.8430E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 4.32E-16, Se 1.48E-14, Te 2.83E-15 diff --git a/examples/ocean_SIS2/SIS2_cgrid/timestats.pgi b/examples/ocean_SIS2/SIS2_cgrid/timestats.pgi new file mode 100644 index 0000000000..8bc323e9d0 --- /dev/null +++ b/examples/ocean_SIS2/SIS2_cgrid/timestats.pgi @@ -0,0 +1,7 @@ + Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err + [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] + 0, 0.000, 0, En 6.974470353868E-01, CFL 0.00000, SL 1.8221E-09, M 1.37957E+21, S 34.7200, T 3.6134, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 + 3, 0.250, 0, En 6.976625804405E-01, CFL 0.16338, SL 1.1838E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 1.63E-16, Se 5.80E-15, Te 2.38E-15 + 6, 0.500, 0, En 7.019693004670E-01, CFL 0.12579, SL 1.3493E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 2.49E-16, Se 8.58E-15, Te 1.63E-15 + 9, 0.750, 0, En 7.055917258667E-01, CFL 0.14503, SL 1.5899E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 3.48E-16, Se 1.19E-14, Te 2.32E-15 + 12, 1.000, 0, En 7.072640954218E-01, CFL 0.16846, SL 1.8436E-03, M 1.37957E+21, S 34.7200, T 3.6134, Me 4.34E-16, Se 1.48E-14, Te 2.83E-15 diff --git a/src/framework/MOM_coms.F90 b/src/framework/MOM_coms.F90 index d7d39cefda..54f17a1a6e 100644 --- a/src/framework/MOM_coms.F90 +++ b/src/framework/MOM_coms.F90 @@ -21,12 +21,12 @@ module MOM_coms !*********************************************************************** use MOM_error_handler, only : MOM_error, MOM_mesg, FATAL, WARNING -use fms_mod, only : fms_end +use fms_mod, only : fms_end, MOM_infra_init => fms_init use memutils_mod, only : print_memuse_stats use mpp_mod, only : PE_here => mpp_pe, root_PE => mpp_root_pe, num_PEs => mpp_npes use mpp_mod, only : broadcast => mpp_broadcast use mpp_mod, only : sum_across_PEs => mpp_sum, min_across_PEs => mpp_min -use mpp_mod, only : max_across_PEs => mpp_max, MOM_infra_init => mpp_init +use mpp_mod, only : max_across_PEs => mpp_max implicit none ; private diff --git a/src/parameterizations/vertical/MOM_KPP.F90 b/src/parameterizations/vertical/MOM_KPP.F90 index f77f49a698..76102b325d 100644 --- a/src/parameterizations/vertical/MOM_KPP.F90 +++ b/src/parameterizations/vertical/MOM_KPP.F90 @@ -1,9 +1,8 @@ -!> This module provides the K-profile parameterization (aka KPP) of -!! Large et al., 1994 (ftp://128.171.154.9/pub/rlukas/Thibault/Large%20etal%20RevGeo%201994.pdf). -!! KPP is implemented via the CVMix package (https://code.google.com/p/cvmix) -!! which this module invokes. +!> Provides the K-Profile Parameterization (KPP) of Large et al., 1994, via CVMix. module MOM_KPP +! License goes here? + use MOM_coms, only : max_across_PEs use MOM_checksums, only : hchksum, is_NaN use MOM_diag_mediator, only : time_type, diag_ctrl, safe_alloc_ptr, post_data @@ -31,10 +30,10 @@ module MOM_KPP ! Enumerated constants integer, private, parameter :: NLT_SHAPE_CVMIX = 0 !< Use the CVmix profile -integer, private, parameter :: NLT_SHAPE_LINEAR = 1 !< Linear, Cs.G(s) = 1-s -integer, private, parameter :: NLT_SHAPE_PARABOLIC = 2 !< Parabolic, Cs.G(s) = (1-s)^2 -integer, private, parameter :: NLT_SHAPE_CUBIC = 3 !< Cubic, G(s) = -integer, private, parameter :: NLT_SHAPE_CUBIC_LMD = 4 !< Original shape, Cs.G(s) = 27/4.s.(1-s)^2 +integer, private, parameter :: NLT_SHAPE_LINEAR = 1 !< Linear, \f$ G(\sigma) = 1-\sigma \f$ +integer, private, parameter :: NLT_SHAPE_PARABOLIC = 2 !< Parabolic, \f$ G(\sigma) = (1-\sigma)^2 \f$ +integer, private, parameter :: NLT_SHAPE_CUBIC = 3 !< Cubic, \f$ G(\sigma) = 1 + (2\sigma-3) \sigma^2\f$ +integer, private, parameter :: NLT_SHAPE_CUBIC_LMD = 4 !< Original shape, \f$ G(\sigma) = \frac{27}{4} \sigma (1-\sigma)^2 \f$ !> Control structure for containing KPP parameters/data type, public :: KPP_CS ; private @@ -847,4 +846,49 @@ subroutine KPP_end(CS) deallocate(CS) end subroutine KPP_end +!> \class mom_kpp +!! +!! \section section_KPP The K-Profile Parameterization +!! +!! The K-Profile Parameterization (KPP) of Large et al., 1994, (http://dx.doi.org/10.1029/94RG01872) is +!! implemented via the Community Vertical Mixing package, [CVmix](https://code.google.com/p/cvmix), +!! which is called directly by this module. +!! +!! The formulation and implementation of KPP is described in great detail in the +!! [CVMix manual](https://cvmix.googlecode.com/svn/trunk/manual/cvmix.pdf) (written by our own Stephen Griffies). +!! +!! \subsection section_KPP_nutshell KPP in a nutshell +!! +!! Large et al., 1994, decompose the parameterized boundary layer turbulent flux of a scalar, \f$ s \f$, as +!! \f[ \overline{w^\prime s^\prime} = -K \partial_z s + K \gamma_s(\sigma), \f] +!! where \f$ \sigma = -z/h \f$ is a non-dimensional coordinate within the boundary layer of depth \f$ h \f$. +!! \f$ K \f$ is the eddy diffusivity and is a function of position within the boundary layer as well as a +!! function of the surface forcing: +!! \f[ K = h w_s(\sigma) G(\sigma) . \f] +!! Here, \f$ w_s \f$ is the vertical velocity scale of the boundary layer turbulence and \f$ G(\sigma) \f$ is +!! a "shape function" which is described later. +!! The last term is the "non-local transport" which involves a function \f$ \gamma_s(\sigma) \f$ that is matched +!! to the forcing but is not actually needed in the final implementation. +!! Instead, the entire non-local transport term can be equivalently written +!! \f[ K \gamma_s(\sigma) = C_s G(\sigma) Q_s \f] +!! where \f$ Q_s \f$ is the surface flux of \f$ s \f$ and \f$ C_s \f$ is a constant. +!! The vertical structure of the redistribution (non-local) term is solely due to the shape function, \f$ G(\sigma) \f$. +!! In our implementation of KPP, we allow the shape functions used for \f$ K \f$ and for the non-local transport +!! to be chosen independently. +!! +!! [google_thread_NLT]: https://groups.google.com/forum/#!msg/cvmix-dev/i6rF-eHOtKI/Ti8BeyksrhAJ "Extreme values of non-local transport" +!! +!! The particular shape function most widely used in the atmospheric community is +!! \f[ G(\sigma) = \sigma (1-\sigma)^2 \f] +!! which satisfies the boundary conditions +!! \f$ G(0) = 0 \f$, +!! \f$ G(1) = 0 \f$, +!! \f$ G^\prime(0) = 1 \f$, and +!! \f$ G^\prime(1) = 0 \f$. +!! Large et al, 1994, alter the function so as to match interior diffusivities but we have found that this leads +!! to inconsistencies within the formulation (see google groups thread [Extreme values of non-local transport][google_thread_NLT]). +!! Instead, we use either the above form, or even simpler forms that use alternative upper boundary conditions. +!! +!! \sa +!! kpp_calculate(), kpp_applynonlocaltransport() end module MOM_KPP From e60632d8bd54bf44a1764dfbc13a19377e1e7009 Mon Sep 17 00:00:00 2001 From: Zhi Liang Date: Wed, 5 Mar 2014 15:33:37 -0500 Subject: [PATCH 3/5] always to call check_nml_error --- config_src/solo_driver/MOM_driver.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config_src/solo_driver/MOM_driver.F90 b/config_src/solo_driver/MOM_driver.F90 index 0f8beb581c..3938204a93 100644 --- a/config_src/solo_driver/MOM_driver.F90 +++ b/config_src/solo_driver/MOM_driver.F90 @@ -196,10 +196,10 @@ program MOM_main call open_file(unit, 'input.nml', form=ASCII_FILE, action=READONLY_FILE) read(unit, ocean_solo_nml, iostat=io_status) call close_file(unit) - if (years+months+days+hours+minutes+seconds > 0) then +! if (years+months+days+hours+minutes+seconds > 0) then ierr = check_nml_error(io_status,'ocean_solo_nml') if (is_root_pe()) write(*,ocean_solo_nml) - endif +! endif endif ! Read ocean_solo restart, which can override settings from the namelist. From 76877823fcf5bf88b1aa222a381ba4eebeac884f Mon Sep 17 00:00:00 2001 From: Zhi Liang Date: Fri, 7 Mar 2014 08:49:40 -0500 Subject: [PATCH 4/5] Solve the issue that could not reproduce old answer when compiling with -openmp --- .../vertical/MOM_set_viscosity.F90 | 12 ++-- .../vertical/MOM_vert_friction.F90 | 67 +++++++------------ 2 files changed, 30 insertions(+), 49 deletions(-) diff --git a/src/parameterizations/vertical/MOM_set_viscosity.F90 b/src/parameterizations/vertical/MOM_set_viscosity.F90 index 160a4a405f..2bc7357c9b 100644 --- a/src/parameterizations/vertical/MOM_set_viscosity.F90 +++ b/src/parameterizations/vertical/MOM_set_viscosity.F90 @@ -990,9 +990,9 @@ subroutine set_viscous_ML(u, v, h, tv, fluxes, visc, dt, G, CS) ! if (CS%linear_drag) ustar(:) = cdrag_sqrt*CS%drag_bg_vel endif - -!$OMP parallel do default(private) shared(u, v, h, tv, fluxes, visc, dt, G, CS, use_EOS, & -!$OMP dt_Rho0, h_neglect, h_tiny, g_H_Rho0) +!$OMP parallel do default(private) shared(u, v, h, tv, fluxes, visc, dt, G, CS, use_EOS, & +!$OMP dt_Rho0, h_neglect, h_tiny, g_H_Rho0,js,je, & +!$OMP Isq,Ieq,nz,U_bg_sq,cdrag_sqrt,Rho0x400_G) do j=js,je ! u-point loop if (CS%dynamic_viscous_ML) then do_any = .false. @@ -1218,9 +1218,9 @@ subroutine set_viscous_ML(u, v, h, tv, fluxes, visc, dt, G, CS) enddo ! j-loop at u-points - !$OMP parallel do default(private) shared(u, v, h, tv, fluxes, visc, dt, G, CS, use_EOS, & -!$OMP dt_Rho0, h_neglect, h_tiny, g_H_Rho0) +!$OMP dt_Rho0, h_neglect, h_tiny, g_H_Rho0,is,ie, & +!$OMP Jsq,Jeq,nz,U_bg_sq,cdrag_sqrt,Rho0x400_G) do J=Jsq,Jeq ! v-point loop if (CS%dynamic_viscous_ML) then do_any = .false. @@ -1319,7 +1319,7 @@ subroutine set_viscous_ML(u, v, h, tv, fluxes, visc, dt, G, CS) do_any_shelf = .false. if (associated(fluxes%frac_shelf_h)) then - do I=Isq,Ieq + do I=Is,Ie if (fluxes%frac_shelf_v(i,J)*G%mask2dCv(i,J) == 0.0) then do_i(I) = .false. visc%tbl_thick_shelf_v(i,J) = 0.0 ; visc%kv_tbl_shelf_v(i,J) = 0.0 diff --git a/src/parameterizations/vertical/MOM_vert_friction.F90 b/src/parameterizations/vertical/MOM_vert_friction.F90 index 27da1262a2..435118f0eb 100644 --- a/src/parameterizations/vertical/MOM_vert_friction.F90 +++ b/src/parameterizations/vertical/MOM_vert_friction.F90 @@ -262,10 +262,12 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & h_neglect = G%H_subroundoff Idt = 1.0 / dt + do k=1,nz ; do i=Isq,Ieq ; Ray(i,k) = 0.0 ; enddo ; enddo + ! Update the zonal velocity component using a modification of a standard ! tridagonal solver. -!$OMP parallel do default(shared) private(do_i,surface_stress,zDS,stress,h_a,hfr, & -!$OMP Ray,b_denom_1,b1,d1,c1) +!$OMP parallel do default(shared) firstprivate(Ray) private(do_i,surface_stress,zDS,stress,h_a,hfr, & +!$OMP b_denom_1,b1,d1,c1) do j=G%jsc,G%jec do I=Isq,Ieq ; do_i(I) = (G%mask2dCu(I,j) > 0) ; enddo @@ -292,13 +294,9 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & surface_stress(I) = dt_Rho0 * (G%mask2dCu(I,j)*fluxes%taux(I,j)) enddo ; endif ! direct_stress - if (CS%Channel_drag) then - do k=1,nz ; do I=Isq,Ieq - Ray(I,k) = visc%Ray_u(I,j,k) - enddo ; enddo ; - else - do k=1,nz ; do i=Isq,Ieq ; Ray(i,k) = 0.0 ; enddo ; enddo - endif + if (CS%Channel_drag) then ; do k=1,nz ; do I=Isq,Ieq + Ray(I,k) = visc%Ray_u(I,j,k) + enddo ; enddo ; endif do I=Isq,Ieq ; if (do_i(I)) then b_denom_1 = CS%h_u(I,j,1) + dt_m_to_H * (Ray(I,1) + CS%a_u(I,j,1)) @@ -337,8 +335,8 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & enddo ! end u-component j loop ! Now work on the meridional velocity component. -!$OMP parallel do default(shared) private(do_i,surface_stress,zDS,stress,h_a,hfr, & -!$OMP Ray,b_denom_1,b1,d1,c1) +!$OMP parallel do default(shared) firstprivate(Ray) private(do_i,surface_stress,zDS,stress,h_a,hfr, & +!$OMP b_denom_1,b1,d1,c1) do J=Jsq,Jeq do i=is,ie ; do_i(i) = (G%mask2dCv(i,J) > 0) ; enddo @@ -365,15 +363,9 @@ subroutine vertvisc(u, v, h, fluxes, visc, dt, OBC, ADp, CDp, G, CS, & surface_stress(i) = dt_Rho0 * (G%mask2dCv(i,J)*fluxes%tauy(i,J)) enddo ; endif ! direct_stress - if (CS%Channel_drag) then - do k=1,nz ; do i=is,ie - Ray(i,k) = visc%Ray_v(i,J,k) - enddo ; enddo - else - do k=1,nz ; do i=is,ie - Ray(i,k) = 0.0 - enddo ; enddo - endif + if (CS%Channel_drag) then ; do k=1,nz ; do i=is,ie + Ray(i,k) = visc%Ray_v(i,J,k) + enddo ; enddo ; endif do i=is,ie ; if (do_i(i)) then b_denom_1 = CS%h_v(i,J,1) + dt_m_to_H * (Ray(i,1) + CS%a_v(i,J,1)) @@ -484,20 +476,16 @@ subroutine vertvisc_remnant(visc, visc_rem_u, visc_rem_v, dt, G, CS) dt_m_to_H = dt*G%m_to_H + do k=1,nz ; do i=Isq,Ieq ; Ray(i,k) = 0.0 ; enddo ; enddo + ! Find the zonal viscous using a modification of a standard tridagonal solver. -!$OMP parallel do default(shared) private(do_i,Ray,b_denom_1,b1,d1,c1) +!$OMP parallel do default(shared) firstprivate(Ray) private(do_i,b_denom_1,b1,d1,c1) do j=G%jsc,G%jec do I=Isq,Ieq ; do_i(I) = (G%mask2dCu(I,j) > 0) ; enddo - if (CS%Channel_drag) then - do k=1,nz ; do I=Isq,Ieq - Ray(I,k) = visc%Ray_u(I,j,k) - enddo ; enddo - else - do k = 1,nz; do i=isq,ieq - Ray(i,k) = 0.0 - enddo; enddo - endif + if (CS%Channel_drag) then ; do k=1,nz ; do I=Isq,Ieq + Ray(I,k) = visc%Ray_u(I,j,k) + enddo ; enddo ; endif do I=Isq,Ieq ; if (do_i(I)) then b_denom_1 = CS%h_u(I,j,1) + dt_m_to_H * (Ray(I,1) + CS%a_u(I,j,1)) @@ -520,19 +508,13 @@ subroutine vertvisc_remnant(visc, visc_rem_u, visc_rem_v, dt, G, CS) enddo ! end u-component j loop ! Now find the meridional viscous using a modification. -!$OMP parallel do default(shared) private(do_i,Ray,b_denom_1,b1,d1,c1) +!$OMP parallel do default(shared) firstprivate(Ray) private(do_i,b_denom_1,b1,d1,c1) do J=Jsq,Jeq do i=is,ie ; do_i(i) = (G%mask2dCv(i,J) > 0) ; enddo - if (CS%Channel_drag) then - do k=1,nz ; do I=Is,Ie - Ray(I,k) = visc%Ray_v(I,j,k) - enddo ; enddo - else - do k = 1,nz; do i=is,ie - Ray(i,k) = 0.0 - enddo; enddo - endif + if (CS%Channel_drag) then ; do k=1,nz ; do i=is,ie + Ray(i,k) = visc%Ray_v(i,J,k) + enddo ; enddo ; endif do i=is,ie ; if (do_i(i)) then b_denom_1 = CS%h_v(i,J,1) + dt_m_to_H * (Ray(i,1) + CS%a_v(i,J,1)) @@ -656,7 +638,7 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) allocate(CS%a1_shelf_v(G%isd:G%ied,G%JsdB:G%JedB)) ; CS%a1_shelf_v(:,:)=0.0 endif -!$OMP parallel do default(private) shared(G,CS,visc,Isq,ieq,nz,u,h,fluxes) +!$OMP parallel do default(private) shared(G,CS,visc,Isq,ieq,nz,u,h,fluxes,hML_u,h_neglect,dt) do j=G%Jsc,G%Jec do I=Isq,Ieq ; do_i(I) = (G%mask2dCu(I,j) > 0) ; enddo @@ -773,8 +755,8 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) enddo -!$OMP parallel do default(private) shared(G,CS,visc,is,ie,Jsq,Jeq,nz,v,h,fluxes) ! Now work on v-points. +!$OMP parallel do default(private) shared(G,CS,visc,is,ie,Jsq,Jeq,nz,v,h,fluxes,hML_v,h_neglect,dt) do J=Jsq,Jeq do i=is,ie ; do_i(i) = (G%mask2dCv(i,J) > 0) ; enddo @@ -887,7 +869,6 @@ subroutine vertvisc_coef(u, v, h, fluxes, visc, dt, G, CS) do K=1,nz+1 ; do i=is,ie ; if (do_i(i)) CS%a_v(i,J,K) = a(i,K) ; enddo ; enddo do k=1,nz ; do i=is,ie ; if (do_i(i)) CS%h_v(i,J,k) = hvel(i,k) ; enddo ; enddo endif - enddo ! end of v-point j loop From 7f2b7f770a44235b76b572a0ff8fa486e25a50e9 Mon Sep 17 00:00:00 2001 From: Zhi Liang Date: Fri, 7 Mar 2014 13:52:06 -0500 Subject: [PATCH 5/5] fix to solve reproducing ability from old results in experiment global --- src/parameterizations/vertical/MOM_set_viscosity.F90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/parameterizations/vertical/MOM_set_viscosity.F90 b/src/parameterizations/vertical/MOM_set_viscosity.F90 index 2bc7357c9b..d11f401952 100644 --- a/src/parameterizations/vertical/MOM_set_viscosity.F90 +++ b/src/parameterizations/vertical/MOM_set_viscosity.F90 @@ -304,9 +304,10 @@ subroutine set_viscous_BBL(u, v, h, tv, visc, G, CS) enddo ; enddo endif -!$OMP parallel do default(private) shared(u, v, h, tv, visc, G, CS, Rml, is, ie, js, je, nz, & -!$OMP Isq, Ieq, Jsq, Jeq, nkmb, h_neglect, Rho0x400_G, & -!$OMP Vol_quit, C2pi_3, U_bg_sq, cdrag_sqrt, K2 ) +!$OMP parallel do default(private) shared(u, v, h, tv, visc, G, CS, Rml, is, ie, js, je, nz, & +!$OMP Isq, Ieq, Jsq, Jeq, nkmb, h_neglect, Rho0x400_G, & +!$OMP Vol_quit, C2pi_3, U_bg_sq, cdrag_sqrt, & +!$OMP K2,use_BBL_EOS,maxitt) do j=G%JscB,G%JecB ; do m=1,2 if (m==1) then