[MITgcm-support] How to prescribe constant OBCS

Martin Losch Martin.Losch at awi.de
Tue Nov 11 08:26:42 EST 2008


Hi David,

just to make sure: you need to
1. turn on obcs in packages.conf
2. make sure that OBCS_ALLOW_PRESCRIBE is defined in OBCS_OPTIONS.h
3. useobcsprescribe=.true. in data.obcs, and useOBCS=.true. in data.pkg

In this case you should read open boundary conditions from files (in   
OBCS_EXTERNAL_FIELDS_LOAD) specified in data.obcs (OBNuFile,  
OBNvFile, ..., OBSuFile, ...) at the intervals set by
# periodicExternalForcing=.TRUE.,
# externForcingPeriod=600.,
# externForcingCycle=1200.,
in data, otherwise it's going to be constant boundary conditions read  
from the above files (the latter is exemplified in verification/exp4)

if you want to use exf/cal (these two go together always), then you  
need to turn them on in packages.conf, set useEXF=.true. in data.exf,  
and specify forcingperiod and cycle in data.exf

If you compiled exf/cal, but do not want to use them, you should be  
able to turn them off with useEXF=.false. in data.pkg. This should  
work, but I am not sure it always does.

If things don't work the way you expect them to work then check,  
whether the CPP-flag/packages.conf option are really seen by the  
model by comparing *.F to *.f for obcs_calc.F obcs_prescribe_read.F  
and obcs_external_fields_load.F. That's a little annoying, but I am  
afraid, that's the only way to make sure ...

Martin


On 10 Nov 2008, at 19:05, David Hebert wrote:

> Hi Martin,
>
> Thank you for your response. In the simulation I speak of I have  
> compiled to allow OBCS to be used. I have also included  
> OBCS_OPTIONS.h to allow most OBCS (prescribed, sponge). Then in  
> data.pkg I set useEXF=.FALSE. and useOBCS=.true., .
>
> I note that I compiled the exf and cal packages into the code via  
> packages.conf. Will OBCS require the use of exf since I can not  
> turn of CAL in data.pkg?
>
> Thanks,
>
> David
>
>
> Martin Losch wrote:
>>
>> Hi David,
>>
>> see verification/exp4
>> in order to read obcs from a file you need to set a CPP flag and a  
>> runtime flag (as in exp4).
>> Only after that it should be possible to use exf (as an additional  
>> option), but all of this is not very well tested and requires a  
>> little bit of fiddling (with parameters).
>>
>> Martin
>> On 10 Nov 2008, at 16:20, David Hebert wrote:
>>
>>> I am trying to run a simulation with a simple, constant in time  
>>> boundary. When I try to run with useOBCS=.TRUE., and  
>>> useEXF=.FALSE., in data.pkg, the model seems to ignore my obcs  
>>> files and substitutes 0 for velocities and tRef, sRef for  
>>> temperature and salinity.
>>>
>>> When I set useEXF=.TRUE., and set all periods to 0.0, I get an  
>>> irecord error...
>>>
>>> (PID.TID 0000.0001) *** ERROR *** MDSREADFIELDXZ: Invalid value  
>>> for irecord
>>>
>>>
>>>
>>> Now, the MITgcm documenatation (section 6.3.1.2), <http:// 
>>> mitgcm.org/r2_manual/latest/online_documents/node235.html> seems  
>>> to suggetst this is very simple to set up:
>>>
>>> A simple time-management (e.g. constant in time, or cyclic with  
>>> fixed fequency) is provided through S/R obcs_external_fields_load.
>>>
>>> How do I set up simple constant in time boundaries that use  
>>> constant in time T,S,U,V files? Are there any examples in  
>>> verification?
>>>
>>> Thanks,
>>>
>>> David
>>>
>>>
>>> ________________
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list