[MITgcm-support] obcs for ptracers

Martin Losch Martin.Losch at awi.de
Thu Apr 24 10:35:47 EDT 2008


This is what you need to do:
1. in your "code" directory, edit package.conf to include a line  
"ptracers"
2. In obcs_calc.F (not in obcs_calc.f) look for the code-block that  
starts with #ifdef ALLOW_PTRACERS, for an eastern boundary you need  
to replace the line
             OBEptr(J,K,bi,bj,iTracer) =
      &           pTracer(I_obc-1,J,K,bi,bj,iTracer)
      &           *_maskW(I_obc,J,K,bi,bj)
with what you want to have there, e.g
             OBEptr(J,K,bi,bj,iTracer) = 1.
3. in your build directory, run
genmake2 (or make makefile) && make CLEAN && make depend && make
4. in your run directory create a data.ptracers as you suggest, there  
are more runtime flags that you can set, see PTRACERS_PARAMS.h and  
ptracers_readparms.F, there is PTRACER_ref, which can be used to  
prescribe an initial profile just like tRef, sRef.
The output files will be either ptracer.*.nc (if you use mnc/netcdf)  
or PTRACER01.*.data/meta if you don't

But again, you can do all this via input files (also the open  
boundary conditions for T and S). This avoids editing obcs_calc.F

Martin

On 24 Apr 2008, at 16:25, Nataliya Stashchuk wrote:

> Martin,
>
> Please, confirm that at first I must prepare file data.ptracers in  
> which I show initial field for tracer as Tracer.init and than
> all results for tracer will be in files starting with Tr.
>
> ---------------------------------------------------------------------- 
> ----------------------
> # This set-up is supposed to mimic salinity. That is, initially
> # PTRACER(:,:,:,1) is identical to salinity, except that the
> # open boundary conditions are different, so that PTRACER(:,:,:,1)  
> evolves
> # differently than salinity.
>  &PTRACERS_PARM01
>  PTRACERS_numInUse=1,
>  PTRACERS_initialFile='Tracer.init',
>  PTRACERS_names(1)='Tr',
>  &
> ---------------------------------------------------------------------- 
> ------------------------------
> Than in obcs_calc.F I must add one new line to fix tracer as 1 with  
> name OBETr()
>
>
>          DO K=1,Nr
>           DO J=1-Oly,sNy+Oly
>             I_obc=OB_Ie(J,bi,bj)
>              IF (I_obc.ne.0) THEN
>               OBEu(J,K,bi,bj)=0.
>                OBEv(J,K,bi,bj)=0.
>
>               OBEt(J,K,bi,bj)=10.
>               OBEs(J,K,bi,bj)=10.
>
>               OBETr(J,K,bi,bj)=1.
>
>      Many thanks,
>
> Nataliya
>
>
>
>
> -----Original Message-----
> From: mitgcm-support-bounces at mitgcm.org [mailto:mitgcm-support- 
> bounces at mitgcm.org] On Behalf Of Martin Losch
> Sent: 24 April 2008 15:01
> To: mitgcm-support at mitgcm.org
> Subject: Re: [MITgcm-support] obcs for ptracers
>
> You can do that in quite the same way as for T and S:
> either you hard-code is in obcs_calc (instead OBCt=10. you use
> OBSptr=2. or so),
> or you prescribe a file with these open boundary conditions as done
> in exp4 (I prefer this, because you won't have to recompile the code).
>
> Martin
> On 24 Apr 2008, at 15:50, Nataliya Stashchuk wrote:
>
>> Martin,
>>
>> In verification/exp4/input data.ptracers  I found the following:
>> --------------------------------------------------------------------- 
>> -
>> ----------------------------------------------
>>
>> # This set-up is supposed to mimic salinity. That is, initially
>> # PTRACER(:,:,:,1) is identical to salinity, except that the
>> # open boundary conditions are different, so that PTRACER(:,:,:,1)
>> evolves
>> # differently than salinity.
>>  &PTRACERS_PARM01
>>  PTRACERS_numInUse=1,
>>  PTRACERS_initialFile='S.init',
>>  PTRACERS_names(1)='salt_mimic',
>>  &
>> --------------------------------------------------------------------- 
>> -
>> ------------------------------------------------
>> This means that in this experiment salinity is used as a tracer. In
>> such a case it is very simple to fix tracer at open boundary
>> condition.
>> For example if I want to fix temperature as 10 and salinity
>> (tracer) as 1 at eastern boundary I can change two last lines in
>> obcs_calc.F like this
>>
>> --------------------------------------------------------------------- 
>> -
>> ------------------------
>>
>> #ifdef ALLOW_OBCS_EAST
>> C     Eastern OB
>> #ifdef ALLOW_DEBUG
>>       IF (debugMode) CALL DEBUG_MSG('OBCS_CALC: East',myThid)
>> #endif
>>       IF (useOrlanskiEast) THEN
>> #ifdef ALLOW_ORLANSKI
>>         CALL ORLANSKI_EAST(
>>      &          bi, bj, futureTime,
>>      &          uVel, vVel, wVel, theta, salt,
>>      &          myThid )
>> #endif
>>       ELSE
>>         DO K=1,Nr
>>           DO J=1-Oly,sNy+Oly
>>             I_obc=OB_Ie(J,bi,bj)
>>             IF (I_obc.ne.0) THEN
>>               OBEu(J,K,bi,bj)=0.
>>               OBEv(J,K,bi,bj)=0.
>>
>>               OBEt(J,K,bi,bj)=10.
>>               OBEs(J,K,bi,bj)=1.
>>
>> --------------------------------------------------------------------- 
>> -
>> ----------------------------------------------------
>>
>> In my case I use both T and S to find density. Thus I will use
>> tracer as additional variable and I must fix its value at a boundary.
>>
>> How I can do this?
>>
>> Nataliya
>>
>>
>>
>>
>> -----Original Message-----
>> From: mitgcm-support-bounces at mitgcm.org [mailto:mitgcm-support-
>> bounces at mitgcm.org] On Behalf Of Martin Losch
>> Sent: 24 April 2008 13:28
>> To: mitgcm-support at mitgcm.org
>> Subject: Re: [MITgcm-support] obcs for ptracers
>>
>> Nataliya,
>> I am not quite sure what exactly it is that you want to do, but you
>> can do two things to prescribe tracer concentration:
>> 1. with the rbcs package you can restore to some climatology (or
>> fixed in time) fields with a certain time scale
>> 2. with the obcs package you can prescribe open boundary values (also
>> for passive tracers in ptracers), see verification/exp4 for a simple
>> example.
>>
>> Martin
>>
>> On 24 Apr 2008, at 13:31, Nataliya Stashchuk wrote:
>>
>>> Dear MITgcm users,
>>>
>>>
>>>
>>> The temperature and salinity  are fixed at one of the open
>>> boundaries in my computation area. EOS is used as Knudsen  equation
>>> for density in my runs.
>>>
>>>
>>>
>>> I will be happy to use the tracer in my investigation and need to
>>> fix the value of the tracer at the open boundary during the run. My
>>> investigation of ptracer  pkg did not give me a clue how to do
>>> this. Could you help?
>>>
>>>
>>>
>>>
>>>
>>> Regards,
>>>
>>>
>>>
>>> Nataliya
>>>
>>> _______________________________________________
>>> 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
>>
>> _______________________________________________
>> 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
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list