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

MDF/MOSAiC forcing options #500

Draft
wants to merge 45 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
f61b4b1
up to reading time01
davidclemenssewall May 8, 2023
8d0eb98
ran into ntime /= npt issue
davidclemenssewall May 11, 2023
92b7cf3
made *_data arrays allocatable to solve ntime issue, now getting a se…
davidclemenssewall May 11, 2023
52af4e1
forgot to allocate open_data and clos_data, fixed and solved seg fault
davidclemenssewall May 11, 2023
4c9fed7
averaging function runs
davidclemenssewall May 11, 2023
8c99a08
Now working for Tair
davidclemenssewall May 11, 2023
e9cac2d
works okay, qa/1000 and fsnow and frain set to 0
davidclemenssewall May 12, 2023
3409f42
dummy ocean forcing and initial conditions closer to mosaic
davidclemenssewall May 16, 2023
7055333
fixed istep /= istep1 issue, now can start at times other than Jan. 1
davidclemenssewall May 22, 2023
312b24c
Merge branch 'main' into for_igs
davidclemenssewall May 22, 2023
c97bc56
updated forcing code now that MDF doesn't write calendar
davidclemenssewall Oct 24, 2023
c69f403
added functionality for precipitation and ocean mixed layer forcing
davidclemenssewall Dec 18, 2023
71a176c
partially through changes to add ice thickness init options
davidclemenssewall Jan 11, 2024
78f761c
init ice thickness complete and checked that results match
davidclemenssewall Jan 11, 2024
9db2ef6
set initial sst working
davidclemenssewall Jan 11, 2024
9f297c1
removed setting sst from icedrv_flux
davidclemenssewall Jan 12, 2024
f00f46b
fixed sss, qdp, and hmix all working
davidclemenssewall Jan 12, 2024
5a6ae48
Merge branch 'main' into mosaic_ocn_forcing to stay up to date with c…
davidclemenssewall Jan 12, 2024
6219577
Merge branch 'init_options' into mosaic_ocn_forcing
davidclemenssewall Jan 12, 2024
397e09a
change atmmosaic options
davidclemenssewall Jan 16, 2024
dd92954
updated atmmosaic and ocnmosaic to new forcings
davidclemenssewall May 8, 2024
2c8195a
updated names for downwelling radiation fields in forcing to correct …
davidclemenssewall May 8, 2024
e6c0dce
updated mosaic settings to account for fact that ADC converts - to _ …
davidclemenssewall Aug 3, 2024
6be69b0
Merge branch 'main' into mosaic_forcing_clean
davidclemenssewall Aug 7, 2024
ac5ad88
Merge branch 'main' into mosaic_forcing_clean
davidclemenssewall Sep 4, 2024
c3a815d
Cleaned up extraneous comments and renamed precalc_forc
davidclemenssewall Sep 5, 2024
946fbcb
added check for standard calendar and leap years
davidclemenssewall Sep 24, 2024
38995e7
Merge branch 'main' into mosaic_forcing_clean
davidclemenssewall Sep 24, 2024
0eb1066
changed driver such that sstdat is initialized from sst_init, instead…
davidclemenssewall Sep 25, 2024
3c00c2f
reset sst initialization to align with main
davidclemenssewall Sep 25, 2024
ab1fd79
set qdp_fixed to 0.0 to align with ocn_data_type = 'default' and adde…
davidclemenssewall Sep 27, 2024
12a692b
fixed trailing whitespace
davidclemenssewall Sep 27, 2024
0b4b404
Merge branch 'main' into mosaic_forcing_clean
davidclemenssewall Sep 30, 2024
b47d4c8
added check to ensure that precalc_forc is only used for the MOSAiC f…
davidclemenssewall Sep 30, 2024
7d88cbf
forcing refactoring and flexible cadence code complete, compiles, doe…
davidclemenssewall Oct 10, 2024
d93b3fc
fixed typo, now runs successfuly
davidclemenssewall Oct 11, 2024
b15d4d5
reorganized data format checks for clarity
davidclemenssewall Oct 11, 2024
429e824
added warning for MOSAiC leg 4-5 transition
davidclemenssewall Oct 11, 2024
358896d
added warning for impact of climatological atmosphere forcing on ocea…
davidclemenssewall Oct 11, 2024
5f36f94
Changed forcing name from MOSAiC to MDF and updated check for MOSAiC …
davidclemenssewall Oct 13, 2024
9cf540f
Updating documentation, MDF forcing added to ug_implementation, start…
davidclemenssewall Oct 13, 2024
c738251
partway through doc update
davidclemenssewall Oct 19, 2024
8f9b081
Merge branch 'main' into mosaic_forcing_clean
davidclemenssewall Nov 11, 2024
8ceed76
finished documentation update
davidclemenssewall Nov 11, 2024
fdafc83
updated documentation to include namelist options for initial ice sta…
davidclemenssewall Nov 11, 2024
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
8 changes: 6 additions & 2 deletions configuration/driver/icedrv_InitMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ subroutine icedrv_initialize
! use icedrv_diagnostics, only: icedrv_diagnostics_debug
use icedrv_flux, only: init_coupler_flux, init_history_therm, &
init_flux_atm_ocn
use icedrv_forcing, only: init_forcing, get_forcing, get_wave_spec
use icedrv_forcing, only: init_forcing, get_forcing, get_wave_spec, precalc_forc
use icedrv_forcing_bgc, only: get_forcing_bgc, faero_default, fiso_default, init_forcing_bgc
use icedrv_restart_shared, only: restart
use icedrv_init, only: input_data, init_state, init_grid2, init_fsd
Expand Down Expand Up @@ -143,7 +143,11 @@ subroutine icedrv_initialize
call init_forcing ! initialize forcing (standalone)
if (skl_bgc .or. z_tracers) call init_forcing_bgc !cn
if (tr_fsd .and. wave_spec) call get_wave_spec ! wave spectrum in ice
call get_forcing(istep1) ! get forcing from data arrays
if (precalc_forc) then
call get_forcing(istep) ! precalculated arrays are indexed by istep
else
call get_forcing(istep1) ! get forcing from data arrays
endif

