Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ Makefile.in
mesh_part/build
test/output_pi
src/cvmix_driver/CVMix-*
finished_config.yaml
18 changes: 8 additions & 10 deletions config/bin_2p1z1d/job_albedo
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
#!/bin/bash
#SBATCH --account=nwg_hauck.maresys # edit your account
#SBATCH --account=biogeo_model.biogeo_model # edit your account
#SBATCH --job-name=recom
#SBATCH --partition=mpp
#SBATCH --time=01:30:00
####SBATCH --constraint="[rack1|rack3]"
#SBATCH --qos=12h
#SBATCH --nodes=9 # Number of tasks (MPI) tasks to be launched
#SBATCH --tasks-per-node 96 #8 #4 # using all 128CPus we exceed the maxload limit (>130) of many used nodes when us parallel I/O
#SBATCH --cpus-per-task 1

#SBATCH -o fesom2o.out
#SBATCH -e fesom2e.out
#SBATCH -o slurm-out.out
#SBATCH -e slurm-err.out

# disable hyperthreading
#SBATCH --hint=nomultithread
Expand All @@ -35,23 +34,22 @@ cp -n ../config/namelist.icepack .

#___DETERMINE SLURM JOBID+OUTPUTFILE____________________________________________
jobid=$(echo $SLURM_JOB_ID | cut -d"." -f1)
fname="fesom2_${SLURM_JOB_NAME}_${jobid}.out"
fname="fesom2.0.out"

#___PUT JOB IN QUEUE____________________________________________________________
date
####srun --mpi=pmi2 ./fesom.x >> ${fname}
srun --mpi=pmi2 ./fesom.x > fesom2.0.out
date

#qstat -f $PBS_JOBID
#export EXITSTATUS=$?
#if [ ${EXITSTATUS} -eq 0 ] || [ ${EXITSTATUS} -eq 127 ] ; then
#sbatch job_ollie
#sbatch job_albedo
#fi

#Resultpath='/albedo/scratch/user/ogurses/ocean_only/'
Resultpath='/albedo/scratch/user/ogurses/fesom2.5_recom_st1_vsink_vben_diags/'
test -d $Resultpath/fesom.2019.oce.restart && exit

Resultpath='/albedo/scratch/user/XXXX/'
test -e $Resultpath/fesom.XXXX.oce.restart && exit

IsInFile=$( tail -3 fesom2.0.out | grep -c timesteps)
if (( IsInFile > 0 )); then
Expand Down
142 changes: 104 additions & 38 deletions config/bin_2p1z1d/namelist.config
Original file line number Diff line number Diff line change
@@ -1,67 +1,133 @@
! This is the namelist file for model general configuration
! ============================================================================
! ============ Namelist file for FESOM2 general configuration ================
! ============================================================================
! This file contains the main configuration parameters for FESOM2, including:
! - Model identification and run settings
! - Time stepping and simulation duration
! - Initial time/date settings
! - File paths for mesh, forcing, and output
! - Restart and logging configuration
! - Vertical coordinate system (ALE)
! - Grid geometry and rotation
! - Calendar settings
! - Model components (ice, cavities, etc.)
! - Parallel decomposition
! - Iceberg settings
! ============================================================================

! ============================================================================
! RUN IDENTIFICATION
! ============================================================================
&modelname
runid='fesom'
runid = 'fesom' ! run identifier (used in output filenames)
/

! ============================================================================
! TIME STEPPING AND RUN LENGTH
! ============================================================================
&timestep
step_per_day=32 !96 !96 !72 !72 !45 !72 !96
run_length=1 !62 !62 !62 !28
run_length_unit='y' ! y, m, d, s
step_per_day = 36 ! number of time steps per day (determines dt = 86400/step_per_day seconds)
! common values: 32 (45min), 48 (30min), 72 (20min), 96 (15min), 192 (7min 30sec),
! 216 (6min 40sec), 240 (6min), 288 (5min), 360 (4min), 720 (2min), 1440 (1min), 2880 (30sec)
run_length = 1 ! total length of simulation run
run_length_unit = 'y' ! unit for run_length: 'y' (years), 'm' (months), 'd' (days), 's' (steps)
/

