[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