I have noticed the use of ice_flux_rst.F, which is to ensure perfect restart for sea ice involved simulations.
Meanwhile I have also enabled BULK_FLUX macro (besides ICE_MODEL macro).
However, the main time-integration routine involves subsequent subroutine calls (within one time step) as follows:
...
CALL albedo_eval
CALL bulk_flux
...
CALL ice_flux_rst ! which will only work on the first timestep
CALL seaice
...
When I checked the code of bulk_flux.F, I found that the values of su/vstr, stflx are ALL written by the call. Hence the ice_flux_rst does not actually work.
I'm not quite sure about my understanding of this issue. Is the call to ice_flux_rst is actually non necessary when BULK_FLUX is enabled?
Thanks a lot for any explanation/suggestions.
On the design of perfect restart with sea ice
Re: On the design of perfect restart with sea ice
The thing to check is to see if PERFECT_RESTART is actually working for you. I think the logic is still correct. The problem was that seaice modifies the surface fluxes to ROMS and this was happening inconsistently on restart. Now we don't call seaice on restart - if we do, it gets called twice between the other timestepping because it gets called before the call to output where the restarts get saved.
I always use BULK_FLUXES as well as CCSM_FLUXES. This brings in an alternate bulk flux parameterization - some people think Fairall has too much input from the tropics and not enough from elsewhere in his parameterization.
Note that PERFECT_RESTART depends on taking an even number of timesteps between restarts.
I always use BULK_FLUXES as well as CCSM_FLUXES. This brings in an alternate bulk flux parameterization - some people think Fairall has too much input from the tropics and not enough from elsewhere in his parameterization.
Note that PERFECT_RESTART depends on taking an even number of timesteps between restarts.