Skip to content

Commit

Permalink
Merge pull request #1234 from esm-tools/feat/fesom26_standalone
Browse files Browse the repository at this point in the history
Standalone Fesom 2.6 in esm_tools
  • Loading branch information
pgierz authored Oct 21, 2024
2 parents 44e807b + 9849a8d commit ded066b
Show file tree
Hide file tree
Showing 27 changed files with 1,248 additions and 25 deletions.
643 changes: 643 additions & 0 deletions configs/components/fesom/fesom-2.6.yaml

Large diffs are not rendered by default.

76 changes: 76 additions & 0 deletions namelists/fesom2/2.6/namelist.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
! This is the namelist file for model general configuration

&modelname
runid='fesom'
/

&timestep
step_per_day=32 !96 !96 !72 !72 !45 !72 !96
run_length=62 !62 !62 !62 !28
run_length_unit='y' ! y, m, d, s
/

&clockinit ! the model starts at
timenew=0.0
daynew=1
yearnew=1958
/

&paths
meshpath = '/work/ab0246/a270092/input/fesom2/core2/'
climatedatapath = '/work/ab0246/a270092/input/FESOM2/INITIAL/phc3.0/'
resultpath = '../result_tmp/'
/

&restart_log
restart_length=1 ! --> do netcdf restart ( only required for d,h,s cases, y, m take 1)
restart_length_unit='y' !output period: y, d, h, s, off
raw_restart_length=1 ! --> do core dump restart
raw_restart_length_unit='y' ! e.g. y, d, h, s, off
bin_restart_length=1 ! --> do derived type binary restart
bin_restart_length_unit='y' ! e.g. y, d, h, s, off
logfile_outfreq=960 !in logfile info. output frequency, # steps
/

&ale_def
which_ALE='zstar' ! 'linfs','zlevel', 'zstar'
use_partial_cell=.true.
/

&geometry
cartesian=.false.
fplane=.false.
cyclic_length=360 ![degree]
rotated_grid=.true. !option only valid for coupled model case now
force_rotation=.true.
alphaEuler=50. ![degree] Euler angles, convention:
betaEuler=15. ![degree] first around z, then around new x,
gammaEuler=-90. ![degree] then around new z.
/

&calendar
include_fleapyear=.true.
/

&run_config
use_ice=.true. ! ocean+ice
use_cavity=.false. !
use_cavity_partial_cell=.false.
use_floatice = .false.
use_sw_pene=.true.
flag_debug=.false.
use_transit=.false.
/

&machine
n_levels=2
n_part= 5, 128 ! 432 number of partitions on each hierarchy level
/

&icebergs
use_icesheet_coupling=.false.
ib_num=1
use_icebergs=.false.
steps_per_ib_step=8
ib_async_mode=0
/
75 changes: 75 additions & 0 deletions namelists/fesom2/2.6/namelist.cvmix
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
! namelist for Turbulent Kinetic Energy (TKE)
&param_tke
tke_c_k = 0.1
tke_c_eps = 0.7
tke_alpha = 30.0
tke_mxl_min = 1.0e-8
tke_kappaM_min = 0.0
tke_kappaM_max = 100.0
tke_cd = 3.75 ! for Dirichlet boundary conditions
!tke_cd = 1.0 ! for Neumann boundary conditions
tke_surf_min = 1.0e-4
tke_min = 1.0e-6
! tke_mxl_choice ... Can only be 1 or 2, choice of calculation of mixing
! length; currently only Blanke, B., P. Delecluse option is implemented
tke_mxl_choice = 2
tke_dolangmuir = .false.
/

