Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Icepack merge #70

Merged
merged 63 commits into from
Feb 11, 2021
Merged
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
2357a4e
.gitignore updated to exclude icepack repository
Mar 20, 2020
479721f
namelists added or modied for running with icepack
Mar 20, 2020
979e662
Code refactoring with derived types for icedrv_domain_size (now icepa…
Mar 21, 2020
4639dfc
Delete .associate_icepack_settings.h.swp
Mar 21, 2020
c980ae6
New structure for modules in icepack_settings
Mar 25, 2020
07cd133
Added namelist variables as type
Mar 25, 2020
1bd541e
Code status before merging changes from master
May 19, 2020
0472adc
New code from master has been merged
May 19, 2020
b2a3217
USE_ICEPACK flag added to cmake
May 19, 2020
55b3f92
Before going to bed...
May 19, 2020
50ac49b
Before attempting submodule implementation
May 20, 2020
aa935d6
Variable declaration with submodules
May 20, 2020
2c07486
Allocated all the variables needed for running Icepack
May 20, 2020
845e6e9
Submodule for initialization of tracers completed
May 22, 2020
c406cf6
Initialization state variables
May 22, 2020
8b2f539
Partial advection implementation
May 27, 2020
6fb01ee
transfer implementation
May 27, 2020
821c0c9
Advection and transfer merged together
May 27, 2020
6bcbfb7
Code compiles with advection and transfer
May 28, 2020
60567a7
Transfer clock variables
May 28, 2020
70cb8cd
Added icepack step submodule
May 28, 2020
fa0d077
Integration of icepack in fesom2 code
May 29, 2020
bcbe1b2
Working version
Jun 2, 2020
a05cec8
Error messages in the separate file icepack.errors
Jun 2, 2020
05cc4da
Ocean evaporation passed from Icepack to Fesom
Jun 2, 2020
69ae7dc
Stable version - results to be checked
Jun 2, 2020
41a5730
Iepack output implemented
Jun 4, 2020
1d7c63a
master branch merged
Jun 4, 2020
1d61256
Restart not working yet
Jun 5, 2020
1738b5a
Restart working - suboptimal code
Jun 5, 2020
1bd2b21
Restart working properly for icepack
Jun 5, 2020
dedf81c
Advection seems to work properly - check better tomorrow
Jun 5, 2020
60c951e
Add small modification in the cut_off subroutine part of the advectio…
Jun 6, 2020
55057c6
Merge remote-tracking branch 'origin/forcing_playground' into icepack…
Jun 8, 2020
01e91bb
model does not compile
Jun 9, 2020
d3020e9
CESM melt pond parameterization & dEdd radiation scheme work properly
Jun 9, 2020
685a7c7
Some cleanup
Jun 11, 2020
dfc5633
namelist.ice updated
Jun 12, 2020
8364c35
Run standard icepack version
Jun 12, 2020
5926b19
Icepack compilation
Jun 12, 2020
3e6c58c
Deleted 0-lyr warning
Jun 17, 2020
5cb4c01
Merge remote-tracking branch 'origin/master' into icepack_v1.2
Jun 17, 2020
0a95e34
Initialize model without sea ice
Jun 17, 2020
38572f3
changes for level ice
Jun 17, 2020
239b99c
Changes before moving to ollie
Jul 9, 2020
383c07d
Commit before migration to github
Nov 5, 2020
22cb8bb
Now Icepack can run with m_EVP and a_EVP
Nov 5, 2020
7b99a38
Modified environment for JUWELS login node compilation
Nov 16, 2020
7983814
Merge branch 'master' of https://github.com/FESOM/fesom2
Nov 16, 2020
e44890e
Merge latest FESOM2 developments
Nov 23, 2020
c87736a
Asyncronous output working for Icepack variables
Nov 24, 2020
49bb729
Facilitate the modularity concerning the sea-ice strength options
Nov 27, 2020
0780dce
Small changes
Nov 30, 2020
474fbd8
Last commit on dkrz
Feb 2, 2021
a12b7ef
Change in JUWELS environment
Feb 5, 2021
ed8d238
Test 1
Feb 5, 2021
2d71125
Merge branch 'master' of https://github.com/FESOM/fesom2
Feb 8, 2021
b3776af
Ready for merging in master
Feb 8, 2021
ec0bad0
Automatize Icepack download
Feb 9, 2021
cf31957
Update to pull request
Feb 10, 2021
63b9c15
Switch off Icepack by default
Feb 10, 2021
d9c5906
bugfix for gfortran – forgot use mod_mesh
Feb 11, 2021
393282a
Now compilation with gfortran works
Feb 11, 2021
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -4,3 +4,6 @@
*.x
#*.out
*~
*.swp
src/icepack_drivers/Icepack
/work_*
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -9,8 +9,9 @@ endif()
project(FESOM2.0)
set(TOPLEVEL_DIR ${CMAKE_CURRENT_LIST_DIR})
set(FESOM_COUPLED OFF CACHE BOOL "compile fesom standalone or with oasis support (i.e. coupled)")
set(OIFS_COUPLED OFF CACHE BOOL "compile fesom coupled to OpenIFS. Also needs FESOM_COUPLED to work)")
set(OIFS_COUPLED OFF CACHE BOOL "compile fesom coupled to OpenIFS. (Also needs FESOM_COUPLED to work)")
set(CRAY OFF CACHE BOOL "compile with cray ftn")
set(USE_ICEPACK OFF CACHE BOOL "compile fesom with the Iceapck modules for sea ice column physics.")
#set(VERBOSE OFF CACHE BOOL "toggle debug output")
#add_subdirectory(oasis3-mct/lib/psmile)
add_subdirectory(src)
Empty file modified config/namelist.config
100755 → 100644
Empty file.
Empty file modified config/namelist.config.dkrz
100755 → 100644
Empty file.
Empty file modified config/namelist.config.hlrn
100755 → 100644
Empty file.
Empty file modified config/namelist.config.orig
100755 → 100644
Empty file.
Empty file modified config/namelist.config.toy_soufflet
100755 → 100644
Empty file.
Empty file modified config/namelist.cvmix
100755 → 100644
Empty file.
58 changes: 58 additions & 0 deletions config/namelist.forcing.era5
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
! This is the namelist file for forcing

&forcing_exchange_coeff
Ce_atm_oce=1.75e-3 ! exchange coeff. of latent heat over open water
Ch_atm_oce=1.75e-3 ! exchange coeff. of sensible heat over open water
Cd_atm_oce=1.0e-3 ! drag coefficient between atmosphere and water
Ce_atm_ice=1.75e-3 ! exchange coeff. of latent heat over ice
Ch_atm_ice=1.75e-3 ! exchange coeff. of sensible heat over ice
Cd_atm_ice=1.2e-3 ! 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:10m, JRA:2m)
ncar_bulk_z_tair=2.0 ! height at which temp forcing is located (CORE:10m, JRA:2m)
ncar_bulk_z_shum=2.0 ! height at which humi forcing is located (CORE:10m, JRA:2m)

/

&land_ice
use_landice_water=.false.
landice_start_mon=5
landice_end_mon=10
/

&nam_sbc
nm_xwind_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/u.' ! name of file with winds, if nm_sbc=2
nm_ywind_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/v.' ! name of file with winds, if nm_sbc=2
nm_humi_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/q.' ! name of file with humidity
nm_qsr_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/ssrd.' ! name of file with solar heat
nm_qlw_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/strd.' ! name of file with Long wave
nm_tair_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/t2m.' ! name of file with 2m air temperature
nm_prec_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/rf.' ! name of file with total precipitation
nm_snow_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/sf.' ! name of file with snow precipitation
nm_mslp_file = '/mnt/lustre01/work/ba1138/a270099/era5/forcing/inverted/sp.' ! air_pressure_at_sea_level
nm_xwind_var = 'u' ! name of variable in file with wind
nm_ywind_var = 'v' ! name of variable in file with wind
nm_humi_var = 'q' ! name of variable in file with humidity
nm_qsr_var = 'ssrd' ! name of variable in file with solar heat
nm_qlw_var = 'strd' ! name of variable in file with Long wave
nm_tair_var = 't2m' ! name of variable in file with 2m air temperature
nm_prec_var = 'rf' ! name of variable in file with total precipitation
nm_snow_var = 'sf' ! name of variable in file with total precipitation
nm_mslp_var = 'sp' ! 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_humi=.true., l_qsr=.true., l_qlw=.true., l_tair=.true., l_prec=.true., l_mslp=.false., l_cloud=.false., l_snow=.true.
nm_runoff_file ='/pool/data/AWICM/FESOM2/FORCING/CORE2/runoff.nc'
runoff_data_source ='CORE2' !Dai09, CORE2, JRA55
!runoff_climatology =.true. ????
nm_sss_data_file ='/pool/data/AWICM/FESOM2/FORCING/CORE2/PHC2_salx.nc'
sss_data_source ='CORE2'
/
55 changes: 55 additions & 0 deletions config/namelist.forcing.ncep
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/bin/bash: This: cng_exchange_coeff
Ce_atm_oce=1.75e-3 ! exchange coeff. of latent heat over open water
Ch_atm_oce=1.75e-3 ! exchange coeff. of sensible heat over open water
Cd_atm_oce=1.0e-3 ! drag coefficient between atmosphere and water
Ce_atm_ice=1.75e-3 ! exchange coeff. of latent heat over ice
Ch_atm_ice=1.75e-3 ! exchange coeff. of sensible heat over ice
Cd_atm_ice=1.2e-3 ! 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=2.0 ! height at which wind forcing is located (CORE, JRA-do: 10m, JRA, NCEP:2m)
ncar_bulk_z_tair=2.0 ! height at which temp forcing is located (CORE, JRA-do: 10m, JRA, NCEP:2m)
ncar_bulk_z_shum=2.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
/

