Resolve the non-physics modes of CAM and move the surface restart around
Ideal engineering time: 4 days
Actual time: August 22nd – August 30th, 1.5 week (was 2 days of vacation)
Load factor: 2.
Resolve the non-physics modes of CAM (adiabatic, ideal_phys, and aquaplanet) below the driver level, so that components know the appropriate action, but the driver isn't aware of it. Continue to use the common block for the data that signals this behavior, but move the behavior completely inside of ice, ocean or land surface models.
Also move the read of surface initial data and restart information outside of cam_intial and read_restart to methods just before surface model initialization. This means breaking up the restart so that intht is called later, the read_history is called later, and the close of nrg is done at this later step as well. This means that cam_comp would have a 2-part initialization method (that can be gotten rid of when the NetCDF restart files go in place).
Move the nrg unit numbers to wholy contained within the relevent restart modules. Make the restart filename for surface wholy contained within restart_camsrf module, just calculated based on the date of the previous time-step.
This requires working with about 20 files, and changing the restarts in ways that may or may not work. Changes to inidat are trivial, changes to restart_physics move a pretty substantial chunk of code.
Files to change:
- cam.F90
- restart.F90
- restart_physics.F90
- inidat.F90 – 3 versions
- stepon.F90 – 3 versions
- camice
- somoce
- camocn
- clm_camMod
- physpkg
Files to remove - phys_idealized – remove imbed in physpkg
- phys_adiabatic – remove imbed in physpkg
File to add: - restart_camsrf.F90 – has read_restart and write_restart methods.