! namelist for IDEMIX von Pollman et al. (2017)
&param_idemix
idemix_tau_v = 172800.0 ! 2days ! time scale for vertical symmetrisation (sec)
idemix_tau_h = 1296000.0 !15days ! time scale for horizontal symmetrisation
idemix_gamma = 1.570 ! constant of order one derived from the shape of the spectrum in m space (dimensionless)
idemix_jstar = 5.0 ! spectral bandwidth in modes (dimensionless)
idemix_mu0 = 0.33333333 ! dissipation parameter (dimensionless)
idemix_sforcusage = 0.2
idemix_n_hor_iwe_prop_iter = 5 ! iterations for contribution from horiz. wave propagation
idemix_surforc_file = '/work/ollie/clidyn/forcing/IDEMIX/fourier_smooth_2005_cfsr_inert_rgrid.nc'
idemix_surforc_vname= 'var706'
idemix_botforc_file = '/work/ollie/clidyn/forcing/IDEMIX/tidal_energy_gx1v6_20090205_rgrid.nc'
idemix_botforc_vname= 'wave_dissipation'
/

! namelist for PP
&param_pp
pp_use_fesompp = .true. ! if true use fesom flavor off PP if false use original PP of Pacanowski & Philander
pp_Av0 = 0.01 ! mixing coeff. for PP
pp_alpha = 5.0 ! alpha param eq. (1) in Pacanowski and Philander 1981
pp_exp = 2.0 ! n param eq. (1) in Pacanowski and Philander 1981
pp_Avbckg = 1.0e-4 ! const. pp background viscosity
pp_Kvbckg = 1.0e-5 ! const. pp background diffusivity
pp_use_nonconstKvb = .true. ! use lat and depth dependent background diffusivity
/

! namelist for KPP
&param_kpp
kpp_use_fesomkpp = .false. ! if true use cvmix MOM5 like kpp if false use cvmix MOM6 like kpp
kpp_use_enhanceKv = .true. ! If true, add enhanced diffusivity at base of boundary layer
kpp_use_compEkman = .true. ! If true, compute Ekman depth limit for OBLdepth
kpp_use_monob = .true. ! If true, compute Monin-Obukhov limit for OBLdepth
kpp_interptype_ri = "linear" ! Type of interpolation in determining OBL depth: linear,quadratic,cubic
kpp_interptype_atobl= "LMD94" ! Type of interpolation of visc and diff at obl depth: linear,quadratic,cubic,LMD94
kpp_matchtechc = "ParabolicNonLocal" ! Setting diffusivity and NLT profile functions:SimpleShapes, MatchGradient, MatchBoth, ParabolicNonLocal
kpp_internalmix = "KPP" ! Ri-number dependet mixing scheme below the OBL: 'PP' or 'KPP'
kpp_reduce_tauuice = .false. ! If True, reduce the wind stress (ustar) under sea ice.
kpp_Av0 = 5.0e-3 ! leading coefficient of shear mixing formula, units: m^2/s: default= 5e-3
kpp_Kv0 = 5.0e-3
kpp_Ri0 = 0.7 ! critical Richardson number value, units: unitless (0.7 in LMD94)
kpp_pp_Av0 = 0.01 ! Parameter in case of PP mixing below the OBL
kpp_use_nonconstKvb= .true. ! If True use non constant background diffusivity of Qiang from FESOM1.4
kpp_Avbckg = 1.0e-4 ! Values for const. background viscosity and diffusivity
kpp_Kvbckg = 1.0e-5
/

! namelist for TIDAL
&param_tidal
tidal_mixscheme = "Simmons"
tidal_efficiency = 0.2 ! units: unitless (fraction); (Gamma in Simmons et al.)
tidal_vert_decayscale= 500.0 ! units: m; zeta in Simmons et al. (used to compute the vertical deposition function)
tidal_max_coeff = 50e-4 ! units: m^2/s; largest acceptable value for diffusivity
tidal_lcl_mixfrac = 0.33 !tidal dissipation efficiency (q in Simmons et al.), i.e. fraction of energy that dissipates locally
tidal_depth_cutoff = 0.0 !depth of the shallowest column where tidal mixing is computed (positive below surface)
tidal_botforc_file = '/albedo/work/projects/p_pool_fesom1/fesom2.0/forcing/idemix/tidal_energy_gx1v6_20090205_rgrid.nc'
/

