[MITgcm-support] The problem of CFL numbers

Dustin Carroll dcarroll at uoregon.edu
Fri Oct 31 11:25:50 EDT 2014


Hi Tongya,

As a first step — how does your model behave without the external forcing (i.e., does your density field adjust stably to the topography and such).

With a complex simulation like this I always find it useful to get a basic setup working first and then add the layers of complexity (forcing, mixing scheme, etc). This way you can sequentially debug any issues that arise.

Dustin


> On Oct 31, 2014, at 7:01 AM, liutongya13 at mails.ucas.ac.cn wrote:
> 
> Hi there,
> 
> I am using MITgcm to stimulate the circulation of the South China Sea, with the real topography and the forcing condition of climatological temperature, salinity and wind. And I also used the package of EXF, OBCS and KPP. The resolution is 0.1*0.1 degree. The north, east and south are open boundaries.
> 
> At the initial step, advcfl_wvel_max  =   1.6162224076473E+00, advcfl_W_hf_max =   8.0835530874365E-01, which are not accord with the CFL criterion. I reduce the deltaT to 600s and increase the hFacMin to 0.3, but these two value always>0.5. After a 1000 steps, the CFL numbers keep around 0.3-0.6.
> 
> Another problem is that the velocity become larger(about 4 m/s) in some place with complex topography after several steps. The model run 10 years and did not blow up.  But the flow field is strange and messy, which has a great difference with the real flow field.
> 
> I have no idea that how should I adjust the model in order to make the model more stable and obtain a more real result.
> 
> Any suggestion is highly appreciated!
> 
> Tongya Liu
> 
> size.h
>      &           sNx =  50,
>      &           sNy =  50,
>      &           OLx =   3,
>      &           OLy =   3,
>      &           nSx =   7,
>      &           nSy =   6,
>      &           nPx =   1,
>      &           nPy =   1,
>      &           Nx  = sNx*nSx*nPx,
>      &           Ny  = sNy*nSy*nPy,
>      &           Nr  =   20)
> 
> data:
> # ====================
> # | Model parameters |
> # ====================
> #
> # Continuous equation parameters
>  &PARM01
>  viscAr=1.77E-3,
>  viscAh=0,
>  viscA4=1.E8,
>  diffKhT=0,
>  diffKrT=1.E-5,
>  diffKhS=0,
>  diffKrS=1.E-5,
>  tempAdvScheme=33,
>  saltAdvScheme=33,
>  eosType = 'JMD95Z',
>  no_slip_sides=.FALSE.,
>  no_slip_bottom=.TRUE.,
>  bottomDragQuadratic=0.0025,
>  implicitDiffusion=.TRUE.,
>  implicitFreeSurface=.TRUE.,
>  implicitViscosity=.TRUE.,
>  staggerTimeStep=.TRUE.,
>  implicitFreeSurface=.TRUE.,
>  exactConserv=.TRUE.,
>  hFacMin=0.3,
>  readBinaryPrec=64,
> #- not safe to use globalFiles in multi-processors runs
> #globalFiles=.TRUE.,
>  useSingleCpuIO=.TRUE.,
>  &
> 
> # Elliptic solver parameters
>  &PARM02
>  cg2dMaxIters=1000,
>  cg2dTargetResidual=1.E-13,
>  cg3dMaxIters=400,
>  cg3dTargetResidual=1.E-13,
>  &
> 
> # Time stepping parameters
>  &PARM03
>  startTime=0.,
>  endTime=311040000.,
>  deltaT=600.0,
>  abEps=0.1,
>  momDissip_In_AB=.FALSE.,
>  pChkptFreq=0.0,
>  chkptFreq=0.0,
>  dumpFreq=2592000.0,
>  monitorSelect=2,
>  monitorFreq=1.,
>  &
> 
> # Gridding parameters
>  &PARM04
>  usingSphericalPolarGrid=.TRUE.,
>  ygOrigin=0.0,
>  xgOrigin=99.,
>  dxSpacing=0.1,
>  dySpacing=0.1,
>  delR=10.,10.,15.,15.,20.,30.,50.,70.,80.,100.,
>        150.,150.,200.,300.,400.,500.,600.,700.,800.,800.,
>  &
> 
> # Input datasets
>  &PARM05
>  bathyFile='topog.bin',
>  uVelInitFile='Uvel.bin',
>  vVelInitFile='Vvel.bin',
>  hydrogThetaFile='Temp.bin',
>  hydrogSaltFile='Salt.bin',
>  &
> 
> data.obcs:
> # Open-boundaries
>  &OBCS_PARM01
> # This flag turns off checking and fixing problematic topography across
> # open boundaries.
>  OBCSfixTopo=.FALSE.,
>  OB_Jnorth= 350*-1,
>  OB_Jsouth= 350*1,
>  OB_Ieast = 300*-1,
> 
>  useOBCSprescribe = .TRUE.,
>  useOrlanskiNorth = .TRUE.,
>  useOrlanskiSouth = .TRUE.,
>  useOrlanskiEast = .TRUE.,
> 
>  OBNuFile = 'OB_NorthU.bin',
>  OBSuFile = 'OB_SouthU.bin',
>  OBEuFile = 'OB_EastU.bin',
>  OBNvFile = 'OB_NorthV.bin',
>  OBSvFile = 'OB_SouthV.bin',
>  OBEvFile = 'OB_EastV.bin',
> 
>  OBCS_monitorFreq= 1200.,
>  OBCS_monSelect = 1,
>  &
> 
> # Orlanski parameters
>  &OBCS_PARM02
> #Cmax=0.45,
> #cVelTimeScale=1000.,
>  &
> 
> data.exf:
> # *********************
> # External Forcing Data
> # *********************
>  &EXF_NML_01
>  repeatPeriod= 31104000.,
>  readStressOnCgrid = .TRUE.,
>  useAtmWInd = .FALSE.,
>  exf_iprec         = 64,
>  &
> 
> # *********************
>  &EXF_NML_02
>  ustressstartdate1 = 20090101,
>  ustressstartdate2 = 000000,
>  ustressperiod     = 2592000.0,
> #
>  vstressstartdate1 = 20090101,
>  vstressstartdate2 = 000000,
>  vstressperiod     = 2592000.0,
> #
>  climsststartdate1 = 20090101,
>  climsststartdate2 = 000000,
>  climsstperiod     = 2592000.0,
> # 2 months restoring timescale for temperature
>  climsstTauRelax   = 5184000.,
> #
>  climsssstartdate1 = 20090101,
>  climsssstartdate2 = 000000,
>  climsssperiod     = 2592000.0,
> # 6 months restoring timescale for salinity
>  climsssTauRelax   = 15552000.,
> #
>  ustressfile  = 'tx.bin',
>  vstressfile  = 'ty.bin',
>  climsstfile  = 'CliT.bin',
>  climsssfile  = 'CliS.bin',
> #
>  &
> 
> # *********************
>  &EXF_NML_03
>  &
> 
> # *********************
>  &EXF_NML_04
> 
>  climsst_lon0    = 99.05,
>  climsst_lon_inc = 0.1,
>  climsst_lat0    = 0.05,
>  climsst_lat_inc = 0.1,
>  climsst_nlon    = 350,
>  climsst_nlat    = 300,
> 
>  climsss_lon0    = 99.05,
>  climsss_lon_inc = 0.1,
>  climsss_lat0    = 0.05,
>  climsss_lat_inc = 0.1,
>  climsss_nlon    = 350,
>  climsss_nlat    = 300,
> 
>  &
> &EXF_NML_OBCS
>  obcsEstartdate1   = 20090101,
>  obcsEstartdate2   = 00000,
>  obcsEperiod       = 2592000,
> #
>  obcsNstartdate1   = 20090101,
>  obcsNstartdate2   = 000000,
>  obcsNperiod       = 2592000,
> #
>  obcsSstartdate1   = 20090101,
>  obcsSstartdate2   = 000000,
>  obcsSperiod       = 2592000,
>  &
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list