[MITgcm-support] ptracer surface boundary condition

Samar Khatiwala spk at ldeo.columbia.edu
Wed May 25 21:49:03 EDT 2005


Martin, I'd forgotten about GCHEM_SEPARATE_FORCING. Thats a possibility 
for
setting surface a Dirichlet boundary condition, but I'd rather not mess 
with my own
separate time stepper which may well be inconsistent with the spatial 
discretization.

I have concocted some code to set surface BCs. It seems to work fine 
and, with a
bit of tweaking, could easily be made a part of pkg/gchem. To use it 
one would set
an #ifdef in GCHEM_OPTIONS.h. That is if the MITGCM developers agree.

Samar

On May 25, 2005, at 2:25 AM, Martin Losch wrote:

> Samar,
> as far as I can see (and that may not be very far), you can only 
> specify pTracer-tendencies (in ptracers_forcing_surf.F)
> If you use the gchem package, there is the flag 
> GCHEM_SEPARATE_FORCING. If you do not set that, then you have to 
> calculate the gchemTendency in gchem_calc_tendency; an example for the 
> is the cfc-pkg, (verification/cfc_example), but again it's all 
> tendencies and you cannot prescribe the value of the tracer at the 
> surface.
> If you set the CGHEM_SEPARATE_FORCING flag, then the ptracers are 
> updated a second time after the AB-timestep. In the routine 
> gchem_forcing_sep you can do, in principle, anyting to the ptracers 
> you like, for example, ptracer(i,j,1,bi,bj,itracer) = some-value and 
> you have your Dirichlet-BC, but unless your provide some mechanism in 
> the routine yourself, this will be inconsistent with the field for k>1 
> at this time (at the end of the timestep, gchem_forcing_sep is called 
> before do_fields_blocking_exchanges and also before do_the_model_io). 
> You'll enter the next timestep with this inconsistency at the surface.
>
> Martin
>
> On May 23, 2005, at 7:46 PM, samar khatiwala wrote:
>
>> Hello
>>
>> I would like to perform some ptracer simulations in which the
>> ptracer concentration is prescribed at the surface. This could
>> be a time-dependent boundary condition. Unfortunately, I don't
>> see any simple way to use existing code to prescribe such a BC.
>> Simply setting pTracer(...,k=1,..)=BC does not work all that well.
>> To make this work robustly (and consistent with the time stepping) I 
>> have
>> to intervene at multiple locations in the code to (re)set pTracer and 
>> gPtr
>> to the BC.
>>
>> I was wondering if someone has figured out how to do this in a cleaner
>> and more consistent manner. Perhaps this could be incorporated into 
>> the
>> gchem package since it seems like a useful capability to have.
>>
>> Thanks
>> Samar
>>
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list