&nam_sbc
nm_xwind_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/UGRD_10maboveground.flxf06.gdas.' ! name of file with winds, if nm_sbc=2
nm_ywind_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/VGRD_10maboveground.flxf06.gdas.' ! name of file with winds, if nm_sbc=2
nm_humi_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/SPFH_2maboveground.flxf06.gdas.' ! name of file with 2m specific humidity
nm_qsr_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/DSWRF_surface.flxf06.gdas.' ! name of file with solar heat
nm_qlw_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/DLWRF_surface.flxf06.gdas.' ! name of file with Long wave
nm_tair_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/TMP_2maboveground.flxf06.gdas.' ! name of file with 2m air temperature
nm_prec_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/RRATE_surface.flxf06.gdas.' ! name of file with rain fall
nm_snow_file = '/mnt/lustre01/work/ba1138/a270099/ncep/forcing/SRATE_surface.flxf06.gdas.' ! name of file with snow fall
nm_mslp_file = '/work/ollie/fkauker/fesom2/cfsr/' ! air_pressure_at_sea_level
nm_xwind_var = 'UGRD_10maboveground' ! name of variable in file with wind
nm_ywind_var = 'VGRD_10maboveground' ! name of variable in file with wind
nm_humi_var = 'SPFH_2maboveground' ! name of variable in file with humidity
nm_qsr_var = 'DSWRF_surface' ! name of variable in file with solar heat
nm_qlw_var = 'DLWRF_surface' ! name of variable in file with Long wave
nm_tair_var = 'TMP_2maboveground' ! name of variable in file with 2m air temperature
nm_prec_var = 'RRATE_surface' ! name of variable in file with total precipitation
nm_snow_var = 'SRATE_surface' ! name of variable in file with total precipitation
nm_mslp_var = '' ! name of variable in file with air_pressure_at_sea_level
nm_nc_iyear = 1970
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 = 86400 ! 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_humi=.true., l_qsr=.true., l_qlw=.true., l_tair=.true., l_prec=.true., l_mslp=.false., l_cloud=.false., l_snow=.true.
nm_runoff_file ='/pool/data/AWICM/FESOM2/FORCING/CORE2/runoff.nc'
runoff_data_source ='CORE2' !Dai09, CORE2, JRA55
nm_sss_data_file ='/pool/data/AWICM/FESOM2/FORCING/CORE2/PHC2_salx.nc'
sss_data_source ='CORE2'
/
Empty file modified config/namelist.forcing_COREI
100755 → 100644
Empty file.
Empty file modified config/namelist.ice
100755 → 100644
Empty file.
146 changes: 146 additions & 0 deletions config/namelist.icepack
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
&env_nml ! In the original release these variables are defined in the icepack.settings
nicecat = 5 ! number of ice thickness categories
nfsdcat = 1 ! number of floe size categories
nicelyr = 4 ! number of vertical layers in the ice
nsnwlyr = 4 ! number of vertical layers in the snow
ntraero = 0 ! number of aerosol tracers (up to max_aero in ice_domain_size.F90)
trzaero = 0 ! number of z aerosol tracers (up to max_aero = 6)
tralg = 0 ! number of algal tracers (up to max_algae = 3)
trdoc = 0 ! number of dissolve organic carbon (up to max_doc = 3)
trdic = 0 ! number of dissolve inorganic carbon (up to max_dic = 1)
trdon = 0 ! number of dissolve organic nitrogen (up to max_don = 1)
trfed = 0 ! number of dissolved iron tracers (up to max_fe = 2)
trfep = 0 ! number of particulate iron tracers (up to max_fe = 2)
nbgclyr = 0 ! number of zbgc layers
trbgcz = 0 ! set to 1 for zbgc tracers (needs TRBGCS = 0 and TRBRI = 1)
trzs = 0 ! set to 1 for zsalinity tracer (needs TRBRI = 1)
trbri = 0 ! set to 1 for brine height tracer
trage = 0 ! set to 1 for ice age tracer
trfy = 0 ! set to 1 for first-year ice area tracer
trlvl = 0 ! set to 1 for level and deformed ice tracers
trpnd = 0 ! set to 1 for melt pond tracers
trbgcs = 0 ! set to 1 for skeletal layer tracers (needs TRBGCZ = 0)
ndtd = 1 ! dynamic time steps per thermodynamic time step
/

