[MITgcm-devel] obcs and passive

Martin Losch mlosch at awi-bremerhaven.de
Sun Oct 9 04:43:33 EDT 2005


Hi Samar,

I shouldn't have spoken for Jean-Michel, sorry about that.

The routine ptracers_forcing_surf.F is the place where ptracers 
tendencies due to surface fluxes can be specified (similar to 
external_forcing_surf.F).
My opinion is, that yes, we could probably have code for Dirichlet BCs; 
I see that one may want to do keep surface values of ptracers constant 
in certain idealized scenarios, although from a physical point of view 
I don't see what realistic situation would require Dirichlet BCs in a 
realistic scenario.
In any case, your new routine should have a name that sets it appart 
from ptracers_forcing_surf, maybe ptracers_set_dirichlet_bc. I have not 
tried to understand this staggeredTimestep business. Let's wait what 
the "code czars" say (o:

Martin

On Oct 8, 2005, at 9:18 PM, Samar Khatiwala wrote:

> Hi Martin
>
> On Oct 8, 2005, at 2:56 PM, Martin Losch wrote:
>
>> If you are concerned with a possible interferences of the matrix-pkg 
>> with obcs, you should include something like matrix_check, that is 
>> called from model/src/packages_check.F (there are many examples, 
>> e.g., pp81_check.F, etc) and catches all combinations with matrix-pkg 
>> that you can think of, or modify obcs_check.F to include a check that 
>> obcs and matrix are not used at the same time. I am not sure which is 
>> the better option. What do you think?
>
> Perhaps matrix_check.F is the way to do it. I'll look into it.
>
>
>> About the surface BC for ptracers. I read your email again, but my 
>> changes are not a major reorganization of ptracers (I call 
>> obcs_apply_ptracers in a few places), so that I should not interfere 
>> with your code. I cannot say much about you code changes, but I guess 
>> the general notion is to prescribe fluxes at the surface, and not 
>> values. Remembering discussions with Jean-Michel, he would even like 
>> to have fluxes (and not values) prescribed at the open boundaries.
>
> I do not follow JMC's reasoning here. Or rather, since I haven't heard 
> it, cannot begin to guess why only
> fluxes should be prescribed. Does that mean one should never solve a 
> PDE with a Dirichlet BC? Some of us
> think that is an important class of problem ...
>
>> I guess surface BC's for ptracers is an unresolved issue that is not 
>> treated in a general way: So far, anyone using surface bc for 
>> ptracers was responsible for it him/herself. If you have a look at 
>> the packages cfc and dic (and gchem), you'll see how Steph has done 
>> it, but only in conjunction with the gchem-pkg. What may be 
>> necessary, is a more general solution, so that different gchem-"sub" 
>> packages do not have to have the same to code to read input fields. 
>> But I have an ecysystem model, that computes surface carbon fluxes 
>> from atmospheric partical pressure, ocean carbon concentration (TCO2 
>> or DIC), alkalinity, and salinity. I have no idea how build a general 
>> ptracers-surface-bc scheme so that such a model fits in ...
>>
>
> Yes, I have seen this code and found it to be incomplete, in the sense 
> of not consistently
> applying the surface BC at various stages of the time stepping. It is 
> also too specific to
> the gchem pkg and not easily applied to a general ptracer simulation 
> (like your ecosystem
> model). That is what my modifications do. I think any implementation 
> should be general only
> to the extent that it can apply a user supplied time-dependent BC in 
> the right way. Everything
> else (reading in the boundary data, etc) should be done by 
> user-supplied code. So, unlike the
> gchem pkg, your ecosystem code would very easily plug into the 
> framework I have implemented.
>
> I would be happy to check this code in myself, but I am not sure if I 
> have the requisite CVS
> privilages.
>
> Samar
>
>> Martin
>>
>> On Oct 8, 2005, at 5:19 PM, Samar Khatiwala wrote:
>>
>>
>>> Martin
>>>
>>> Does your OBCS code impact my pkg/matrix in any way?
>>> To be safe, it would be useful to have a config check that
>>> generates an error or warning to the effect that one should
>>> NOT use the matrix pkg with obcs. (This may change in the
>>> future once I figure out how to treat open open boundaries
>>> within this framework.)
>>>
>>> Samar
>>>
>>> On Oct 8, 2005, at 10:48 AM, Martin Losch wrote:
>>>
>>>
>>>> Hi,
>>>>
>>>> I am now (after almost a year of procrastinating) ready to check-in 
>>>> code that allows open boundary conditions for passive tracers. This 
>>>> will affect files of the obcs-pkg and the ptracers-pkg and the file 
>>>> pkg/generic_advdiff/gad_advection.F. Not all parts of the code are 
>>>> thoroughly tested (in particular, the obcs_external_fields_load 
>>>> part).
>>>> There is still no code to deal with Orlanski boundary conditions 
>>>> for passive tracers, and honestly, I don't know if I ever get 
>>>> around to doing that. I don't know enough about the Orlanski code, 
>>>> and it seems to be too tricky for me to do it on the fly.
>>>>
>>>> My question: Should I create a new tag (checkpoint57u_post) after 
>>>> checking in my code? I am asking because I no longer see a clear 
>>>> pattern in when a tag should be created and I don't want to 
>>>> interfere with a policy that I maybe should know (but don't) (o:
>>>>
>>>> Martin
>>>>
>>>> _______________________________________________
>>>> MITgcm-devel mailing list
>>>> MITgcm-devel at mitgcm.org
>>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>>>
>>>>
>>>
>>> _______________________________________________
>>> MITgcm-devel mailing list
>>> MITgcm-devel at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>>
>>
>> _______________________________________________
>> MITgcm-devel mailing list
>> MITgcm-devel at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list