-
Notifications
You must be signed in to change notification settings - Fork 118
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
Branch dev/emc: convert GFS DDTs from blocked data structures to contiguous arrays #330
Branch dev/emc: convert GFS DDTs from blocked data structures to contiguous arrays #330
Conversation
…out DDTs: use contiguous arrays instead of blocked data structures
…ed_sphere into feature/chunked_array_support_use_it
…ed_sphere into feature/chunked_array_support_use_it
…ed_sphere into feature/chunked_array_support_use_it
…ed_sphere into feature/chunked_array_support_use_it
@bensonr This PR is finally ready for review - sorry for the long wait. |
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.
If you are no longer using the blocking in the same way as previous, why not remove all of the do nb=1,blen
loops and replace them with do im=1,size(compute_domain)
?
im = IPD_control%chunk_begin(nb)+ix-1 | ||
u_dt(i,j,k1) = u_dt(i,j,k1) + (IPD_Stateout%gu0(im,k) - IPD_Statein%ugrs(im,k)) * rdt | ||
v_dt(i,j,k1) = v_dt(i,j,k1) + (IPD_Stateout%gv0(im,k) - IPD_Statein%vgrs(im,k)) * rdt | ||
! t_dt(i,j,k1) = (IPD_Stateout%gt0(im,k) - IPD_Statein%tgrs(im,k)) * rdt |
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.
Feel free to remove this commented line as it doesn't add to understanding of the tendency in any way.
That is indeed the plan in a follow-up PR. My goal was to get b4b identical results to increase confidence in the changes - and it worked. All 400-ish regression tests are b4b identical on Hera and Hercules (with Intel and GNU). |
…ed_sphere into feature/chunked_array_support_use_it
We are going to start testing ufs-community/ufs-weather-model#2183. Please, go ahead for final reviews and approvals. |
@climbfuji it will be good option to combine in #344 sine no need to change baseline. can we do that? |
Sorry, but I really think the changes I am making across repositories are large and substantial enough that they should remain in their own set of PRs. The CI addition in fv3atm is an exception, since it doesn't touch any code but just github action stuff. |
@climbfuji - are you still planning to rename the fvgfs directory as part of this update (see issue #314)? |
I definitely forgot about that, sorry. There's a bit of a hold up at the moment, since we are debugging problems with the UFS update that includes this PR, and since my time is really limited. I don't know how quickly we get through this, but when we do and if you still think it's a good idea to rename fvGFS to UFS, then I'll make the change. |
To publicize this far and wide, I'll mention this being a planned part of your PR at the next UFS code managers meeting |
This branch has conflicts that must be resolved before we can merge. Can you merge the dev/emc branch into your feature branch and resolve any conflicts? |
@laurenchilutti We are currently debugging issues in the UFS with the set of PRs that this PR belongs to. I also still need to rename |
…ed_sphere into feature/chunked_array_support_use_it
…yfile, driver/UFS/atmosphere.F90, model/fv_arrays.F90, tools/fv_nudge.F90; also resolve a previous merge conflict that was left in docs/Doxyfile
@bensor I made the change from fvGFS to UFS. I renamed the directory and also changed the occurences of fvGFS in the files where it seemed to be reasonable. I found a merge conflict that was left from a previous PR in |
Testing on 2183 has completed successfully, please continue with the merge process. |
@XiaqiongZhou-NOAA Can you review this before I merge? |
Done! |
Description
In the UFS atmospheric component fv3atm and its submodules, convert internal GFS DDTs from blocked data structures to contiguous arrays. This excludes the (external) GFS_extdiag and GFS_restart DDTs. Also remove the GFS_Data/IPD_Data super DDT and use the individual DDTs directly.
Per discussion in #314, the file that is modified here (
driver/fvGFS/atmosphere.F90
) is separate for each branch in the FV3 dycore repo.I've tried to make minimal changes only, a lot more cleanup can be done in a future PR:
atmosphere.F90
, we can do away with a lot of the #ifdef statementsnb
,ix
and the newim
can be simplied to just calculateim
or usereshape
.The set of PRs listed below address ufs-community/ufs-weather-model#2294
** Associated PRs**
#330
ufs-community/ccpp-physics#183
NOAA-EMC/fv3atm#798
ufs-community/ufs-weather-model#2183
How Has This Been Tested?
With the Unified Forecast System. Results are bit for bit identical with the current baseline.
Checklist:
Please check all whether they apply or not
Any dependent changes have been merged and published in downstream modules