-
Notifications
You must be signed in to change notification settings - Fork 1
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 icepack; switch to "no abort" when inconsistent ITD condition is found #4
update icepack; switch to "no abort" when inconsistent ITD condition is found #4
Conversation
…ICE-Consortium#337) * Added catch for unusual case of (hicen_init(n+1) - hicen_init(n))>0 * fix conditional Co-authored-by: Andrew Roberts <afroberts@lanl.edu>
…#353) * Addition of Compy to standard machines available for Icepack * Upate to remove erroneous badger reference, and more specific machine information from Compy Co-authored-by: Andrew Roberts <afroberts@lanl.edu>
* Fix nt_zbgc_frac * New developer guide module on adding diagnostics * More on adding diagnostics * test * fix errors * Fix version of bibtex * Fix version of bibtex * Update documentation for diagnostics
* update version number and revise reference
…CICE-Consortium#359) * update test results color implementation to point to files for color rather than web links * update github actions test script * fix compiler check in github action script * update conda macos build
…-Consortium#362) This makes Git aware that files ending in '*.F90' are Fortran source files, and activates the special regexes included in Git [1] so that several commands are more useful since they recognize function, subroutine and module boundaries: - 'git diff' [1], [2] - 'git grep' [3], [4] - 'git log' [5] - 'git blame' [6] [1] https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [2] https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--W [3] https://git-scm.com/docs/git-grep#Documentation/git-grep.txt--p [4] https://git-scm.com/docs/git-grep#Documentation/git-grep.txt--W [5] https://git-scm.com/docs/git-log#Documentation/git-log.txt--Lltstartgtltendgtltfilegt [6] https://git-scm.com/docs/git-blame#Documentation/git-blame.txt--Lltstartgtltendgt
Mimicking the configuration for those machines in CICE, port Icepack to 'daley' and 'banting'.
* icepack_atmo: add stability functions with more explicit names The two functions 'psimhu' and 'psixhu' in icepack_atmo compute the stability functions in the unstable case for momentum and scalars (heat and water), respectively. They are both function of X := (1 - 16 \zeta)^(1/4) (see [1], section 8.1.1). In the code X is computed first ('xqq') and passed to 'psimhu' and 'psixhu'. Add two new functions with more explicit names, 'psi_momentum_unstable' and 'psi_scalar_unstable', that take \zeta ('hol') as argument, compute X internally and return the evaluated stability function. A subsequent commit will refactor the code to use them. [1] B.G. Kauffman and W.G. Large. The CCSM coupler, version 5.0.1. 2002. URL: https://github.com/CICE-Consortium/CICE/blob/master/doc/PDF/KL_NCAR2002.pdf. * icepack_atmo: use 'psi_{momentum,scalar}_unstable' Use the new functions 'psi_momentum_unstable' and 'psi_scalar_unstable' introduced in the preceding commit to compute the stability function evaluated at 'hol'. Remove duplicated computation of 'xqq'. Also remove the now unused functions 'psimhu' and 'psixhu'. * icepack_atmo: refactor 'atmo_boundary_layer' In a subsequent commit, we will support receiving the momentum and scalar atmospheric variables at different levels. In order to minimize code duplication, factor out the computation of the stability parameter 'hol' and the stability function 'psi[mx]h' in function 'compute_stability_parameter' and subroutine 'compute_stability_function'. 'compute_stability_function' also makes available the unit step function evaluated at 'hol', 'stable', since it is used at the end of 'atmo_boundary_layer' to compute the diagnostic temperature and humidity. * icepack_atmo: add support for staggered atmospheric levels In some applications, we might want the atmospheric input variables (wind, temperature and humidity) to be given at different vertical levels. For example, we might want to receive the winds at some level and the scalar variables (temperature and humidity) at another. To support this use case, add an optional argument 'zlvs' to subroutine 'icepack_atm_boundary', and pass it down to 'atmo_boundary_layer' also as an optional argument, so that existing applications do not have to be changed if they do not want to use this feature. The name 'zlvs' is chosen to mirror the existing variable 'zlvl', but with the suffix 's' for 'scalars', mimicking the existing convention for several variables in 'atmo_boundary_layer'. In 'atmo_boundary_layer', add new local variables 'alzs' and 'hols' to hold quantities computed at zlvs. Also, for clarity, rename 'alz' to 'alzm' and 'hol' to 'holm', where the 'm' suffix stands for 'momentum', again mimicking existing convention in the subroutine. If 'zlvs' is not passed to 'atmo_boundary_layer', it is assumed that all variables are given at the same level (zlvl), so in that case there is no change in the results. * icepack_therm_vertical: add support for staggered atmospheric level The previous commit added an optional 'zlvs' argument to 'icepack_atm_boundary' to allow atmospheric input variables to be given at different vertical levels. Also add 'zlvs' as an optional argument to 'icepack_step_therm1', to make the functionality available via the Icepack interfaces. * doc: document staggered atmospheric levels Add an index entry for 'zlvs' and mention it in the 'Atmopshere' section of the science guide.
* code will write warning message but not abort if hicen_init(n+1) <= hicen_init(n)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for updating icepack. Is there a plan at Consortium repo to fix the hicen_init issue in the ICs so that we don't need to carry the fix?
I can check more directly w/ Tony, but I believe they feel it is a rare error which there is no fix for at this point so trapping it was the best solution. My testing tends to confirm that---I believe it is only our CFSR-derived ICs that gave the error (the 2016-10-03 case) and only at the first timestep. I don't really believe that other failures we see in CICE in the prototypes are related. That is one reason I wanted to be able to implement their fix vs maintaining our original fix. This way it will report in the log if this is happening. I think our best option at this point is to find a way to have the abort flag set optionally so it isn't hardwired. If we could set that by namelist for example then we could point directly at the top of Icepack. |
Yes, using namelist variable to control the abort flag would be nice. |
If it's just the CFSR (and not CPC) ice ICs, could we switch to just using the CPC ice ICs and then revert to the "bail out"? |
hicen_init(n+1) <= hicen_init(n)
condition present in current CICE6 IC conditions. This condition was first reported by EMC when the coupled model failed the debug test. Since then, we have carried a fix for this condition which relied on setting the valuedenom = max(puny,hicen_init(n+1) - hicen_init(n))
when interpolating between adjacent category growth rates. The relevant code is inicepack_therm_itd
.