&clockinit ! the model starts at
timenew=0.0
daynew=1
yearnew=1958
! ============================================================================
! INITIAL TIME/DATE SETTINGS
! ============================================================================
&clockinit
timenew = 0.0 ! initial time within the day [seconds] (0.0 = midnight)
daynew = 1 ! initial day of the month (1-31)
yearnew = 1958 ! initial year
/

! ============================================================================
! MESH, INITIALIZATION & OUTPUT PATHS
! ============================================================================
&paths
MeshPath='/albedo/work/projects/p_recompdaf/frbunsen/FESOM2/meshes/core2/'
ClimateDataPath='/albedo/work/projects/MarESys/ogurses/input/corrected_input/'
ResultPath='/albedo/scratch/user/ogurses/fesom2.5_recom_st1_vsink_vben_diags/'
MeshPath = '/albedo/work/projects/p_recompdaf/frbunsen/FESOM2/meshes/core2/' ! path to mesh files (nod2d.out, elem2d.out, etc.)
ClimateDataPath = '/albedo/work/projects/MarESys/ogurses/input/corrected_input/' ! path to initial conditions (temperature, salinity)
ResultPath = '/albedo/scratch/user/XXXX'
/

! ============================================================================
! RESTART AND LOGGING CONFIGURATION
! ============================================================================
&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='off' ! e.g. y, d, h, s, off
bin_restart_length=1 ! --> do derived type binary restart
bin_restart_length_unit='off' ! e.g. y, d, h, s, off
logfile_outfreq=960 !in logfile info. output frequency, # steps
restart_length = 1 ! frequency for netCDF restart files (required for d,h,s; y,m use 1)
restart_length_unit = 'y' ! unit: 'y' (years), 'm' (months), 'd' (days), 'h' (hours), 's' (steps), 'off' (disabled)
raw_restart_length = 1 ! frequency for raw core dump restart files
raw_restart_length_unit = 'off' ! unit: 'y', 'm', 'd', 'h', 's', 'off'
bin_restart_length = 1 ! frequency for binary derived type restart files
bin_restart_length_unit = 'off' ! unit: 'y', 'm', 'd', 'h', 's', 'off'
logfile_outfreq = 960 ! log file output frequency [number of time steps]
/

! ============================================================================
! VERTICAL COORDINATE SYSTEM (ALE - Arbitrary Lagrangian-Eulerian)
! ============================================================================
&ale_def
which_ALE='zstar' ! 'linfs','zlevel', 'zstar'
use_partial_cell=.true.
which_ALE = 'zstar' ! vertical coordinate type:
! 'linfs' = linear free surface
! 'zlevel' = z-level (fixed depth levels)
! 'zstar' = z-star (terrain-following with SSH scaling)
use_partial_cell = .false. ! use partial bottom cells for better topography representation (not recommended)
/

! ============================================================================
! GRID GEOMETRY AND ROTATION
! ============================================================================
&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.
cartesian = .false. ! use Cartesian coordinates (false = spherical Earth)
fplane = .false. ! use f-plane approximation (constant Coriolis parameter)
cyclic_length = 360 ! length of cyclic domain [degrees] (360 = global)
rotated_grid = .true. ! use rotated grid (typically for coupled models to avoid pole singularity)
force_rotation = .true. ! force grid rotation even if not coupled
alphaEuler = 50. ! first Euler angle (rotation around z-axis) [degrees]
betaEuler = 15. ! second Euler angle (rotation around new x-axis) [degrees]
gammaEuler = -90. ! third Euler angle (rotation around new z-axis) [degrees]
! Euler angle convention: rotate first around z, then around new x, then around new z
/

! ============================================================================
! CALENDAR SETTINGS
! ============================================================================
&calendar
include_fleapyear=.false.
include_fleapyear = .false. ! include leap years in calendar (false = 365-day year, true = 365/366-day year)
/

! ============================================================================
! MODEL COMPONENTS AND FEATURES
! ============================================================================
&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_ice = .true. ! enable sea ice model
use_cavity = .false. ! enable ice shelf cavities
use_cavity_partial_cell = .false. ! use partial cells in ice shelf cavities (not recommended)
use_floatice = .false. ! enable floating ice (icebergs)
use_sw_pene = .true. ! enable shortwave radiation penetration into ocean
flag_debug = .false. ! enable debug output (verbose logging)
use_transit = .false. ! enable transient tracer module (CFCs, SF6, etc.)
/

! ============================================================================
! PARALLEL DECOMPOSITION (DOMAIN PARTITIONING)
! ============================================================================
&machine
n_levels=2
n_part= 12, 36 ! 432 number of partitions on each hierarchy level
n_levels = 2 ! number of hierarchy levels for domain decomposition
n_part = 2, 128 ! number of partitions at each level (total CPUs = product of n_part)
! example: 2 x 128 = 256 MPI tasks
! adjust based on mesh size and available compute resources
! maximum scaling reached at ~300 FESOM2 2D nodes per CPU (see first line in nod2d.out for number of 2D nodes)
/

! ============================================================================
! ICEBERG SETTINGS
! ============================================================================
&icebergs
use_icesheet_coupling = .false. ! enable ice sheet model
ib_num = 1 ! number of iceberg classes
use_icebergs = .false. ! enable iceberg module
steps_per_ib_step = 8 ! ocean time steps per iceberg time step (iceberg subcycling)
ib_async_mode = 0 ! iceberg asynchronous mode (0=synchronous, 1=asynchronous)
/
36 changes: 28 additions & 8 deletions config/bin_2p1z1d/namelist.forcing
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,23 @@ ncar_bulk_z_shum=10.0 ! height at which humi forcing is located (CORE, JRA-do: 1
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 = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/uas.clim61' ! name of file with winds, if nm_sbc=2
nm_ywind_file = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/vas.clim61' ! name of file with winds, if nm_sbc=2
nm_xstre_file = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/uas.clim61' ! name of file with winds, if nm_sbc=2
nm_ystre_file = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/vas.clim61' ! name of file with winds, if nm_sbc=2
nm_humi_file = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/huss.clim61' ! name of file with humidity
nm_qsr_file = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/rsds.clim61' ! name of file with solar heat
nm_qlw_file = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/rlds.clim61' ! name of file with Long wave
Expand All @@ -37,24 +49,32 @@ landice_end_mon=10
nm_mslp_file = '/albedo/work/projects/MarESys/FROM-OLLIE/forcing_JRA55-do-v1.4.0_clim61/psl.clim61' ! 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_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_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_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)
y_perpetual=.true.
l_xwind=.true. l_ywind=.true. l_humi=.true. l_qsr=.true. l_qlw=.true. l_tair=.true. l_prec=.true. l_mslp=.true. l_cloud=.false. l_snow=.true.
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=.true. l_cloud=.false. l_snow=.true.
nm_runoff_file ='/albedo/pool/FESOM/forcing/CORE2/runoff.nc'
runoff_data_source ='CORE2' !Dai09, CORE2
!runoff_data_source ='Dai09' !Dai09, CORE2, JRA55
!runoff_climatology =.true.
nm_sss_data_file ='/albedo/pool/FESOM/forcing/CORE2/PHC2_salx.nc'
sss_data_source ='CORE2'
nm_sss_data_file ='/albedo/pool/FESOM/forcing/CORE2/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.
/
1 change: 0 additions & 1 deletion config/bin_2p1z1d/namelist.io
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ io_list = 'sst ',1, 'm', 4,
'Hp ',1, 'm', 4,
'aFe ',1, 'm', 4,
'aN ',1, 'm', 4,
'denb ',1, 'm', 4,
'benN ',1, 'm', 4,
'benC ',1, 'm', 4,
'benSi ',1, 'm', 4,
Expand Down
Loading
Loading