-
Notifications
You must be signed in to change notification settings - Fork 137
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
Update documentation including namelist tables #322
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
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 pull request
Apr 7, 2022
As noted in the previous commit, '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. Update icedrv_RunMod::ice_step to call some subroutines only if the thermodynamics is enabled ('ktherm >= 0'). Namely, let prep_radiation, biogeochemistry, step_therm2 and step_radiation only be called when thermodynamics is enabled, while letting the rest of the subroutines always be called. As noted in the previous commit, 'step_therm1' in particular has to be always called since the computation of the atmospheric stresses are done in that subroutine.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
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 pull request
Apr 8, 2022
As noted in the previous commit, '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. Update icedrv_RunMod::ice_step to call some subroutines only if the thermodynamics is enabled ('ktherm >= 0'). Namely, let prep_radiation, biogeochemistry, step_therm2 and step_radiation only be called when thermodynamics is enabled, while letting the rest of the subroutines always be called. As noted in the previous commit, 'step_therm1' in particular has to be always called since the computation of the atmospheric stresses are done in that subroutine.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
Apr 8, 2022
As noted in the previous commit, '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. Update icedrv_RunMod::ice_step to call some subroutines only if the thermodynamics is enabled ('ktherm >= 0'). Namely, let prep_radiation, biogeochemistry, step_therm2 and step_radiation only be called when thermodynamics is enabled, while letting the rest of the subroutines always be called. As noted in the previous commit, 'step_therm1' in particular has to be always called since the computation of the atmospheric stresses are done in that subroutine.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
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'.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
Apr 8, 2022
As noted in the previous commit, '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. Update icedrv_RunMod::ice_step to call some subroutines only if the thermodynamics is enabled ('ktherm >= 0'). Namely, let prep_radiation, biogeochemistry, step_therm2 and step_radiation only be called when thermodynamics is enabled, while letting the rest of the subroutines always be called. As noted in the previous commit, 'step_therm1' in particular has to be always called since the computation of the atmospheric stresses are done in that subroutine.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
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 pull request
Feb 6, 2024
As noted in the previous commit, '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. Update icedrv_RunMod::ice_step to call some subroutines only if the thermodynamics is enabled ('ktherm >= 0'). Namely, let prep_radiation, biogeochemistry, step_therm2 and step_radiation only be called when thermodynamics is enabled, while letting the rest of the subroutines always be called. As noted in the previous commit, 'step_therm1' in particular has to be always called since the computation of the atmospheric stresses are done in that subroutine.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
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 pull request
Feb 7, 2024
As noted in the previous commit, '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. Update icedrv_RunMod::ice_step to call some subroutines only if the thermodynamics is enabled ('ktherm >= 0'). Namely, let prep_radiation, biogeochemistry, step_therm2 and step_radiation only be called when thermodynamics is enabled, while letting the rest of the subroutines always be called. As noted in the previous commit, 'step_therm1' in particular has to be always called since the computation of the atmospheric stresses are done in that subroutine.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
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.
phil-blain
added a commit
to phil-blain/Icepack
that referenced
this pull request
Feb 12, 2024
As noted in the previous commit, '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. Update icedrv_RunMod::ice_step to call some subroutines only if the thermodynamics is enabled ('ktherm >= 0'). Namely, let prep_radiation, biogeochemistry, step_therm2 and step_radiation only be called when thermodynamics is enabled, while letting the rest of the subroutines always be called. As noted in the previous commit, 'step_therm1' in particular has to be always called since the computation of the atmospheric stresses are done in that subroutine.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR checklist
Update documentation including namelist tables and debugger section
apcraig
No code changes, quick suite run on cheyenne just to be sure,
https://github.com/CICE-Consortium/Test-Results/wiki/icepack_by_hash_forks#d7e63a86e9ec711d0821d210f77901816a02762e