-
Notifications
You must be signed in to change notification settings - Fork 5
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
Added return codes to IOStream for better managing missing/skipped streams #184
Added return codes to IOStream for better managing missing/skipped streams #184
Conversation
…d streams These specific return codes will eventually be replaced by the Error Handler codes and functionality.
Unfortunately, I don't have a good way to test this in the current unit test infrastructure, but all Ctests pass except State which is currently failing with the latest master due to an unrelated bug. I will test again once that is fixed. |
Sorry, @philipwjones, I lost track of this one and forgot to test it today. I will get to it tomorrow. |
@philipwjones, I'm afraid I'm still seeing:
with this branch. My run directory on Chrysalis is:
My Omega:
TimeIntegration:
CalendarType: No Leap
TimeStepper: RungeKutta4
TimeStep: 0000_00:24:00.000
StartTime: 0001-01-01_00:24:00
StopTime: none
RunDuration: 0000_00:24:00.000
Dimension:
NVertLevels: 1
Decomp:
HaloWidth: 3
DecompMethod: MetisKWay
State:
NTimeLevels: 2
Advection:
FluxThicknessType: Center
FluxTracerType: Center
Tendencies:
ThicknessFluxTendencyEnable: false
PVTendencyEnable: false
KETendencyEnable: false
SSHTendencyEnable: false
VelDiffTendencyEnable: false
ViscDel2: 1.0e3
VelHyperDiffTendencyEnable: false
ViscDel4: 1.2e11
TracerHorzAdvTendencyEnable: true
TracerDiffTendencyEnable: false
EddyDiff2: 10.0
TracerHyperDiffTendencyEnable: false
EddyDiff4: 0.0
Tracers:
Base: [Temperature, Salinity]
Debug: [Debug1, Debug2, Debug3]
IOStreams:
# InitialState should only be used when starting from scratch.
# For restart runs, the frequency units should be changed from
# "OnStartup" to "never" so that the initial state file is not read.
InitialState:
UsePointerFile: false
Filename: init.nc
Mode: read
Precision: double
Freq: 1
FreqUnits: never
UseStartEnd: false
Contents:
- State
- Tracers
RestartRead:
UsePointerFile: false
PointerFilename: ocn.pointer
Mode: read
Precision: double
Freq: 1
FreqUnits: OnStartup
UseStartEnd: true
StartTime: 0001-01-01_00:24:00
EndTime: 99999-12-31_00:00:00
Contents:
- Restart
Filename: ../restarts/rst.$Y-$M-$D_$h.$m.$s
RestartWrite:
UsePointerFile: false
PointerFilename: ocn.pointer
Filename: ../restarts/rst.$Y-$M-$D_$h.$m.$s
Mode: write
IfExists: replace
Precision: double
Freq: 1
FreqUnits: seconds
UseStartEnd: false
Contents:
- Restart
History:
UsePointerFile: false
Filename: output.nc
Mode: write
IfExists: replace
Precision: double
Freq: 1440
FreqUnits: seconds
UseStartEnd: false
Contents:
- Tracers
- LayerThickness
- NormalVelocity |
It could also be that I messed something up with defining |
What is the expected syntax if I don't want to use the file pointer. Does this look right? RestartRead:
UsePointerFile: false
PointerFilename: ocn.pointer
Mode: read
Precision: double
Freq: 1
FreqUnits: OnStartup
UseStartEnd: true
StartTime: 0001-01-01_00:24:00
EndTime: 99999-12-31_00:00:00
Contents:
- Restart
Filename: ../restarts/rst.$Y-$M-$D_$h.$m.$s ( |
It seems like this is my error. Should be |
Yep, that did it! |
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.
Approving based on testing in Polaris branch E3SM-Project/polaris#251. I am now able to successfully run both the full and restart runs. (The validation step is currently failing but I don't think that is Omega related.)
Hmm, I spoke too soon. The mechanics of the restart run are working but the result is all NaNs. This could still every easily be my mistake but maybe we'd better hold off on merging until I investigate more. Today, I am not feeling well enough to debug this effectively so it will likely have to wait. |
@philipwjones, thanks! Depending on where things are by tomorrow, I can do a test merge and try my restart test in Polaris again. |
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.
It worked! Using a test merge of this branch with the current Omega develop
, the cosine bell restart test from E3SM-Project/polaris#251 passes on Chrysalis!
This is a short-term fix to address problems with missing or skipped streams. It will be replaced once the Error Handler capabilities are implemented. It adds return codes so that calling routines can determine how to handle errors and removes the critical error when a stream is missing.
Checklist
Fixes #175 , Fixes #181