if (tr_snow) then
call icepack_init_snow ! snow aging table
Expand Down
8 changes: 6 additions & 2 deletions configuration/driver/icedrv_RunMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ module icedrv_RunMod
subroutine icedrv_run

use icedrv_calendar, only: istep, istep1, time, dt, stop_now, calendar
use icedrv_forcing, only: get_forcing, get_wave_spec
use icedrv_forcing, only: get_forcing, get_wave_spec, precalc_forc
use icedrv_forcing_bgc, only: faero_default, fiso_default, get_forcing_bgc
use icedrv_flux, only: init_flux_atm_ocn
use icedrv_history, only: history_format, history_close
Expand Down Expand Up @@ -74,7 +74,11 @@ subroutine icedrv_run
file=__FILE__,line= __LINE__)

if (tr_fsd .and. wave_spec) call get_wave_spec ! wave spectrum in ice
call get_forcing(istep1) ! get forcing from data arrays
if (precalc_forc) then
call get_forcing(istep) ! precalculated arrays are indexed by istep
else
call get_forcing(istep1) ! get forcing from data arrays
endif

! biogeochemistry forcing
if (tr_iso) call fiso_default ! default values
Expand Down
17 changes: 13 additions & 4 deletions configuration/driver/icedrv_flux.F90
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ module icedrv_flux
qdp , & ! deep ocean heat flux (W/m^2), negative upward
hmix ! mixed layer depth (m)

real (kind=dbl_kind), public :: &
sst_init ! initial sea surface temperature (C)

! water isotopes
real (kind=dbl_kind), dimension (nx), public :: &
HDO_ocn , & ! seawater concentration of HDO (kg/kg)
Expand Down Expand Up @@ -184,6 +187,12 @@ module icedrv_flux
fswthru_idr , & ! nir dir shortwave penetrating to ocean (W/m^2)
fswthru_idf ! nir dif shortwave penetrating to ocean (W/m^2)

! fixed ocean mixed layer properties (are overwritten by forcing data)
real (kind=dbl_kind), public :: &
sss_fixed , & ! Sea surface salinity (PSU)
qdp_fixed , & ! Deep ocean heat flux (negative upward, W/m^2)
hmix_fixed ! Mixed layer depth (m)

Comment on lines +190 to +195

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My preference would be to do this in a different PR, so its clear what the scope of the change is (i.e. its not related to MOSAIC forcing data)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I totally agree that this would be best practice. But I admit that I'm loath to do so because the branch I originally made these modifications on is a bit stale and it doesn't feel like a productive use of time to sort through the merge conflicts and do all of the testing if the ultimate outcome for the code is the same. If others feel strongly about it I will try to get to it sometime next week. @apcraig @eclare108213 @dabail10 What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it's worth the extra work at this point, to make a separate PR.

! internal

real (kind=dbl_kind), &
Expand Down Expand Up @@ -486,8 +495,8 @@ subroutine init_coupler_flux
uocn (:) = c0 ! surface ocean currents (m/s)
vocn (:) = c0
frzmlt (:) = c0 ! freezing/melting potential (W/m^2)
sss (:) = 34.0_dbl_kind ! sea surface salinity (ppt)
sst (:) = -1.8_dbl_kind ! sea surface temperature (C)
sss (:) = sss_fixed ! sea surface salinity (ppt)
sst (:) = sst_init ! sea surface temperature (C)
sstdat (:) = sst(:) ! sea surface temperature (C)

! water isotopes from ocean
Expand All @@ -502,8 +511,8 @@ subroutine init_coupler_flux
if (icepack_warnings_aborted()) call icedrv_system_abort(string=subname, &
file=__FILE__,line= __LINE__)

qdp (:) = c0 ! deep ocean heat flux (W/m^2)
hmix (:) = c20 ! ocean mixed layer depth
qdp (:) = qdp_fixed ! deep ocean heat flux (W/m^2)
hmix (:) = hmix_fixed ! ocean mixed layer depth

!-----------------------------------------------------------------
! fluxes sent to atmosphere
Expand Down
Loading
Loading