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

ATM diag_time is not correct when model restarts from the middle of fhzero. #1420

Closed
bingfu-NOAA opened this issue Sep 14, 2022 · 7 comments · Fixed by NOAA-EMC/fv3atm#643 or #1704
Closed
Assignees
Labels
bug Something isn't working

Comments

@bingfu-NOAA
Copy link

Description

When ufs-weather-model restarts from the middle of fhzero (fhzero=6, restarts from f03), the previous diag_time in the code is not correctly set. In this case(fhzero=6, restarts from f03), when model integration reaches f06, the previous bucket empty time should be 6 hours ago, but it shows 3 hours ago.

To Reproduce:

run p8 restarting from f03.

Additional context

model integration to f06 from the current model:
---isec,seconds 10800 21600
gfs diags time since last bucket empty: 3.00000000000000 hrs

correct diag_time when model integration to f06
---isec,seconds 21600 21600
gfs diags time since last bucket empty: 6.00000000000000 hrs

Output

Screenshots
If applicable, drag and drop screenshots to help explain your problem.

output logs
If applicable, include relevant output logs.
Either drag and drop the entire log file here (if a long log) or

paste the code here (if a short section of log)
@bingfu-NOAA bingfu-NOAA added the bug Something isn't working label Sep 14, 2022
@SMoorthi-emc
Copy link
Contributor

SMoorthi-emc commented Sep 15, 2022 via email

@bingfu-NOAA
Copy link
Author

GEFS reforecast needs to use fhzero=6 and restart from f03 because of IAU in the reanalysis. This is what we did for GEFSv12 reforecast, and it is planned again for GEFSv13 reforecast.
It seems that the code is broken at some point after GEFSv12 reforecast project.

@pjpegion
Copy link
Collaborator

@bingfu-NOAA looking at the code I see:

if (Atmos%iau_offset > zero) then
call get_time (Atmos%Time - Atmos%Time_init, sec)
if (sec < Atmos%iau_offset*3600) then
diag_time = Atmos%Time_init
diag_time_fhzero = Atmos%Time
endif
endif

you may want to try running with iau_offset=3

@bingfu-NOAA
Copy link
Author

@pjpegion Thank you for providing the solution for this.
We revised the code to deal with this in GEFSv12 reforecast a few years ago, but the code is broken at some point after GEFSv12 reforecast.
I have a temporary fix to correct the diag time now and I am using it for replay demonstration.

@junwang-noaa
Copy link
Collaborator

@bingfu-NOAA @pjpegion @SMoorthi-emc I made changes in the code to get correct diag_time and are testing it now. As Moothi said model should not restart at non multiple of fhrezo time as we don't save bucket accumulations in the restart files. The changes I made will allow model to have correct diag_time/bucket time in those restart runs, but the accumulated fields in the first output file only has accumulation from current_time to the end of bucket. User needs to be aware of this if they choose to restart the model at these forecast time. I added comments in the code.

@bingfu-NOAA
Copy link
Author

@junwang-noaa Thanks Jun for the code changes, we definitely need this for upcoming real GEFSv13 reforecast.

@bingfu-NOAA
Copy link
Author

@junwang-noaa Has the code changes you mentioned been committed? We need that code change for GEFSv13 forecast.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
No open projects
4 participants