[MITgcm-support] Open Boundaries

quero_s at libero.it quero_s at libero.it
Tue Feb 10 06:50:33 EST 2004


Hello,
in these last days, I tried to make the model (version: 'checkpoint52e_pre') read external (time and space dependent) BC files. I added to the oceanic standard package group the exf and cal packages and built the code succesfully. I encountered several problems during runtime...
I think there is a bug in the exf_getffields routine, that should call exf_getobcs (exf_obcs, as specified in the call tree in exf_getforcing.F (below)):

C     !CALLING SEQUENCE:
c ...
c  exf_getforcing
c  |
c  |-- exf_getclim (get climatological fields used e.g. for relax.)
c  |
c  |-- exf_getffields <- this one does almost everything
c  |   |   1. reads in fields, either flux or atmos. state,
c  |   |      depending on CPP options
c  |   |   2. If forcing and control is flux, we're already done here
c  |   |   3. If forcing is atmos. state, then
c  |   |      (a) if control is atmos. state, then the control variable
c  |   |          anomalies are read here
c  |   |          * ctrl_getatemp
c  |   |          * ctrl_getaqh
c  |   |          * ctrl_getuwind
c  |   |          * ctrl_getvwind
c  |   |   4. flux fields are interpolated on current time
c  |   |      (b) next the flux fields are computed via bulk formulae
c  |   |
c  |   |-- exf_obcs
c  |       If open boundaries are prescribed externally,
c  |       OB values for current time step are read here
c  |       1. for each boundary (north, south, west, east)
c  |          sliced fields are read for T,S,U,V
c  |       2. if OB's are part of control vector,
c  |          control variable anomalies are added to OB values
c  |          * ctrl_getobcsn
c  |          * ctrl_getobcss
c  |          * ctrl_getobcsw
c  |          * ctrl_getobcse
c  |
c  |-- exf_bulkformulae
c  |   If ALLOW_BULKFORMULAE, compute fluxes via bulkformulae
c  |


In exf_getffields there is no call to exf_obcs or exf_getobcs. I added this call to the routine and the model seemed to read the files. Though, the values were overwritten by the values prescribed in obcs_calc.F (zero u and v velocity, initial temperature and salinity, by default). I decided to move the call in this latter routine but I think that the records are not read correctly (below there is the pattern of u comp of velocity: the iput file had constant values (-0.01 m/s)!): values went to NaNQ after few iterations.

// =======================================================
 // Field OBNu at iteration          2
 // CMIN =          7.777777777777828E-02
 // CMAX =          3.500000000000000E+01
 // CINT =          1.293415637860082E+00
 // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+
 //                  0.0: .
 // RANGE I (Lo:Hi:Step):(   1:  64:   1)
 // RANGE J (Lo:Hi:Step):(   1:   1:  -1)
 // RANGE K (Lo:Hi:Step):(   1:  20:   1)
 // =======================================================
 J =   1
                I=10      I=20      I=30      I=40      I=50      I=60
 |--K--|123456789|123456789|123456789|123456789|123456789|123456789|1234
      1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      3 ++++++++++++++++++++++++++++++++++++++++++......................
      4 ....................................++++++.+++++++++++++++++++++
      5 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
      6 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
      7 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
      8 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
      9 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     10 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     11 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     12 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     13 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     14 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     15 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     16 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     17 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     18 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     19 +++++++++++++++++++++++++++++++++++.++++++.+++++++++++++++++++++
     20 +++++++++++++++++++++++++++++++++++.++++++-+++++++++++++++++++++
 // =======================================================
 // END OF FIELD                                          =
 // =======================================================


I think there is a problem with the overlap regions (the domain is 64 x 64 x 20 with overlap value of 3).
Did I forget something? Has anybody dealt with this kind of problems before?
I apologize for the long (rather boring?) mail and wait for opinions and/or suggestions.
Thanks,

Stefano






More information about the MITgcm-support mailing list