-
Notifications
You must be signed in to change notification settings - Fork 159
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
Remove IPD #214
Remove IPD #214
Comments
Also, in step 4 all non ccpp |
Updated the list, thanks! |
@climbfuji - because the FV3 dycore project has branches for the UFS (dev/emc & ufs public releases) and for GFDL (dev/gfdl) off the common main branch, the #ifdef/#endif pairs for CCPP can safely be removed. |
Thanks Rusty, that's great. |
Note. As of Jan 4, 2021, step 2 has gained some urgency, since several developers have encountered the problem of duplicate symbols due to the land vegetation/soil table initialization being done in gfsphysics and ccpp/physics. See https://dtcenter.org/threads/compiling-error-duplication-gfsphysics-ccppphysics-lib and #206, for example. |
Description
Now that we have a GFS v16 reference tag for the ufs-weather-model develop branch and its submodules, it is time to remove IPD.
Solution
This should be done in several steps.
Remove all source files that are required for IPD only (in fv3atm) and make
CCPP=Y
the default in the ufs-weather-model compile/build scripts. This should not change the regression test results. However, sinceCCPP=Y
is no longer in the MAKEOPT string, the suffices_prod
and_ccpp
for the regression test baseline/run directories will disappear (hence the requirement to create new baselines).Move the computation of snow cover and other variables from
io/FV3GFS_io.F90
into CCPP (probably thetime_vary
group), and remove thesoilveg
initialization inGFS_driver.F90
. This should not change the regression test results when the fv3atm and the dycore are compiled in double precision (64bit), but it will change the results when fv3atm and the dycore are compiled in single precision (32bit). This is because the computation fo snow cover and other variables inFV3GFS_io.F90
uses the same precision as fv3atm and the dycore, whereas it is always double precision in the CCPP physics.Remove all
#ifndef CCPP
and related preprocessor directives from fv3atm and the ufs-weather-model, but not GFDL_atmos_cubed_sphere (These will still be needed for compatibility with how GFDL is running physics? To be confirmed with @bensonr). Remove definition of IPD data types in fv3atm and replace use of IPD data types with GFS data types. This should not change the regression test results. Update: the preprocessor directives can also be removed from the dycore.Rename all regression tests (drop
_ccpp
fromfv3_ccpp_xyz
). All non-CCPP*_run.IN
templates intests/fv3_conf
should be removed, and all CCPP templates renamed (dropccpp_
fromccpp_xyz_run.IN
). Drop suffices_ccpp
/_prod
from regression test baseline/run directories (but need to keep repro? add_debug
in the same way? or manually change the regression test control directories forREPRO=Y
to_repro
?)Clean up all
CMakeLists.txt
files that contain legacy code to support building IPD and CCPP, using a top-level cmake or gnumake build. Now we only need to support CCPP with a cmake build.Anything that is missing in the previous bullets.
Alternatives
No alternative.
Testing:
Testing will be done on all tier-1,2,3 platforms (tier-1 pre-commit, tier-2,3 as time permits).
Dependent PRs:
Step 1 completed 12/29/2020 without removing the suffices
_prod
and_ccpp
, see ufs-community/ufs-weather-model#331.Step 3 completed 01/14/2021, see ufs-community/ufs-weather-model#357 and associated PRs.
Step 5 completed 01/14/2021, see ufs-community/ufs-weather-model#357 and associated PRs.
Parts of step 4 are addressed in ufs-community/ufs-weather-model#378.
Parts of step 2 are addressed in ufs-community/ufs-weather-model#407.
The text was updated successfully, but these errors were encountered: