[MITgcm-devel] gchem / dic logic

Martin Losch Martin.Losch at awi.de
Tue Apr 8 04:34:09 EDT 2008


Hi all,

clearly, the combination of a highly variable and often changing pkg  
such as gchem + sub-pkgs with a (I admit:) at first incomprehensible  
pkg such as pkg/cal+pkg/exf opens a tin of worms.

To my mind there are two standpoints on this (and I am sure that Jean- 
Michel will come up with at least one more that I haven't thought of):
1. As far as I can see the gchem-pkg is intended as an interface to  
bgc- and ecosystem-pkgs (whatever the difference is) and nothing  
more. Unfortunately, the way it's programmed is not entirely clean so  
that it supplies some names etc. but as far as I can see David's  
ongoing(?) efforts are going to resolve that.
The idea is that you only need to put in a few hook to couple your  
personal ecosystem model to the MITgcm. From this point of view each  
sub-pkgs (e.g. dic, cfc) needs to have it's own data.$pkg,  
$pkg_readparms.F, $pkg_load_fields.F, etc and that's not the case  
(neither cfc not dic have their own name list files, but use separate  
forcing field loading S/R, which are in principle very similar).
In that case pkg/gchem should only contain "empty" subroutines  
gchem_forcing, gchem_readparms, gchem_write_pickup, etc. , from  
which, say, dic_forcing, dic_readparms, dic_write_pickup, etc is  
called. The only use interface would be a namelist in data.gchem,  
that contains only useDIC, useCFC, useMYPERSONALMODEL. Currently all  
sorts of forcing periods and files are read from data.gchem which is  
very inconsistent with this viewpoint of a pure interface.

2. You can view gchem-pkg as an interface that provides a certain  
infrastructure for ecosystem models. That infrastructure would  
provide places where you put your hooks (see above), but also provide  
forcing and input fields. That way, you'd only need one  
gchem_fields_load.F which provides forcing fields for everyone. That  
requires gchem_fields_load to be quite complicated and also requires  
some memory overhead, as it needs to serve each "possible" package.  
In this case data.gchem can and should contain all sorts of  
parameters that control the forcing and in put fields.

Personally, I'd prefer viewpoint 1, if it's done right (which is not  
quite the case at the moment, but I am waiting for David to finish  
before I complain (o:).
Then the exf/cal-capabilities (parameter and reading) would have to  
be included in each sub-pkg (as I have done it now for myself) at the  
cost of having to change many different files, if anything serious  
changes in exf/cal (which has happened in the near past: the  
parameter list of exf_set_gen changed and broke all my runs, because  
I did not remember to fix my reading routines.). Also this means that  
there is a lot of potential for duplication (many ecosystem models  
need atmospheric pCO2, wind, etc), but that's what you have to pay  
for the increased flexibility.

Martin




More information about the MITgcm-devel mailing list