&grid_nml
kcatbound = 1
/

&tracer_nml
tr_iage = .false.
tr_FY = .false.
tr_lvl = .false.
tr_pond_cesm = .false.
tr_pond_topo = .false.
tr_pond_lvl = .false.
tr_aero = .false.
tr_fsd = .false.
/

&thermo_nml
kitd = 1
ktherm = 1
conduct = 'bubbly'
a_rapid_mode = 0.5e-3
Rac_rapid_mode = 10.0
aspect_rapid_mode = 1.0
dSdt_slow_mode = -5.0e-8
phi_c_slow_mode = 0.05
phi_i_mushy = 0.85
ksno = 0.3
/

&shortwave_nml
shortwave = 'ccsm3'
albedo_type = 'ccsm3'
albicev = 0.78
albicei = 0.36
albsnowv = 0.98
albsnowi = 0.70
albocn = 0.1
ahmax = 0.3
R_ice = 0.
R_pnd = 0.
R_snw = 1.5
dT_mlt = 1.5
rsnw_mlt = 1500.
kalg = 0.6
/

&ponds_nml
hp1 = 0.01
hs0 = 0.
hs1 = 0.03
dpscale = 1.e-3
frzpnd = 'hlid'
rfracmin = 0.15
rfracmax = 1.
pndaspect = 0.8
/

&forcing_nml
formdrag = .false.
atmbndy = 'default'
calc_strair = .true.
calc_Tsfc = .true.
highfreq = .false.
natmiter = 5
ustar_min = 0.0005
emissivity = 0.95
fbot_xfer_type = 'constant'
update_ocn_f = .false.
l_mpond_fresh = .false.
tfrz_option = 'linear_salt'
oceanmixed_ice = .true.
wave_spec_type = 'none'
/

&dynamics_nml
kstrength = 1
krdg_partic = 1
krdg_redist = 1
mu_rdg = 3
Cf = 17.
P_star = 27000.
C_star = 20.
/

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!! Icepack output namelist !!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

&nml_list_icepack
io_list_icepack = 'aicen ',1, 'm', 4, ! Sea ice concentration
'vicen ',1, 'm', 4, ! Volume per unit area of ice
'vsnon ',1, 'm', 4, ! Volume per unit area of snow
!'Tsfcn ',1, 'm', 4, ! Sea ice surf. temperature
!'iagen ',1, 'm', 4, ! Sea ice age
!'FYn ',1, 'm', 4, ! First year ice
!'lvln ',1, 'm', 4, ! Ridged sea ice area and volume
!'pond_cesmn',1, 'm', 4, ! Melt ponds area, volume and refrozen lid thickness
!'pond_topon',1, 'm', 4, ! Melt ponds area, volume and refrozen lid thickness
!'pond_lvln ',1, 'm', 4, ! Melt ponds area, volume and refrozen lid thickness
!'brinen ',1, 'm', 4, ! Volume fraction of ice with dynamic salt
!'qicen ',1, 'm', 4, ! Sea ice enthalpy
!'sicen ',1, 'm', 4, ! Sea ice salinity
!'qsnon ',1, 'm', 4, ! Snow enthalpy
! Average over thicknes classes
!'aice ',1, 'm', 4, ! Sea ice concentration
!'vice ',1, 'm', 4, ! Volume per unit area of ice
!'vsno ',1, 'm', 4, ! Volume per unit area of snow
!'Tsfc ',1, 'm', 4, ! Sea ice surf. temperature
!'iage ',1, 'm', 4, ! Sea ice age
!'FY ',1, 'm', 4, ! First year ice
!'lvl ',1, 'm', 4, ! Ridged sea ice area and volume
!'pond_cesm ',1, 'm', 4, ! Melt ponds area, volume and refrozen lid thickness
!'pond_topo ',1, 'm', 4, ! Melt ponds area, volume and refrozen lid thickness
!'pond_lvl ',1, 'm', 4, ! Melt ponds area, volume and refrozen lid thickness
!'brine ',1, 'm', 4, ! Volume fraction of ice with dynamic salt
!'qice ',1, 'm', 4, ! Sea ice enthalpy
!'sice ',1, 'm', 4, ! Sea ice salinity
!'qsno ',1, 'm', 4, ! Snow enthalpy
! Other variables
!'uvel ',1, 'm', 4, ! x-component of sea ice velocity
!'vvel ',1, 'm', 4, ! y-component of sea ice velocity
/
Loading