36 changes: 36 additions & 0 deletions namelists/fesom2/2.6/namelist.dyn
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
&dynamics_visc
visc_gamma0 = 0.003 ! [m/s], backgroung viscosity= gamma0*len, it should be as small a s possible (keep it < 0.01 m/s).
visc_gamma1 = 0.1 ! [nodim], for computation of the flow aware viscosity
visc_gamma2 = 0.285 ! [s/m], is only used in easy backscatter option
visc_easybsreturn= 1.5

opt_visc = 5
check_opt_visc=.true. ! check if optvisc=5 is valid based on ratio resol/rossbyR
! 5=Kinematic (easy) Backscatter
! 6=Biharmonic flow aware (viscosity depends on velocity Laplacian)
! 7=Biharmonic flow aware (viscosity depends on velocity differences)
! 8=Dynamic Backscatter

use_ivertvisc= .true.
/

&dynamics_general
momadv_opt = 2 ! option for momentum advection in moment only =2
use_freeslip = .false. ! Switch on free slip
use_wsplit = .false. ! Switch for implicite/explicte splitting of vert. velocity
wsplit_maxcfl= 1.0 ! maximum allowed CFL criteria in vertical (0.5 < w_max_cfl < 1.)
! in older FESOM it used to be w_exp_max=1.e-3
ldiag_KE=.false. ! activates energy diagnostics
AB_order=2

use_ssh_se_subcycl = .false.
se_BTsteps = 50
se_BTtheta = 0.14 ! default: 0.14,
se_bottdrag = .true.
se_bdrag_si = .true. ! bottomdrag semi-implicite/explicite
se_visc = .true.
se_visc_gamma0 = 10
se_visc_gamma1 = 19500 !19500 (core2@32spd), 2750 (core2@72spd)
se_visc_gamma2 = 0
/

80 changes: 80 additions & 0 deletions namelists/fesom2/2.6/namelist.forcing
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
! This is the namelist file for forcing

&forcing_exchange_coeff
Ce_atm_oce=0.00175 ! exchange coeff. of latent heat over open water
Ch_atm_oce=0.00175 ! exchange coeff. of sensible heat over open water
Cd_atm_oce=0.001 ! drag coefficient between atmosphere and water
Ce_atm_ice=0.00175 ! exchange coeff. of latent heat over ice
Ch_atm_ice=0.00175 ! exchange coeff. of sensible heat over ice
Cd_atm_ice=0.0012 ! drag coefficient between atmosphere and ice
Swind =0.0 ! parameterization for coupled current feedback
/

&forcing_bulk
AOMIP_drag_coeff=.false.
ncar_bulk_formulae=.true.
ncar_bulk_z_wind=10.0 ! height at which wind forcing is located (CORE, JRA-do: 10m, JRA, NCEP:2m)
ncar_bulk_z_tair=10.0 ! height at which temp forcing is located (CORE, JRA-do: 10m, JRA, NCEP:2m)
ncar_bulk_z_shum=10.0 ! height at which humi forcing is located (CORE, JRA-do: 10m, JRA, NCEP:2m)

/

&land_ice
use_landice_water=.false.
landice_start_mon=5
landice_end_mon=10
fwf_path='./mesh/'

/

&age_tracer
use_age_tracer=.false.
use_age_mask=.false.
age_tracer_path='./mesh/'
age_start_year=2000

/

