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

bgcISPOL dates #151

Closed
eclare108213 opened this issue Feb 10, 2018 · 0 comments
Closed

bgcISPOL dates #151

eclare108213 opened this issue Feb 10, 2018 · 0 comments

Comments

@eclare108213
Copy link
Contributor

The time of the timestep and the forcing time are not correct in the bgcISPOL runs. It initializes to the correct date but the dates then revert to Jan 1. The forcing seems to be for the right time, though, because the fall freeze-up happens in the spring. I think this is just an initialization problem.

phil-blain added a commit to phil-blain/Icepack that referenced this issue Apr 7, 2022
Since CICE-Consortium/CICE@83686a3f (Implement box model test from 2001
JCP paper (CICE-Consortium#151), 2018-10-22) one can set 'ktherm = -1' in the CICE
namelist to disable the thermodynamics. This was added specifically for
the "Box 2001" test case (configuration/scripts/options/set_nml.box2001
in CICE) which also sets 'calc_strair' to false.

'ktherm = -1' is documented as disabling the thermodynamics in the
Icepack documentation since 2b27a78 (Update documentation including
namelist tables (CICE-Consortium#322), 2020-06-05), although this capability does not
exist in Icepack standalone, since the modifications to
CICE_RunMod::ice_step in CICE-Consortium/CICE@83686a3f were not copied
to the Icepack driver in icedrv_RunMod::ice_step. A simple
implementation in Icepack would be to add the CICE driver logic added in
CICE-Consortium/CICE@83686a3f in the Icepack driver. However, as
explained below things are not as simple.

It can be useful to disable thermodynamics but run the model with
'calc_strair = .true.'. This currently does not work as could be
expected in CICE, since the atmospheric stresses are computed in
icepack_atmo::icepack_atm_boundary, which is called from
icepack_therm_vertical::icepack_step_therm1, itself called from
ice_step_mod::step_therm1, which is only called if 'ktherm >= 0' (since
CICE-Consortium/CICE@83686a3f). This leads to atmospheric stress being
always zero under 'calc_strair = .true.', 'ktherm = -1'.

In order to allow computing the atmospheric stresses in this case, add
some logic the icepack_therm_vertical::icepack_step_therm1 to run some
parts of the subroutine only if 'ktherm >= 0'. Namely, let
frzmlt_bottom_lateral, set_sfcflux, thermo_vertical, update_aerosol,
update_isotope and compute_ponds_{cesm,lvl,topo} only be called if
'ktherm >=0'. Conversely, always run neutral_drag_coeffs,
icepack_atm_boundary, increment_age, update_FYarea and merge_fluxes.

This commit does changes behaviour for potential users of Icepack as a
library who initialize Icepack with 'ktherm=-1', 'calc_strair=.true.'
and call 'icepack_step_therm1', as this now will yield non-zero
atmospheric stresses. However, We do not anticipate this change to break
a lot of users, since anyway setting 'ktherm=-1' before this commit had
no effect whatsoever. The new behaviour aruably makes more sense
physically.

An upcoming commit will implement support for setting 'ktherm=-1' in the
Icepack driver.

Since we modify the indentation of several lines to keep the code
readable, this commit is best viewed using 'git diff --ignore-all-space'.
phil-blain added a commit to phil-blain/Icepack that referenced this issue Apr 8, 2022
Since CICE-Consortium/CICE@83686a3f (Implement box model test from 2001
JCP paper (CICE-Consortium#151), 2018-10-22) one can set 'ktherm = -1' in the CICE
namelist to disable the thermodynamics. This was added specifically for
the "Box 2001" test case (configuration/scripts/options/set_nml.box2001
in CICE) which also sets 'calc_strair' to false.

'ktherm = -1' is documented as disabling the thermodynamics in the
Icepack documentation since 2b27a78 (Update documentation including
namelist tables (CICE-Consortium#322), 2020-06-05), although this capability does not
exist in Icepack standalone, since the modifications to
CICE_RunMod::ice_step in CICE-Consortium/CICE@83686a3f were not copied
to the Icepack driver in icedrv_RunMod::ice_step. A simple
implementation in Icepack would be to add the CICE driver logic added in
CICE-Consortium/CICE@83686a3f in the Icepack driver. However, as
explained below things are not as simple.

It can be useful to disable thermodynamics but run the model with
'calc_strair = .true.'. This currently does not work as could be
expected in CICE, since the atmospheric stresses are computed in
icepack_atmo::icepack_atm_boundary, which is called from
icepack_therm_vertical::icepack_step_therm1, itself called from
ice_step_mod::step_therm1, which is only called if 'ktherm >= 0' (since
CICE-Consortium/CICE@83686a3f). This leads to atmospheric stress being
always zero under 'calc_strair = .true.', 'ktherm = -1'.

In order to allow computing the atmospheric stresses in this case, add
some logic the icepack_therm_vertical::icepack_step_therm1 to run some
parts of the subroutine only if 'ktherm >= 0'. Namely, let the advanced
snow physics, frzmlt_bottom_lateral, set_sfcflux, thermo_vertical,
update_aerosol, update_isotope and compute_ponds_{cesm,lvl,topo} only be
called if 'ktherm >=0'. Conversely, always run neutral_drag_coeffs,
icepack_atm_boundary, increment_age, update_FYarea and merge_fluxes.

This commit does changes behaviour for potential users of Icepack as a
library who initialize Icepack with 'ktherm=-1', 'calc_strair=.true.'
and call 'icepack_step_therm1', as this now results in most of the
thermodynamics being disabled, and will yield non-zero atmospheric
stresses. However, we do not anticipate this change to break a lot of
users, since anyway setting 'ktherm=-1' before this commit had no effect
whatsoever in Icepack. The new behaviour aruably makes more sense
physically.

An upcoming commit will implement support for setting 'ktherm=-1' in the
Icepack driver.

Since we modify the indentation of several lines to keep the code
readable, this commit is best viewed using 'git diff --ignore-all-space'.
phil-blain added a commit to phil-blain/Icepack that referenced this issue Apr 8, 2022
Since CICE-Consortium/CICE@83686a3f (Implement box model test from 2001
JCP paper (CICE-Consortium#151), 2018-10-22) one can set 'ktherm = -1' in the CICE
namelist to disable the thermodynamics. This was added specifically for
the "Box 2001" test case (configuration/scripts/options/set_nml.box2001
in CICE) which also sets 'calc_strair' to false.

'ktherm = -1' is documented as disabling the thermodynamics in the
Icepack documentation since 2b27a78 (Update documentation including
namelist tables (CICE-Consortium#322), 2020-06-05), although this capability does not
exist in Icepack standalone, since the modifications to
CICE_RunMod::ice_step in CICE-Consortium/CICE@83686a3f were not copied
to the Icepack driver in icedrv_RunMod::ice_step. A simple
implementation in Icepack would be to add the CICE driver logic added in
CICE-Consortium/CICE@83686a3f in the Icepack driver. However, as
explained below things are not as simple.

It can be useful to disable thermodynamics but run the model with
'calc_strair = .true.'. This currently does not work as could be
expected in CICE, since the atmospheric stresses are computed in
icepack_atmo::icepack_atm_boundary, which is called from
icepack_therm_vertical::icepack_step_therm1, itself called from
ice_step_mod::step_therm1, which is only called if 'ktherm >= 0' (since
CICE-Consortium/CICE@83686a3f). This leads to atmospheric stress being
always zero under 'calc_strair = .true.', 'ktherm = -1'.

In order to allow computing the atmospheric stresses in this case, add
some logic the icepack_therm_vertical::icepack_step_therm1 to run some
parts of the subroutine only if 'ktherm >= 0'. Namely, let
frzmlt_bottom_lateral, set_sfcflux, thermo_vertical, update_aerosol,
update_isotope and compute_ponds_{cesm,lvl,topo} only be called if
'ktherm >=0'. Conversely, always run neutral_drag_coeffs,
icepack_atm_boundary, increment_age, update_FYarea and merge_fluxes.

This commit does changes behaviour for potential users of Icepack as a
library who initialize Icepack with 'ktherm=-1', 'calc_strair=.true.'
and call 'icepack_step_therm1', as this now will yield non-zero
atmospheric stresses. However, We do not anticipate this change to break
a lot of users, since anyway setting 'ktherm=-1' before this commit had
no effect whatsoever. The new behaviour aruably makes more sense
physically.

An upcoming commit will implement support for setting 'ktherm=-1' in the
Icepack driver.

Since we modify the indentation of several lines to keep the code
readable, this commit is best viewed using 'git diff --ignore-all-space'.
lettie-roach pushed a commit to lettie-roach/Icepack that referenced this issue Oct 18, 2022
* Add gbox80 grid configuration

* Add option files for the box2001 case (Hunke, E.C., 2001.  Viscout-plastic sea ice dynamics with the EVP model: linearization issues. J. Comp. Phys. 170, 18-38.)

* Modifications and additions to F90 files required for the box2001 case

* Update box2001 namelist file to have both N/S and E/W boundary types set to 'open'

* modifications to allow for constant coriolis

* modifications for updates to namelist file

* Update ice_in to include coriolis and x/y_spacing variables

* replace x_spacing and y_spacing with dxrect and dyrect in the namelists

* Add  to the box2001 namelist file

* Add new 'thermo' namelist variable to disable thermodynamics.  Add code to set coriolis term to zero.  Update box2001 namelist option file

* Update rectgrid subroutine to set a land mask of 2 grid points around the 80x80 box.

* Update user-guide case settings documentation to include the new namelist variables added for the box2001 test case

* Fix bug in documentation added in previous commit for box2001

* More updates to user guide case settings for box2001 test case

* Remove duplicate  namelist definition in user guide testing

* Add description of box2001 test to the testing documentation

* Typo fix in documentation

* Fix indentation

* Updates to remove the thermo namelist variable, and instead turn off thermodynamics with kdyn=-1.

* Modifications to not call init_flux_* in cice_run if the 2001 test case is run

* Add new kridge and ktransport namelist options, as well as conditionals to turn off ridging and transport

* Resolve namelist errors that were introduced during the merge conflict resolution

* Fix a bug that caused binary data to be written to the log file

* Remove unused variables from ice_step

* Remove unused variables from ice_forcing file

* initialize ice state

* replace land_override with close_boundaries.

* Replace 'default' with 'latitude' as the default coriolis value

* Update documentation to include new namelist variables kridge and ktransport

* Re-add dxrect and dyrect as variables in ice_init.  This was a bug introduced during merge conflict resolution

* correct configuration options

* miscellaneous updates, increased run length

* use strax,y (input directly) instead of strairx,yT (calculated) and set calc_strair=F
lettie-roach pushed a commit to lettie-roach/Icepack that referenced this issue Oct 18, 2022
* drivers/hadgem3: add missing 'subname' and use existing 'subname's

* drivers/hadgem3/CICE_InitMod: update 'init_lvl' call

Add the required 'iblk' argument.

* drivers/hadgem3/CICE_RunMod: remove uneeded 'dt' arguments

The subroutines 'prep_radiation', 'zsal_diags', 'bgc_diags' and 'hbrine_diags'
do not take a 'dt' argument anymore, so remove it.

* drivers/hadgem3/CICE_RunMod: get 'Lsub' from Icepack

* drivers/hadgem3/CICE_RunMod: remove 'da_state_update' subroutine

This subroutine is inside an 'ICE_DA' CPP, which is not used in
any configuration. Remove it.

* drivers/hadgem3/CICE_RunMod: remove stray '+'

This '+' sign was copy-pasted there in error in 29b99b6 (CICE: Floe size
distribution  (CICE-Consortium#382), 2019-12-07). Remove it.

* drivers/hadgem3: remove obsolete 'check_finished_file' subroutine

Remove the call to 'check_finished_file' as well as the definition
of the subroutine, as the 'hadgem3' driver is not used on machine 'bering'
and it's unclear if machine 'bering' still exists.

* drivers/hadgem3: fix cice_init so it calls 'count_tracers'

This was forgotten back in 8b0ae03 (Refactor tracer initialization (CICE-Consortium#235), 2018-11-16)

* drivers/hadgem3/CICE_RunMod: add call to 'save_init'

The hadgem3 driver was not updated when 'save_init' was added in 83686a3
(Implement box model test from 2001 JCP paper (CICE-Consortium#151), 2018-10-22). As
this subroutine is necessary to ensure proper initialization of the
model, add it now.

* drivers/hadgem3/CICE_RunMod: tweak loop indices in 'coupling_prep'

Other drivers use 'ilo,ihi' and 'jlo,jhi' here. Do the same.

* drivers/hagdem3: update driver to new time manager

* drivers/hadgem3: pass 'mpi_comm_opa' explicitely to init_communicate

In 066070e (Fix minor issues in documentation, key_ CPPs, bfbcomp return
codes (#532), 2020-11-23), the 'ice_communicate' module was updated to
remove CPP macros relating to the OASIS coupler (key_oasis*) and to the
NEMO ocean model (key_iomput). These CPPs were used to make the correct
MPI communicator accessible to the 'init_communicate' subroutine.
However, that subroutine already accepts an optional MPI communicator as
argument and it was deemed cleaner to require the driver layer to
explicitely pass the communicator instead of making it accessible
through 'use' statements.

Update the 'hadgem3' driver, used for coupling with NEMO, to explicitely
pass the NEMO MPI communicator 'mpi_comm_opa' to 'init_communicate'.

* drivers: add 'nemo_concepts' driver

Historically the 'hadgem3' driver has been used when compiling a single
NEMO-CICE executable at ECCC.

Going forward, all driver-level adjustements will be done in our own
driver, 'nemo_concepts', 'CONCEPTS' being the name of the
multi-departmental collaboration around using the NEMO ocean model.

Copy CICE_InitMod, CICE_RunMod and CICE_FinalMod from the 'hadgem3'
directory to a new 'nemo_concepts' directory under 'drivers/direct'.

The following commits will clean up this new driver and port over some
in-house adjustments.

* drivers/nemo_concepts: remove unused 'writeout_finished_file' subroutine

This subroutine was only called on machine 'bering', which is not an
ECCC machine and probably does not exist anymore anyway. Remove it.

* drivers/nemo_concepts: call 'scale_fluxes' with 'aice_init'

Since 'merge_fluxes' is called with aice_init, it is more consistent to
also call 'scale_fluxes', in 'coupling_prep' with 'aice_init'
instead of 'aice'.

Copy this in-house change to the new 'nemo_concepts' driver.
phil-blain added a commit to phil-blain/Icepack that referenced this issue Feb 6, 2024
Since CICE-Consortium/CICE@83686a3f (Implement box model test from 2001
JCP paper (CICE-Consortium#151), 2018-10-22) one can set 'ktherm = -1' in the CICE
namelist to disable the thermodynamics. This was added specifically for
the "Box 2001" test case (configuration/scripts/options/set_nml.box2001
in CICE) which also sets 'calc_strair' to false.

'ktherm = -1' is documented as disabling the thermodynamics in the
Icepack documentation since 2b27a78 (Update documentation including
namelist tables (CICE-Consortium#322), 2020-06-05), although this capability does not
exist in Icepack standalone, since the modifications to
CICE_RunMod::ice_step in CICE-Consortium/CICE@83686a3f were not copied
to the Icepack driver in icedrv_RunMod::ice_step. A simple
implementation in Icepack would be to add the CICE driver logic added in
CICE-Consortium/CICE@83686a3f in the Icepack driver. However, as
explained below things are not as simple.

It can be useful to disable thermodynamics but run the model with
'calc_strair = .true.'. This currently does not work as could be
expected in CICE, since the atmospheric stresses are computed in
icepack_atmo::icepack_atm_boundary, which is called from
icepack_therm_vertical::icepack_step_therm1, itself called from
ice_step_mod::step_therm1, which is only called if 'ktherm >= 0' (since
CICE-Consortium/CICE@83686a3f). This leads to atmospheric stress being
always zero under 'calc_strair = .true.', 'ktherm = -1'.

In order to allow computing the atmospheric stresses in this case, add
some logic the icepack_therm_vertical::icepack_step_therm1 to run some
parts of the subroutine only if 'ktherm >= 0'. Namely, let
frzmlt_bottom_lateral, set_sfcflux, thermo_vertical, update_aerosol,
update_isotope, drain_snow and compute_ponds_{cesm,lvl,topo} only be
called if 'ktherm >=0'. Conversely, always run neutral_drag_coeffs,
icepack_atm_boundary, increment_age, update_FYarea and merge_fluxes.

This commit does changes behaviour for potential users of Icepack as a
library who initialize Icepack with 'ktherm=-1', 'calc_strair=.true.'
and call 'icepack_step_therm1', as this now will yield non-zero
atmospheric stresses. However, We do not anticipate this change to break
a lot of users, since anyway setting 'ktherm=-1' before this commit had
no effect whatsoever. The new behaviour aruably makes more sense
physically.

An upcoming commit will implement support for setting 'ktherm=-1' in the
Icepack driver.

Note that we use one line 'if' statements and avoid adjusting
indentation in order to reduce the risk of merge conflicts when this
commit is rebased onto a newer version of CICE.
phil-blain added a commit to phil-blain/Icepack that referenced this issue Feb 7, 2024
Since CICE-Consortium/CICE@83686a3f (Implement box model test from 2001
JCP paper (CICE-Consortium#151), 2018-10-22) one can set 'ktherm = -1' in the CICE
namelist to disable the thermodynamics. This was added specifically for
the "Box 2001" test case (configuration/scripts/options/set_nml.box2001
in CICE) which also sets 'calc_strair' to false.

'ktherm = -1' is documented as disabling the thermodynamics in the
Icepack documentation since 2b27a78 (Update documentation including
namelist tables (CICE-Consortium#322), 2020-06-05), although this capability does not
exist in Icepack standalone, since the modifications to
CICE_RunMod::ice_step in CICE-Consortium/CICE@83686a3f were not copied
to the Icepack driver in icedrv_RunMod::ice_step. A simple
implementation in Icepack would be to add the CICE driver logic added in
CICE-Consortium/CICE@83686a3f in the Icepack driver. However, as
explained below things are not as simple.

It can be useful to disable thermodynamics but run the model with
'calc_strair = .true.'. This currently does not work as could be
expected in CICE, since the atmospheric stresses are computed in
icepack_atmo::icepack_atm_boundary, which is called from
icepack_therm_vertical::icepack_step_therm1, itself called from
ice_step_mod::step_therm1, which is only called if 'ktherm >= 0' (since
CICE-Consortium/CICE@83686a3f). This leads to atmospheric stress being
always zero under 'calc_strair = .true.', 'ktherm = -1'.

In order to allow computing the atmospheric stresses in this case, add
some logic the icepack_therm_vertical::icepack_step_therm1 to run some
parts of the subroutine only if 'ktherm >= 0'. Namely, let
frzmlt_bottom_lateral, set_sfcflux, thermo_vertical, update_aerosol,
update_isotope, drain_snow and compute_ponds_{cesm,lvl,topo} only be
called if 'ktherm >=0'. Conversely, always run neutral_drag_coeffs,
icepack_atm_boundary, increment_age, update_FYarea and merge_fluxes.

This commit does changes behaviour for potential users of Icepack as a
library who initialize Icepack with 'ktherm=-1', 'calc_strair=.true.'
and call 'icepack_step_therm1', as this now will yield non-zero
atmospheric stresses. However, We do not anticipate this change to break
a lot of users, since anyway setting 'ktherm=-1' before this commit had
no effect whatsoever. The new behaviour aruably makes more sense
physically.

An upcoming commit will implement support for setting 'ktherm=-1' in the
Icepack driver.

Note that we use one line 'if' statements and avoid adjusting
indentation in order to reduce the risk of merge conflicts when this
commit is rebased onto a newer version of CICE.
phil-blain added a commit to phil-blain/Icepack that referenced this issue Feb 12, 2024
Since CICE-Consortium/CICE@83686a3f (Implement box model test from 2001
JCP paper (CICE-Consortium#151), 2018-10-22) one can set 'ktherm = -1' in the CICE
namelist to disable the thermodynamics. This was added specifically for
the "Box 2001" test case (configuration/scripts/options/set_nml.box2001
in CICE) which also sets 'calc_strair' to false.

'ktherm = -1' is documented as disabling the thermodynamics in the
Icepack documentation since 2b27a78 (Update documentation including
namelist tables (CICE-Consortium#322), 2020-06-05), although this capability does not
exist in Icepack standalone, since the modifications to
CICE_RunMod::ice_step in CICE-Consortium/CICE@83686a3f were not copied
to the Icepack driver in icedrv_RunMod::ice_step. A simple
implementation in Icepack would be to add the CICE driver logic added in
CICE-Consortium/CICE@83686a3f in the Icepack driver. However, as
explained below things are not as simple.

It can be useful to disable thermodynamics but run the model with
'calc_strair = .true.'. This currently does not work as could be
expected in CICE, since the atmospheric stresses are computed in
icepack_atmo::icepack_atm_boundary, which is called from
icepack_therm_vertical::icepack_step_therm1, itself called from
ice_step_mod::step_therm1, which is only called if 'ktherm >= 0' (since
CICE-Consortium/CICE@83686a3f). This leads to atmospheric stress being
always zero under 'calc_strair = .true.', 'ktherm = -1'.

In order to allow computing the atmospheric stresses in this case, add
some logic the icepack_therm_vertical::icepack_step_therm1 to run some
parts of the subroutine only if 'ktherm >= 0'. Namely, let
frzmlt_bottom_lateral, set_sfcflux, thermo_vertical, update_aerosol,
update_isotope, drain_snow and compute_ponds_{cesm,lvl,topo} only be
called if 'ktherm >=0'. Conversely, always run neutral_drag_coeffs,
icepack_atm_boundary, increment_age, update_FYarea and merge_fluxes.

This commit does changes behaviour for potential users of Icepack as a
library who initialize Icepack with 'ktherm=-1', 'calc_strair=.true.'
and call 'icepack_step_therm1', as this now will yield non-zero
atmospheric stresses. However, We do not anticipate this change to break
a lot of users, since anyway setting 'ktherm=-1' before this commit had
no effect whatsoever. The new behaviour aruably makes more sense
physically.

An upcoming commit will implement support for setting 'ktherm=-1' in the
Icepack driver.

Note that we use one line 'if' statements and avoid adjusting
indentation in order to reduce the risk of merge conflicts when this
commit is rebased onto a newer version of CICE.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants