[MITgcm-devel] planning to change external_forcing.F
Jean-Michel Campin
jmc at ocean.mit.edu
Sat Jul 5 22:01:44 EDT 2014
Hi,
I am going to make some changes in external_forcing.F
that will result in adding all forcing in local 2-D arrays
(instead of directly in global common block variables
gU,gV,gT,gS ); this will facilitate forcing time-stepping options
(e.g., forcing part of Adams-Bashforth or outside AB) and
diagnostics of forcing terms.
Since some users have a customized version of external_forcing.F
with specific forcing added there (in fact the argument list of the
4 S/R in external_forcing.F has not changed since march 2001),
I was thinking of providing a backward compatibility option (through
a CPP option, e.g. USE_OLD_EXTERNAL_FORCING) to enable to use the old
external_forcing.F subroutines; this involve having an other (new) version
of external_forcing.F with new S/R names (suggest "apply_forcing.F")
and only use external_forcing.F if the backward compat CPP option
(USE_OLD_EXTERNAL_FORCING) is defined.
I was not going to duplicate all the different pkg routines that are
called from external_forcing.F, and going directly to update them (step.1)
If, for some reasons, you think we should have also an
USE_OLD_EXTERNAL_FORCING version of one of these routines,
(but duplicate version are tricky to maintained) would be good to know
this quickly.
Later on (step.2), planning to add new file "apply_forcing.F" containing all
the code previously in external_forcing.F, but with new argument list; but in
case USE_OLD_EXTERNAL_FORCING is defined, each of the 4 apply_forcing S/R
(_U,_V,_T,_S) would just call the corresponding external_forcing S/R.
And finally (step.3), the real true changes involving simplification of
forcing time-stepping code (forcing_In_AB) and forcing diagnostics.
The list of files affected by step.1 is: external_forcing.F and
aim_tendency_apply.F
atm_phys_tendency_apply.F
bbl_tendency_apply.F
fizhi_tendency_apply.F
frazil_tendency_apply.F
gchem_add_tendency.F
icefront_tendency_apply.F
mypackage_tendency_apply.F
obcs_sponge.F
ptracers_forcing.F (renamed to: ptracers_apply_forcing.F)
ptracers_integrate.F
rbcs_add_tendency.F
salt_plume_tendency_apply_s.F
salt_plume_tendency_apply_t.F
shelfice_forcing.F
taueddy_external_forcing.F (renamed to: taueddy_tendency_apply.F)
If you have any "ready to check-in" modifications in the pipeline
for any of these routines, let me know (in case it would be easier
to get these modifications first).
Cheers,
Jean-Michel
PS: I don't expect any changes in the results from step.1, but
step.2 (if USE_OLD_EXTERNAL_FORCING is defined) or step.3 could
introduce some machine truncation differences in the results.
More information about the MITgcm-devel
mailing list