&nam_sbc
nm_xwind_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/uas.' ! name of file with wind speeds x
nm_ywind_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/vas.' ! name of file with wind speeds y
nm_xstre_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/uas.' ! name of file with wind stress x
nm_ystre_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/vas.' ! name of file with wind stress y
nm_humi_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/huss.' ! name of file with humidity
nm_qsr_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/rsds.' ! name of file with solar heat
nm_qlw_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/rlds.' ! name of file with Long wave
nm_tair_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/tas.' ! name of file with 2m air temperature
nm_prec_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/prra.' ! name of file with total precipitation
nm_snow_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/prsn.' ! name of file with snow precipitation
nm_mslp_file = '/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/psl.' ! air_pressure_at_sea_level
nm_xwind_var = 'uas' ! name of variable in file with wind
nm_ywind_var = 'vas' ! name of variable in file with wind
nm_xstre_var = 'uas' ! name of variable in file with wind
nm_ystre_var = 'vas' ! name of variable in file with wind
nm_humi_var = 'huss' ! name of variable in file with humidity
nm_qsr_var = 'rsds' ! name of variable in file with solar heat
nm_qlw_var = 'rlds' ! name of variable in file with Long wave
nm_tair_var = 'tas' ! name of variable in file with 2m air temperature
nm_prec_var = 'prra' ! name of variable in file with total precipitation
nm_snow_var = 'prsn' ! name of variable in file with total precipitation
nm_mslp_var = 'psl' ! name of variable in file with air_pressure_at_sea_level
nm_nc_iyear = 1900
nm_nc_imm = 1 ! initial month of time axis in netCDF
nm_nc_idd = 1 ! initial day of time axis in netCDF
nm_nc_freq = 1 ! data points per day (i.e. 86400 if the time axis is in seconds)
nm_nc_tmid = 0 ! 1 if the time stamps are given at the mid points of the netcdf file, 0 otherwise (i.e. 1 in CORE1, CORE2; 0 in JRA55)
l_xwind=.true. l_ywind=.true. l_xstre=.false. l_ystre=.false. l_humi=.true. l_qsr=.true. l_qlw=.true. l_tair=.true. l_prec=.true. l_mslp=.false. l_cloud=.false. l_snow=.true.
runoff_data_source ='CORE2' !Dai09, CORE2
nm_runoff_file ='/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/CORE2_runoff.nc'
!nm_runoff_file ='/work/ollie/qwang/FESOM2_input/mesh/CORE2_finaltopo_mean/forcing_data_on_grid/runoff_clim.nc'
!runoff_data_source ='Dai09' !Dai09, CORE2, JRA55
!runoff_climatology =.true.
sss_data_source ='CORE2'
nm_sss_data_file ='/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/PHC2_salx.nc'
chl_data_source ='None' !'Sweeney' monthly chlorophyll climatology or 'NONE' for constant chl_const (below). Make use_sw_pene=.TRUE. in namelist.config!
nm_chl_data_file ='/pool/data/AWICM/FESOM2/FORCING/JRA55-do-v1.4.0/Sweeney/Sweeney_2005.nc'
chl_const = 0.1
use_runoff_mapper = .FALSE.
runoff_basins_file = 'runoff_maps_regular.nc'
runoff_radius = 500000.
/
31 changes: 31 additions & 0 deletions namelists/fesom2/2.6/namelist.ice
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
! Ice namelist
&ice_dyn
whichEVP=0 ! 0=standart; 1=mEVP; 2=aEVP
Pstar=30000.0 ! [N/m^2]
ellipse=2.0
c_pressure=20.0 ! ice concentration parameter used in ice strength computation
delta_min=1.0e-11 ! [s^(-1)]
evp_rheol_steps=120 ! number of EVP subcycles
alpha_evp=250 ! constant that control numerical stability of mEVP. Adjust with resolution.
beta_evp=250 ! constant that control numerical stability of mEVP. Adjust with resolution.
c_aevp=0.15 ! a tuning constant in aEVP. Adjust with resolution.
Cd_oce_ice=0.0055 ! drag coef. oce - ice
ice_gamma_fct=0.5 ! smoothing parameter
ice_diff=0.0 ! diffusion to stabilize
theta_io=0.0 ! rotation angle
ice_ave_steps=1 ! ice step=ice_ave_steps*oce_step
/

&ice_therm
Sice=4.0 ! Ice salinity 3.2--5.0 ppt.
h0=.5 ! Lead closing parameter [m]
emiss_ice=0.97 ! Emissivity of Snow/Ice,
emiss_wat=0.97 ! Emissivity of open water
albsn=0.81 ! Albedo: frozen snow
albsnm=0.77 ! melting snow
albi=0.7 ! frozen ice
albim=0.68 ! melting ice
albw=0.1 ! open water
con=2.1656 ! Thermal conductivities: ice; W/m/K
consn=0.31 ! snow
/
Loading

0 comments on commit ded066b

Please sign in to comment.