[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