[MITgcm-devel] balancing ctrl-obcs-flow

Martin Losch Martin.Losch at awi.de
Fri Mar 11 08:28:06 EST 2011


Hi there,

while going through the ctrl-code, I observed a few inconsistencies, all are related to the balancing, or conservation of flow into the domain.

Jean-Michel has now nicely implemented a very general way of balancing the flow through open boundaries at every time step (for any flow through the open boundaries). This routine (obcs_balanace_flow.F) is called at the end of obcs_calc.F, so after any of the ctrl_getobcs* are called (in obcs_prescribe_read), therefore it also includes the ctrl-contribution of the obcs-velocities.

As far as I can see, this new code makes the code within ALLOW_CTRL_OBCS_BALANCE in ctrl_getobcs?.F obsolete, along with the routines ctrl_obcsbal.F and ctrl_volflux.F (in this code the "global" net inflow is computed and converted into a velocity shiftvel, and then this shiftvel is added to the northern inflow to balance the system, the ALLOW_CTRL_OBCS_BALANCE code balances the flow for each boundary individually). Further, the flux computations are most likely missing hFac's. I suggest to remove this code (makes the entire interaction of ctrl and obcs much easier to comprehend).

There is a third routine, called ctrl_obcsvol.F, that seems to be the  combination of ctrl_obcsbal.F and ctrl_volflux. This routine is never called anywhere in the code. I suggest to remove it in any case.

in pkg/ecco there is also a cost_obcsvol, which makes the global balance a weak constraint. This is a useful option and should be kept.

There are no verification experiments to test this, so I need input from people who use obcs as control variables (Holly, Matt, who else?)

Summary of my suggestions:
1. remove ctrl_obcsvol.F, it's never called and it seems to do the same as ctrl_volflux and ctrl_obcsbal
2. remove ctrl_volflux and ctrl_obcsbal, they are probably incomplete, and they are superseded by obcs_balance_flow
3. keep ecco/cost_obcsvol.F, as it is a useful constraint that can be used instead of the exact balancing in obcs_balance_flow

Please let me know, what you think? Can I do 1. and 2.?

Martin



More information about the MITgcm-devel mailing list