[MITgcm-support] "something wrong with exf "
Martin Losch
Martin.Losch at awi.de
Mon Apr 28 06:09:16 EDT 2014
Dear Li Zhi,
with your flags, the model expects downwards radiation fluxes:
#define ALLOW_DOWNWARD_RADIATION
and computes the fluxes from those (also because of #define ALLOW_ATM_WIND)
In pkg/exf/EXF_OPTIONS.h there is a table of sensible combinations of CPP-flags.
I think you need to undefine ALLOW_DOWNWARD_RADIATION (that’s the 3rd option the aforementioned table).
Martin
On Apr 27, 2014, at 2:46 PM, 李志远 <oceanlizy at 163.com> wrote:
> From: Li zhi <oceanlizy at 163.com
> >
> To: MITgcm <
> mitgcm-support at mitgcm.org
> >
> Subject : "something wrong with exf "
>
>
>
> Hello,everyone:
> I try to run my model with exf package . The external forcing includes uwind ,vwind , net heat flux and net salt flux . I know that net heat flux =latent +sensible+longwave +shortwave ,and shortwave flux will penetrate into the ocean .I have downloaded the four parts heat flux ,and made two input files : net upward "hflux"=longwave + latent+sensible and net downward "swflux"=shortwave . all my input files are 134*165*2(2 time slice) , period is 432000 s , the model run 864000 s .
> But ,something wrong occured !
>
> 1) the model run 432000 s then abnormally ended ,that is, the model only read one time slice exf input then died .
> 2) the STDOUT file is
> (PID.TID 0009.0001) // Begin MONITOR EXF statistics
> (PID.TID 0009.0001) // =======================================================
> (PID.TID 0009.0001) %MON exf_tsnumber = 4319
> (PID.TID 0009.0001) %MON exf_time_sec = 4.3190000000000E+05
> (PID.TID 0009.0001) %MON exf_ustress_max = 1.3572277506792E-01
> (PID.TID 0009.0001) %MON exf_ustress_min = -1.6013901825976E-01
> (PID.TID 0009.0001) %MON exf_ustress_mean = -6.2404852259709E-03
> (PID.TID 0009.0001) %MON exf_ustress_sd = 6.8804487788336E-02
> (PID.TID 0009.0001) %MON exf_ustress_del2 = 1.6609094220898E-04
> (PID.TID 0009.0001) %MON exf_vstress_max = 2.3527390232609E-02
> (PID.TID 0009.0001) %MON exf_vstress_min = -3.0823807849958E-01
> (PID.TID 0009.0001) %MON exf_vstress_mean = -1.2147258620202E-01
> (PID.TID 0009.0001) %MON exf_vstress_sd = 5.8474910958102E-02
> (PID.TID 0009.0001) %MON exf_vstress_del2 = 1.3221275495875E-04
> (PID.TID 0009.0001) %MON exf_hflux_max = 1.5628597119630E+03
> (PID.TID 0009.0001) %MON exf_hflux_min = -1.7681632424630E+01
> (PID.TID 0009.0001) %MON exf_hflux_mean = 8.2366859715691E+02
> (PID.TID 0009.0001) %MON exf_hflux_sd = 3.9566688709215E+02
> (PID.TID 0009.0001) %MON exf_hflux_del2 = 2.0002179009892E+00
> (PID.TID 0009.0001) %MON exf_sflux_max = 4.5108580096032E-07
> (PID.TID 0009.0001) %MON exf_sflux_min = 2.8208271059353E-08
> (PID.TID 0009.0001) %MON exf_sflux_mean = 2.4964855882172E-07
> (PID.TID 0009.0001) %MON exf_sflux_sd = 1.0600689104328E-07
> (PID.TID 0009.0001) %MON exf_sflux_del2 = 5.9105201446377E-10
> (PID.TID 0009.0001) %MON exf_uwind_max = 8.8566970825195E+00
> (PID.TID 0009.0001) %MON exf_uwind_min = -7.9116115570068E+00
> (PID.TID 0009.0001) %MON exf_uwind_mean = 2.3978697541493E-01
> (PID.TID 0009.0001) %MON exf_uwind_sd = 4.0384389684366E+00
> (PID.TID 0009.0001) %MON exf_uwind_del2 = 1.3303219920841E-02
> (PID.TID 0009.0001) %MON exf_vwind_max = 3.4251434803009E+00
> (PID.TID 0009.0001) %MON exf_vwind_min = -1.1955350875854E+01
> (PID.TID 0009.0001) %MON exf_vwind_mean = -7.5552961860407E+00
> (PID.TID 0009.0001) %MON exf_vwind_sd = 2.1101240583845E+00
> (PID.TID 0009.0001) %MON exf_vwind_del2 = 1.8706120199835E-02
> (PID.TID 0009.0001) %MON exf_wspeed_max = 1.3311373863265E+01
> (PID.TID 0009.0001) %MON exf_wspeed_min = 1.6673359174472E+00
> (PID.TID 0009.0001) %MON exf_wspeed_mean = 8.6431528793835E+00
> (PID.TID 0009.0001) %MON exf_wspeed_sd = 1.7881608986738E+00
> (PID.TID 0009.0001) %MON exf_wspeed_del2 = 2.0036800095167E-02
> (PID.TID 0009.0001) %MON exf_swflux_max = 0.0000000000000E+00
> (PID.TID 0009.0001) %MON exf_swflux_min = -1.4898089802530E+02
> (PID.TID 0009.0001) %MON exf_swflux_mean = -1.2045970705055E+02
> (PID.TID 0009.0001) %MON exf_swflux_sd = 8.1980291214550E+00
> (PID.TID 0009.0001) %MON exf_swflux_del2 = 2.6585185449808E-01
> (PID.TID 0009.0001) %MON exf_evap_max = 4.5108580096032E-07
> (PID.TID 0009.0001) %MON exf_evap_min = 2.8208271059353E-08
> (PID.TID 0009.0001) %MON exf_evap_mean = 2.4964855882172E-07
> (PID.TID 0009.0001) %MON exf_evap_sd = 1.0600689104328E-07
> (PID.TID 0009.0001) %MON exf_evap_del2 = 5.9105201446377E-10
> (PID.TID 0009.0001) %MON exf_climsst_max = 2.3778386943870E+01
> (PID.TID 0009.0001) %MON exf_climsst_min = 2.4945521631727E+00
> (PID.TID 0009.0001) %MON exf_climsst_mean = 1.5738991413616E+01
> (PID.TID 0009.0001) %MON exf_climsst_sd = 5.8569127839436E+00
> (PID.TID 0009.0001) %MON exf_climsst_del2 = 5.6161377933110E-03
> (PID.TID 0009.0001) %MON exf_climsss_max = 3.4859996445974E+01
>
> but the exf_hflux is apparently not what I input into the model , it is much larger (1.5628597119630E+03) .
> 3) I did not input a 'evap' file in data.exf , why there is evap in the STDOUT file ? I only made the input file 'sflux'=evap-precip in the data.exf ,but I find that in the EXF_OPTIONS.h ,there are "# define runoff "and "# define evap" selections, but not" # define sflux " . if I want to use 'sflux'=evap-precip ,not respectively" evap" file and "precip" file ,what should I modify in the EXF_OPTIONS.h ?
> my EXF_OPTIONS.h and data.exf ,data files are as follows:
>
> EXF_OPTIONS.h :
> C Bulk formulae related flags.
> #undef ALLOW_ATM_TEMP
> #define ALLOW_ATM_WIND
> #define ALLOW_DOWNWARD_RADIATION
> #define ALLOW_RUNOFF
> #if (defined (ALLOW_ATM_TEMP) || defined (ALLOW_ATM_WIND))
> # define ALLOW_BULKFORMULAE
> # define ALLOW_BULK_LARGEYEAGER04
> #endif
>
> C Zenith Angle/Albedo related flags.
> #ifdef ALLOW_DOWNWARD_RADIATION
> # undef ALLOW_ZENITHANGLE
> #endif
>
> C Use ocean_emissivity*lwdwon in lwFlux. This flag should always be define
> C but is not because of backward compatibility
> #ifdef ALLOW_DOWNWARD_RADIATION
> # undef EXF_LWDOWN_WITH_EMISSIVITY
> #endif
>
> C Relaxation to monthly climatologies.
> #define ALLOW_CLIMSST_RELAXATION
> #define ALLOW_CLIMSSS_RELAXATION
>
> C Use spatial interpolation to interpolate
> C forcing files from input grid to model grid.
> #define USE_EXF_INTERPOLATION
>
> #undef EXF_INTERP_USE_DYNALLOC
> #if ( defined (EXF_INTERP_USE_DYNALLOC) && defined (USING_THREADS) )
> # define EXF_IREAD_USE_GLOBAL_POINTER
> #endif
>
> #endif /* ndef ALLOW_AUTODIFF_TAMC */
> #endif /* ALLOW_EXF */
> #endif /* EXF_OPTIONS_H */
>
> data.exf file :
> # External Forcing Data
> # *********************
> &EXF_NML_01
> #
> useExfCheckRange = .FALSE.,
> # repeatPeriod = 31622400.0,
> exf_iprec = 32,
> #
> &
>
> # *********************
> &EXF_NML_02
> #
> hfluxstartdate1 = 20130101,
> hfluxstartdate2 = 000000,
> hfluxperiod = 432000.0,
> #
> sfluxstartdate1 = 20130101,
> sfluxstartdate2 = 000000,
> sfluxperiod = 432000.0,
> #
> #evapstartdate1 = 19781216,
> #evapstartdate2 = 180000,
> #evapperiod = 2635200.0,
> #
> precipstartdate1 = 19781216,
> precipstartdate2 = 180000,
> precipperiod = 2635200.0,
> #
> uwindstartdate1 = 20130101,
> uwindstartdate2 = 000000,
> uwindperiod = 432000.0,
> #
> vwindstartdate1 = 20130101,
> vwindstartdate2 = 000000,
> vwindperiod = 432000.0,
> #
> swfluxstartdate1 = 20130101,
> swfluxstartdate2 = 000000,
> swfluxperiod = 432000.0,
> #
> climsststartdate1 = 20130101,
> climsststartdate2 = 000000,
> climsstperiod = 432000.0,
> climsstTauRelax = 43200.0,
> #
> climsssstartdate1 = 20130101,
> climsssstartdate2 = 000000,
> climsssperiod = 432000.0,
> climsssTauRelax = 43200.0,
> #
> hfluxfile = 'DASILVA_hflux.bin',
> swfluxfile = 'DASILVA_swflux.bin ',
> # sfluxfile = 'ncep_emp.bin',
> climsstfile = 'AVHRR_sst.bin',
> climsssfile = 'WOA_sss.bin',
> uwindfile = 'u10m.windsat2013',
> vwindfile = 'v10m.windsat2013',
> sfluxfile = 'GFDL_sflux.bin',
> &
>
> data file:
> # ====================
> # | Model parameters |
> # ====================
> #
> # Continuous equation parameters
> &PARM01
> tRef = 37*20.,
> sRef = 37*34.,
> viscAz=9.E-5,
> diffKzT=9.E-5,
> diffKzS=9.E-5,
> viscAhGrid=0.1,
> diffKhT=0,
> diffKhS=0,
> tempAdvScheme = 33,
> saltAdvScheme = 33,
> staggerTimeStep = .TRUE.
> rigidLid=.FALSE.,
> eosType = 'LINEAR',
> no_slip_sides=.FALSE.,
> no_slip_bottom=.TRUE.,
> bottomDragQuadratic=2.5E-3,
> implicitFreeSurface=.TRUE.,
> implicitdiffusion=.TRUE.,
> implicitviscosity=.TRUE.,
> hFacMin=.1,
> readBinaryPrec=32,
> &
>
> # Elliptic solver parameters
> &PARM02
> cg2dMaxIters=500,
> cg2dTargetResidual=1.E-13,
> &
>
> # Time stepping parameters
> &PARM03
> startTime = 0,
> endTime = 864000,
> deltaT = 100.,
> abEps = 0.1,
> dumpFreq= 1000.,
> monitorFreq=1.,
> &
>
> # Gridding parameters
> &PARM04
> usingSphericalPolarGrid=.TRUE.,
> delX=134*0.1,
> delY=165*0.1,
> ygOrigin=24.5,
> xgOrigin=117.525,
> delZ= 2,3,4,4,5,5,5,5,5,5,
> 5,5,5,5,5,5,5,7,8,10,
> 15,20,25,30,50,70,100,150,200,
> 250,300,400,487,500,500,500,500,
> &
>
> # Input datasets
> &PARM05
> bathyFile= 'yswc_topog.bin',
> hydrogThetaFile='yswc_temp.bin',
> hydrogSaltFile= 'yswc_salt.bin',
> &
>
> Any quick reply is greatly appreciated !
> YOURS LI ZHI
> BEST REGARDS !
>
>
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
More information about the MITgcm-support
mailing list