The simulation temperature is too high, and the output swrad and lwrad of the roms are too large

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
wanghaoyu
Posts: 16
Joined: Thu Sep 15, 2022 7:57 pm
Location: iocas

The simulation temperature is too high, and the output swrad and lwrad of the roms are too large

#1 Unread post by wanghaoyu »

I am a beginner in roms, and the temperature deviation in the simulation results is very large. Comparing the results of the thermal radiation flux input by forcing_file and the thermal radiation flux output by roms, it is found that there are large deviations in each heat flux. The swrad output by roms is about three times that of the swrad input by forcing_file, and the lwrad output by roms is also much larger than the lwrad input by forcing_file, but the spatial distribution has almost no relationship. Wonder what the cause of this problem is (forcing_file's data source is REA5) The time resolution of the forced field file is 1 hour。

Note: The absolute value of lwrad output by ROMs is larger than that of lwrad input by forcing_file

Thank you very much!

Code: Select all

/*Model configuration OPTIONS:*/
#define MASKING
#define SOLVE3D
#undef  SPHERICAL
#define CURVGRID      /* Define to compute the extra non-linear advection terms which arise when using curvilinear coordinates.*/
#define POWER_LAW      /* default */
#define K_GSCHEME      /* default */

#undef  FLOATS
#undef  FLOAT_VWALK
#undef  STATIONS
#define  SPLINES

#undef  WET_DRY

/* Grid and Initial */
#undef ANA_GRID
#undef ANA_INITIAL

/** OPTIONS associated with momentum equations:*/
#define UV_ADV       /*use to turn ON or OFF advection terms*/
#define UV_COR       /*use to turn ON or OFF Coriolis termV*/
#define UV_VIS2      /*use to turn ON or OFF harmonic horizontal mixing*/

/*Pressure gradient algorithm OPTIONS:*/
#define DJ_GRADPS      /* Pressure gradient options Define for splines density Jacobian */

/*OPTIONS associated with tracers equations: */
#define TS_DIF2        /*use to turn ON or OFF harmonic horizontal mixing*/
#undef  TS_DIF4
#undef  TS_U3HADVECTION
#undef  TS_C4VADVECTION
#define TS_MPDATA
#define SALINITY
#define NONLIN_EOS     /*use the nonlinear equation of state*/
#define SOLAR_SOURCE

#define QCORRECTION     /*Define to use the net heat flux correction.*/
#define SCORRECTION     /*Define to use freshwater flux correction.*/
#undef  SRELAXATION     /*Define to use salinity relaxation as a freshwater flux.*/

/*OPTIONS for horizontal mixing of momentum:*/
#undef  VISC_GRID  
#define MIX_S_UV     /*use if mixing along constant S-surfaces*/
#undef  MIX_GEO_UV

/*OPTIONS for horizontal mixing of tracers: */
#define  DIFF_GRID     /* define */
#define  MIX_S_TS      /*use if mixing along constant S-surfaces*/ 
#undef MIX_GEO_TS      /* Mixing along geopotential (constant Z) surfaces */

/* Lateral boundary */
#undef RADIATION_2D          /* Define for tangential phase speed in radiation conditions*/
#undef SPONGE

/* bottom boundary layer */
#define UV_QDRAG     /* Define for quadratic bottom friction */
#undef UV_LOGDRAG    /* Define for logarithmic bottom friction*/
#undef UV_LDRAG      /* Define for linear bottom friction */

/* Real-time forced config.  */
#define BULK_FLUXES
#define DIURNAL_SRFLUX
#undef  LONGWAVE_OUT   /* Using computing OLR */
#define LONGWAVE
#define CLOUDS
#define EMINUSP        /* compute evaporation minus precipitation */
#define COOL_SKIN      /* lxc 191210  use if cool skin correction */
#undef  ANA_SSFLUX
#undef  ANA_STFLUX      /*use if analytical surface net heat flux*/ 

#undef ATM_PRESS

#define ANA_BTFLUX     /* analytical bottom temperature flux */
#define ANA_BSFLUX     /* analytical bottom salinity flux */
#undef  ANA_SMFLUX     /*use if analytical surface momentum stress*/
#undef  ANA_SRFLUX     /* analytic kinematic surface shortwave radiation */

/* Turbulence closure */
#define  MY25_MIXING    /* MY25_MIXING GLS_MIXING*/
#undef  GLS_MIXING
#undef  LMD_MIXING       /* Large/McWilliams/Doney interior mixing  KPP */
#define LIMIT_VDIFF
#define LIMIT_VVISC

#if defined GLS_MIXING || defined MY25_MIXING /* MY25_MIXING && GLS_MIXING */
# undef  CANUTO_A        /* Define for Canuto A-stability function formulation. */
# define KANTHA_CLAYSON /* Define for Kantha and Clayson stability function. */
# define K_C2ADVECTION   /* Define for 2th-order centered advection. */
# undef  K_C4ADVECTION   /* Define for 4th-order centered advection. */
# define N2S2_HORAVG    /* Define for horizontal smoothing of buoyancy/shear */
# undef CHARNOK        /* Define for Charnok surface roughness from wind stress*/
# undef CRAIG_BANNER   /* Define for Craig and Banner wave breaking surface flux.*/
# undef RI_SPLINES
# undef ZOS_HSIG        /* Define for surface roughness from wave amplitude. */
# undef TKE_WAVEDISS    /* Define for wave breaking surface flux from wave amplitude. */
#endif

#ifdef LMD_MIXING          
# define LMD_RIMIX                             /* Add diffusivity due to shear instability */
# define LMD_CONVEC                            /* Add convective mixing due to shear instability */
# define LMD_DDMIX                             /* Add double-diffusive mixing */
# define LMD_SKPP                              /* KPP surface boundary layer mixing */
# define LMD_NONLOCAL                          /* LMD convective nonlocal transport */
# define LMD_SHAPIRO                           /* Shapiro filtering boundary layer depth */
# define LMD_BKPP                              /* KPP bottom boundary layer mixing */
# define RI_SPLINES                            /* Splines reconstruction for Richardson Number */
#endif

/* Climatology */

#define  TCLIMATOLOGY
#define  TCLM_NUDGING
#undef  ZCLIMATOLOGY
#undef  ZCLM_NUDGING
#undef  M2CLIMATOLOGY
#undef  M2CLM_NUDGING
#undef  M3CLIMATOLOGY
#undef  M3CLM_NUDGING

/* tide force */
#define RAMP_TIDES
#define SSH_TIDES
#define UV_TIDES

/* Tide boundary */
#ifdef SSH_TIDES
# define ADD_FSOBC
#endif

#ifdef UV_TIDES
# define ADD_M2OBC
#endif

/* river */
#undef UV_PSOURCE
#undef TS_PSOURCE
#undef Q_PSOURCE

/* Output */
#undef DIAGNOSTICS_TS
#undef DIAGNOSTICS_UV
#undef DIAGNOSTICS_BIO
#define AVERAGES     /*write out time-averaged model fields*/

Code: Select all

 Activated C-preprocessing Options:

 UPWELLING           Upwelling
 ADD_FSOBC           Adding tidal elevation to processed OBC data.
 ADD_M2OBC           Adding tidal currents to processed OBC data.
 ANA_BSFLUX          Analytical kinematic bottom salinity flux.
 ANA_BTFLUX          Analytical kinematic bottom temperature flux.
 ASSUMED_SHAPE       Using assumed-shape arrays.
 ATM_PRESS           Impose atmospheric pressure onto sea surface.
 AVERAGES            Writing out time-averaged nonlinear model fields.
 BULK_FLUXES         Surface bulk fluxes parameterization.
 COOL_SKIN           Surface cool skin correction.
 CURVGRID            Orthogonal curvilinear grid.
 DIFF_GRID           Horizontal diffusion coefficient scaled by grid size.
 DIURNAL_SRFLUX      Modulate shortwave radiation by the local diurnal cycle.
 DJ_GRADPS           Parabolic Splines density Jacobian (Shchepetkin, 2002).
 DOUBLE_PRECISION    Double precision arithmetic.
 EMINUSP             Compute Salt Flux using E-P.
 KANTHA_CLAYSON      Kantha and Clayson stability function formulation.
 LONGWAVE            Compute net longwave radiation internally.
 MASKING             Land/Sea masking.
 MIX_S_TS            Mixing of tracers along constant S-surfaces.
 MIX_S_UV            Mixing of momentum along constant S-surfaces.
 MPI                 MPI distributed-memory configuration.
 MY25_MIXING         Mellor/Yamada Level-2.5 mixing closure.
 NONLINEAR           Nonlinear Model.
 NONLIN_EOS          Nonlinear Equation of State for seawater.
 N2S2_HORAVG         Horizontal smoothing of buoyancy and shear.
 POWER_LAW           Power-law shape time-averaging barotropic filter.
 PROFILE             Time profiling activated .
 QCORRECTION         Surface net heat flux correction.
 K_C2ADVECTION       Second-order centered differences advection of TKE fields.
 RADIATION_2D        Use tangential phase speed in radiation conditions.
 RAMP_TIDES          Ramping tidal forcing for one day.
 !RST_SINGLE         Double precision fields in restart NetCDF file.
 SALINITY            Using salinity.
 SCORRECTION         Surface salinity flux correction.
 SOLAR_SOURCE        Solar Radiation Source Term.
 SOLVE3D             Solving 3D Primitive Equations.
 SPLINES             Conservative parabolic spline reconstruction.
 SSH_TIDES           Add tidal elevation to SSH climatology.
 TCLIMATOLOGY        Processing tracer climatology data.
 TCLM_NUDGING        Nudging toward tracer climatology.
 TS_MPDATA           Recursive flux corrected MPDATA 3D advection of tracers.
 TS_DIF2             Harmonic mixing of tracers.
 UV_ADV              Advection of momentum.
 UV_COR              Coriolis term.
 UV_U3HADVECTION     Third-order upstream horizontal advection of 3D momentum.
 UV_C4VADVECTION     Fourth-order centered vertical advection of momentum.
 UV_QDRAG            Quadratic bottom stress.
 UV_TIDES            Add tidal currents to 2D momentum climatologies.
 UV_VIS2             Harmonic mixing of momentum.
 VAR_RHO_2D          Variable density barotropic mode.

 Process Information:

 Node #  0 (pid=   73810) is active.
 Node # 23 (pid=   73833) is active.
 Node # 31 (pid=   73845) is active.
 Node #  7 (pid=   73817) is active.
 Node # 27 (pid=   73839) is active.
 Node #  1 (pid=   73811) is active.
 Node # 19 (pid=   73829) is active.
 Node #  3 (pid=   73813) is active.
 Node # 11 (pid=   73821) is active.
 Node # 15 (pid=   73825) is active.
 Node # 20 (pid=   73830) is active.
 Node # 28 (pid=   73840) is active.
 Node # 18 (pid=   73828) is active.
 Node # 21 (pid=   73831) is active.
 Node # 22 (pid=   73832) is active.
 Node # 24 (pid=   73835) is active.
 Node # 25 (pid=   73836) is active.
 Node # 26 (pid=   73837) is active.
 Node # 29 (pid=   73842) is active.
 Node # 30 (pid=   73843) is active.
 Node #  8 (pid=   73818) is active.
 Node #  9 (pid=   73819) is active.
 Node # 10 (pid=   73820) is active.
 Node # 12 (pid=   73822) is active.
 Node # 13 (pid=   73823) is active.
 Node # 14 (pid=   73824) is active.
 Node # 16 (pid=   73826) is active.
 Node # 17 (pid=   73827) is active.
 Node #  2 (pid=   73812) is active.
 Node #  4 (pid=   73814) is active.
 Node #  5 (pid=   73815) is active.
 Node #  6 (pid=   73816) is active.

 INITIAL: Configuring and initializing forward nonlinear model ...
 *******

 Vertical S-coordinate System, Grid 01:

 level   S-coord     Cs-curve   Z   at hmin       at hc    half way     at hmax

    30   0.0000000   0.0000000        0.000       0.000       0.000       0.000
    29  -0.0333333  -0.0000142       -0.317      -3.335      -6.198      -6.473
    28  -0.0666667  -0.0000582       -0.635      -6.672     -12.464     -13.087
    27  -0.1000000  -0.0001359       -0.952     -10.014     -18.807     -19.860
    26  -0.1333333  -0.0002543       -1.270     -13.359     -25.243     -26.825
    25  -0.1666667  -0.0004242       -1.588     -16.709     -31.796     -34.034
    24  -0.2000000  -0.0006611       -1.905     -20.066     -38.502     -41.559
    23  -0.2333333  -0.0009863       -2.223     -23.432     -45.408     -49.501
    22  -0.2666667  -0.0014292       -2.540     -26.810     -52.583     -57.999
    21  -0.3000000  -0.0020301       -2.858     -30.203     -60.118     -67.243
    20  -0.3333333  -0.0028431       -3.176     -33.618     -68.136     -77.490
    19  -0.3666667  -0.0039419       -3.494     -37.061     -76.805     -89.086
    18  -0.4000000  -0.0054256       -3.812     -40.543     -86.350    -102.500
    17  -0.4333333  -0.0074279       -4.131     -44.076     -97.077    -118.364
    16  -0.4666667  -0.0101289       -4.449     -47.680    -109.395    -137.528
    15  -0.5000000  -0.0137708       -4.768     -51.377    -123.857    -161.136
    14  -0.5333333  -0.0186789       -5.088     -55.201    -141.203    -190.726
    13  -0.5666667  -0.0252893       -5.409     -59.196    -162.426    -228.356
    12  -0.6000000  -0.0341851       -5.731     -63.419    -188.855    -276.781
    11  -0.6333333  -0.0461435       -6.054     -67.948    -222.261    -339.672
    10  -0.6666667  -0.0621954       -6.379     -72.886    -264.990    -421.899
     9  -0.7000000  -0.0836996       -6.707     -78.370    -320.140    -529.879
     8  -0.7333333  -0.1124317       -7.038     -84.577    -391.753    -672.001
     7  -0.7666667  -0.1506842       -7.373     -91.735    -485.052    -859.091
     6  -0.8000000  -0.2013660       -7.715    -100.137    -606.664   -1104.891
     5  -0.8333333  -0.2680795       -8.064    -110.141    -764.793   -1426.416
     4  -0.8666667  -0.3551271       -8.423    -122.179    -969.240   -1843.989
     3  -0.9000000  -0.4673667       -8.794    -136.737   -1231.070   -2380.555
     2  -0.9333333  -0.6097911       -9.179    -154.312   -1561.657   -3059.698
     1  -0.9666667  -0.7866588       -9.581    -175.333   -1970.701   -3901.534
     0  -1.0000000  -1.0000000      -10.000    -200.000   -2462.825   -4915.651

 Time Splitting Weights for Grid 01:    ndtfast =  30    nfast =  42
 ==================================

    Primary            Secondary            Accumulated to Current Step

  1-0.0008094437383769 0.0333333333333333-0.0008094437383769 0.0333333333333333
  2-0.0014053566728197 0.0333603147912792-0.0022148004111966 0.0666936481246126
  3-0.0017877524645903 0.0334071600137066-0.0040025528757869 0.1001008081383191
  4-0.0019566842408176 0.0334667517625262-0.0059592371166046 0.1335675599008453
  5-0.0019122901320372 0.0335319745705535-0.0078715272486418 0.1670995344713988
  6-0.0016548570247459 0.0335957175749547-0.0095263842733877 0.2006952520463536
  7-0.0011849025289723 0.0336508794757796-0.0107112868023600 0.2343461315221331
  8-0.0005032751608631 0.0336903762267453-0.0112145619632232 0.2680365077488784
  9 0.0003887272597151 0.0337071520654408-0.0108258347035081 0.3017436598143192
 10 0.0014892209965583 0.0336941944901169-0.0093366137069498 0.3354378543044362
 11 0.0027955815694920 0.0336445537902317-0.0065410321374578 0.3690824080946679
 12 0.0043042707117221 0.0335513677379153-0.0022367614257356 0.4026337758325831
 13 0.0060106451121704 0.0334078920475245 0.0037738836864348 0.4360416678801076
 14 0.0079087469427945 0.0332075372104522 0.0116826306292293 0.4692492050905598
 15 0.0099910761708920 0.0329439123123590 0.0216737068001213 0.5021931174029188
 16 0.0122483446563884 0.0326108764399960 0.0339220514565097 0.5348039938429148
 17 0.0146692120341107 0.0322025982847830 0.0485912634906204 0.5670065921276978
 18 0.0172400033810439 0.0317136245503127 0.0658312668716643 0.5987202166780105
 19 0.0199444086685725 0.0311389577709445 0.0857756755402368 0.6298591744489550
 20 0.0227631639997064 0.0304741441486588 0.1085388395399432 0.6603333185976138
 21 0.0256737146312911 0.0297153720153352 0.1342125541712342 0.6900486906129490
 22 0.0286498597812016 0.0288595815276255 0.1628624139524359 0.7189082721405746
 23 0.0316613792205220 0.0279045862015855 0.1945237931729578 0.7468128583421600
 24 0.0346736416507075 0.0268492068942347 0.2291974348236653 0.7736620652363948
 25 0.0376471948657328 0.0256934188392112 0.2668446296893981 0.7993554840756060
 26 0.0405373376992232 0.0244385123436867 0.3073819673886213 0.8237939964192927
 27 0.0432936737565710 0.0230872677537126 0.3506756411451924 0.8468812641730054
 28 0.0458596469320356 0.0216441452951603 0.3965352880772280 0.8685254094681656
 29 0.0481720587108284 0.0201154903974257 0.4447073467880565 0.8886408998655914
 30 0.0501605672561820 0.0185097551070648 0.4948679140442384 0.9071506549726561
 31 0.0517471682814030 0.0168377361985254 0.5466150823256415 0.9239883911711815
 32 0.0528456577069106 0.0151128305891453 0.5994607400325521 0.9391012217603267
 33 0.0533610761022577 0.0133513086655816 0.6528218161348098 0.9524525304259084
 34 0.0531891349131379 0.0115726061288397 0.7060109510479478 0.9640251365547481
 35 0.0522156244733761 0.0097996349650684 0.7582265755213239 0.9738247715198165
 36 0.0503158038019030 0.0080591141492892 0.8085423793232269 0.9818838856691057
 37 0.0473537721847153 0.0063819206892258 0.8558961515079423 0.9882658063583315
 38 0.0431818225418188 0.0048034616164019 0.8990779740497611 0.9930692679747334
 39 0.0376397765791564 0.0033640675316746 0.9367177506289175 0.9964333355064080
 40 0.0305543017255206 0.0021094083123694 0.9672720523544381 0.9985427438187774
 41 0.0217382098544504 0.0010909315881854 0.9890102622088885 0.9996336754069628
 42 0.0109897377911118 0.0003663245930371 1.0000000000000004 0.9999999999999999

 ndtfast, nfast =   30  42   nfast/ndtfast =  1.40000

 Centers of gravity and integrals (values must be 1, 1, approx 1/2, 1, 1):

    1.000000000000 1.047601458608 0.523800729304 1.000000000000 1.000000000000

 Power filter parameters, Fgamma, gamma =  0.28400   0.18933

 Metrics information for Grid 01:
 ===============================

 Minimum X-grid spacing, DXmin =  3.38578554E+00 km
 Maximum X-grid spacing, DXmax =  3.65036801E+00 km
 Minimum Y-grid spacing, DYmin =  3.38658696E+00 km
 Maximum Y-grid spacing, DYmax =  3.65036800E+00 km
 Minimum Z-grid spacing, DZmin =  3.17467091E-01 m
 Maximum Z-grid spacing, DZmax =  1.01411681E+03 m

 Minimum barotropic Courant Number =  7.69782170E-03
 Maximum barotropic Courant Number =  1.78402175E-01
 Maximum Coriolis   Courant Number =  3.56141826E-03

 Horizontal mixing scaled by grid size, GRDMAX =  3.65036801E+00 km

 NLM: GET_STATE - Read state initial conditions,             t = 13041 00:00:00
                   (Grid 01, File: roms_ini_bio_SEMES_Y2005M9D15.nc, Rec=0001, Index=1)
                - free-surface
                   (Min =  0.00000000E+00 Max =  0.00000000E+00)
                - vertically integrated u-momentum component
                   (Min =  0.00000000E+00 Max =  0.00000000E+00)
                - vertically integrated v-momentum component
                   (Min =  0.00000000E+00 Max =  0.00000000E+00)
                - u-momentum component
                   (Min =  0.00000000E+00 Max =  0.00000000E+00)
                - v-momentum component
                   (Min =  0.00000000E+00 Max =  0.00000000E+00)
                - potential temperature
                   (Min =  1.18048750E+00 Max =  3.21926625E+01)
                - salinity
                   (Min =  3.19417303E+00 Max =  3.51839344E+01)
    GET_NGFLD   - tidal period
                   (Min =  2.19720215E+04 Max =  2.38071489E+06)
    GET_2DFLD   - tidal elevation amplitude
                   (Min =  0.00000000E+00 Max =  1.51446960E+00)
    GET_2DFLD   - tidal elevation phase angle
                   (Min = -6.21520629E+00 Max =  6.26688145E+00)
    GET_2DFLD   - tidal current inclination angle
                   (Min =  0.00000000E+00 Max =  3.14159265E+00)
    GET_2DFLD   - tidal current phase angle
                   (Min =  0.00000000E+00 Max =  6.28317746E+00)
    GET_2DFLD   - maximum tidal current, ellipse major axis
                   (Min =  0.00000000E+00 Max =  1.31107979E+00)
    GET_2DFLD   - minimum tidal current, ellipse minor axis
                   (Min = -4.34316414E-01 Max =  4.28473644E-01)
    GET_2DFLD   - surface u-wind component,                  t = 13041 00:00:00
                   (Rec=0000337, Index=1, File: frc_TEST_ERA5_allflux_200509_ty.nc)
                   (Tmin=      13027.0000 Tmax=      13056.9583)
                   (Min = -1.20717460E+01 Max =  1.15309949E+01)
    GET_2DFLD   - surface v-wind component,                  t = 13041 00:00:00
                   (Rec=0000337, Index=1, File: frc_TEST_ERA5_allflux_200509_ty.nc)
                   (Tmin=      13027.0000 Tmax=      13056.9583)
                   (Min = -8.55017569E+00 Max =  6.63321643E+00)
    GET_2DFLD   - surface air pressure,                      t = 13041 00:00:00
                   (Rec=0000337, Index=1, File: frc_TEST_ERA5_allflux_200509_ty.nc)
                   (Tmin=      13027.0000 Tmax=      13056.9583)
                   (Min =  1.00601525E+03 Max =  1.02006424E+03)
    GET_2DFLD   - cloud fraction,                            t = 13041 00:00:00
                   (Rec=0006169, Index=1, File: frc_era5_cloud_a_2005.nc)
                   (Tmin=      12784.0000 Tmax=      13148.9583)
                   (Min =  1.00000000E+35 Max = -1.00000000E+35)
    GET_2DFLD   - solar shortwave radiation flux,            t = 13041 00:00:00
                   (Rec=0000337, Index=1, File: frc_TEST_ERA5_allflux_200509_ty.nc)
                   (Tmin=      13027.0000 Tmax=      13056.9583)
                   (Min =  3.55456141E-06 Max =  7.56122269E-05)
    GET_2DFLD   - surface air temperature,                   t = 13041 00:00:00
                   (Rec=0000337, Index=1, File: frc_TEST_ERA5_allflux_200509_ty.nc)
                   (Tmin=      13027.0000 Tmax=      13056.9583)
                   (Min =  1.95759433E+01 Max =  2.92698691E+01)
    GET_2DFLD   - surface air relative humidity,             t = 13041 00:00:00
                   (Rec=0000337, Index=1, File: frc_TEST_ERA5_allflux_200509_ty.nc)
                   (Tmin=      13027.0000 Tmax=      13056.9583)
                   (Min =  6.16344622E-01 Max =  9.89388249E-01)
    GET_2DFLD   - rain fall rate,                            t = 13041 00:00:00
                   (Rec=0000337, Index=1, File: frc_TEST_ERA5_allflux_200509_ty.nc)
                   (Tmin=      13027.0000 Tmax=      13056.9583)
                   (Min =  0.00000000E+00 Max =  2.44368651E-03)
    GET_2DFLD   - sea surface temperature climatology,       t = 13039 00:00:00
                   (Rec=0000009, Index=1, File: frc_clim_SST_SSS_dqdsst_2005_n30.nc)
                   (Tmin=      12799.0000 Tmax=      13129.0000)
                   (Min =  2.72368069E+01 Max =  2.94101939E+01)
    GET_2DFLD   - surface net heat flux sensitivity to SST,  t = 13039 00:00:00
                   (Rec=0000009, Index=1, File: frc_clim_SST_SSS_dqdsst_2005_n30.nc)
                   (Tmin=      12799.0000 Tmax=      13129.0000)
                   (Min = -1.18035124E-05 Max = -8.01556558E-06)
    GET_2DFLD   - sea surface salinity climatology,          t = 13039 00:00:00
                   (Rec=0000009, Index=1, File: frc_clim_SST_SSS_dqdsst_2005_n30.nc)
                   (Tmin=      12799.0000 Tmax=      13129.0000)
                   (Min =  3.23880551E+01 Max =  3.44728087E+01)
    GET_NGFLD   - free-surface western boundary condition,   t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  6.83075905E-01)
    GET_NGFLD   - free-surface eastern boundary condition,   t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  1.06184626E+00)
    GET_NGFLD   - free-surface southern boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  8.07825029E-01)
    GET_NGFLD   - free-surface northern boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  7.11838961E-01)
    GET_NGFLD   - 2D u-momentum western boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -7.70364627E-02 Max =  2.16668651E-01)
    GET_NGFLD   - 2D v-momentum western boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -1.10341370E-01 Max =  1.27293915E-01)
    GET_NGFLD   - 2D u-momentum eastern boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -1.22617400E+00 Max =  2.44689018E-01)
    GET_NGFLD   - 2D v-momentum eastern boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -2.70071328E-01 Max =  3.30601603E-01)
    GET_NGFLD   - 2D u-momentum southern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -1.20071493E-01 Max =  3.41540903E-01)
    GET_NGFLD   - 2D v-momentum southern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -6.12512715E-02 Max =  2.34142378E-01)
    GET_NGFLD   - 2D u-momentum northern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -1.86703995E-01 Max =  2.25412205E-01)
    GET_NGFLD   - 2D v-momentum northern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -3.19934785E-02 Max =  3.11969817E-01)
    GET_NGFLD   - 3D u-momentum western boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -2.74214387E-01 Max =  5.00771761E-01)
    GET_NGFLD   - 3D v-momentum western boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -2.26046845E-01 Max =  2.55784631E-01)
    GET_NGFLD   - 3D u-momentum eastern boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -1.45024538E+00 Max =  4.27845210E-01)
    GET_NGFLD   - 3D v-momentum eastern boundary condition,  t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -4.38443810E-01 Max =  1.00030279E+00)
    GET_NGFLD   - 3D u-momentum southern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -2.54013419E-01 Max =  1.01482058E+00)
    GET_NGFLD   - 3D v-momentum southern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -5.42362750E-01 Max =  3.69309217E-01)
    GET_NGFLD   - 3D u-momentum northern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -5.86790502E-01 Max =  3.79205197E-01)
    GET_NGFLD   - 3D v-momentum northern boundary condition, t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min = -1.23156771E-01 Max =  9.98629451E-01)
    GET_NGFLD   - temperature western boundary condition,    t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  2.96491337E+01)
    GET_NGFLD   - salinity western boundary condition,       t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  3.47618828E+01)
    GET_NGFLD   - temperature eastern boundary condition,    t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  3.00593662E+01)
    GET_NGFLD   - salinity eastern boundary condition,       t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  3.48850174E+01)
    GET_NGFLD   - temperature southern boundary condition,   t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  2.98282223E+01)
    GET_NGFLD   - salinity southern boundary condition,      t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  3.47229156E+01)
    GET_NGFLD   - temperature northern boundary condition,   t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  2.93253021E+01)
    GET_NGFLD   - salinity northern boundary condition,      t = 13041 00:00:00
                   (Rec=0000258, Index=2, File: cemse_d_bry_bio_20050101_1030.nc)
                   (Tmin=      12784.0000 Tmax=      13086.0000)
                   (Min =  0.00000000E+00 Max =  3.47413216E+01)
Attachments
Average daily data of the first day of swrad output by roms
Average daily data of the first day of swrad output by roms
Average daily data of the first day of swrad output by forcing_file
Average daily data of the first day of swrad output by forcing_file
Average daily data of the first day of lwrad output by roms
Average daily data of the first day of lwrad output by roms
Average daily data of the first day of lwrad output by forcing_file
Average daily data of the first day of lwrad output by forcing_file

wenpuho
Posts: 3
Joined: Thu Dec 16, 2021 9:37 pm
Location: National Central University

Re: The simulation temperature is too high, and the output swrad and lwrad of the roms are too large

#2 Unread post by wenpuho »

Nonlinear/bulk_flux.F would calculate longwave when #LONGWAVE or #LONGWAVE_OUT is defined; otherwise, you should provide longwave radiation flux (lwrad) in netcdf input.
For shortwave radiation flux, you need to provide it when define #SHORTWAVE (see Include/globaldef.h to check the condition requiring #SHORTWAVE) and there are two possible ways to provide it: 1. define #ANA_SRFLUX, roms would calculate srflx in ana_srflux subroutine, and the dependent surface variables would be according to which option is defined: #ALBEDO, #DIURNAL_SRFLUX, or nothing. Note that in this case you may or may not need the sward as input. 2. sward directly in the netcdf input without the above options.
That's why your output swrad feature was similar to the input (#DIURNAL_SRFLUX was defined, a function of lon, lat and day) and output lwrad was totally different (calculated by bulk_flux.F)

wanghaoyu
Posts: 16
Joined: Thu Sep 15, 2022 7:57 pm
Location: iocas

Re: The simulation temperature is too high, and the output swrad and lwrad of the roms are too large

#3 Unread post by wanghaoyu »

Thank you very much for your reply. Just as you said, the output swrad is three times that of the forced field input swrad, because I have defined #DIURNAL_SRFLUX, but I still have a question about what operations swrad will undergo after roms defines DIURNAL_SRFLUX. What are the characteristics of the calculated temp (what is the difference from not defining #DIURNAL_SRFLUX)

wenpuho
Posts: 3
Joined: Thu Dec 16, 2021 9:37 pm
Location: National Central University

Re: The simulation temperature is too high, and the output swrad and lwrad of the roms are too large

#4 Unread post by wenpuho »

The subroutine ana_srflx.h documents how roms calculate shortwave radiation:

Code: Select all

#if defined ALBEDO || defined DIURNAL_SRFLUX
!
!-----------------------------------------------------------------------
!  Compute shortwave radiation (degC m/s):
!
!  ALBEDO option: Compute shortwave radiation flux using the Laevastu
!                 cloud correction to the Zillman equation for cloudless
!  radiation (Parkinson and Washington 1979, JGR, 84, 311-337).  Notice
!  that flux is scaled from W/m2 to degC m/s by dividing by (rho0*Cp).
!
!  DIURNAL_SRFLUX option: Modulate shortwave radiation SRFLX (which
!                         read and interpolated elsewhere) by the local
!  diurnal cycle (a function of longitude, latitude and day-of-year).
!  This option is provided for cases where SRFLX computed by SET_DATA is
!  an average over >= 24 hours. For "diurnal_srflux" to work ana_srflux
!  must be undefined. If you want a strictly analytical diurnal cycle
!  enter it explicitly at the end of this subroutine or use the "albedo"
!  option.
!
!  For a review of shortwave radiation formulations check:
!
!    Niemela, S., P. Raisanen, and H. Savijarvi, 2001: Comparison of
!      surface radiative flux parameterizations, Part II, Shortwave
!      radiation, Atmos. Res., 58, 141-154.
!
!-----------------------------------------------------------------------
!
Namely, you have two choices when you need swrad to drive model and want to #undef DIURNAL_SRFLUX: define ALBEDO (see how roms computes srflx in ana_srflux.h) or provide swrad in netcdf forcing file; otherwise the model would report error.

The algorithm/formulation of calculating srflx between #define ALBEDO and DIURNAL_SRFLUX are two different things, the former one would compute according to the surface atmosphere variables (i.e., cloud, Hair, Tair and Pair), and the latter one reads the daily value and distributes this over an idealized diurnal cycle (see this topic:viewtopic.php?t=2930)

User avatar
wilkin
Posts: 918
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

Re: The simulation temperature is too high, and the output swrad and lwrad of the roms are too large

#5 Unread post by wilkin »

but I still have a question about what operations swrad will undergo after roms defines DIURNAL_SRFLUX. What are the characteristics of the calculated temp (what is the difference from not defining #DIURNAL_SRFLUX)
This is a good example of where going to the source code and reading the comments will answer your question.

First, how to find where in the code a CPP option is active? Try a recursive grep looking for that string

Code: Select all

grep -r DIURNAL_SRFLUX .
.
.
./Functionals/ana_srflux.h:!  DIURNAL_SRFLUX option: Modulate shortwave radiation SRFLX (which
This uncovers a comment in ./Functionals/ana_srflux.h that seems to be relevant.

Open ana_srflux.h and search for DIURNAL_SRFLUX.

You find ...

Code: Select all

!  DIURNAL_SRFLUX option: Modulate shortwave radiation SRFLX (which
!                         read and interpolated elsewhere) by the local
!  diurnal cycle (a function of longitude, latitude and day-of-year).
!  This option is provided for cases where SRFLX computed by SET_DATA is
!  an average over >= 24 hours. For "diurnal_srflux" to work ana_srflux
!  must be undefined. If you want a strictly analytical diurnal cycle
!  enter it explicitly at the end of this subroutine or use the "albedo"
!  option.
So, this tells you what the option is intended to do, and that it can only be applied to data that do not resolve the diurnal cycle. Continue browsing the file to learn more ...

Code: Select all

# elif defined DIURNAL_SRFLUX
!
!  SRFLX is reset on each time step in subroutine SET_DATA which
!  interpolates values in the forcing file to the current date.
!  This DIURNAL_SRFLUX option is provided so that SRFLX values
!  corresponding to a greater or equal daily average can be modulated
!  by the local length of day to produce a diurnal cycle with the
!  same daily average as the original data.  This approach assumes
!  the net effect of clouds is incorporated into the SRFLX data.
!
!  Normalization = (1/2*pi)*INTEGRAL{ABS(a+b*COS(t)) dt}  from 0 to 2*pi
!                = (a*ARCCOS(-a/b)+SQRT(b**2-a**2))/pi    for |a| < |b|
!
If you read on in the code (admittedly, the further comments are minimal) you will see ....

Code: Select all

            cff=(cff1*ACOS(-cff1/cff2)+SQRT(cff2*cff2-cff1*cff1))/pi
            srflx(i,j)=MAX(0.0_r8,                                      &
     &                     srflx(i,j)/cff*                              &
     &                     (cff1+cff2*COS(Hangle-lonr(i,j)*deg2rad)))
... and to understand that, you need to go back up to earlier code to figure out what cff1 and cff2 (the coefficients "a" and "b" in the formula) are.

Code: Select all

!  Local daylight, GMT time zone, is a function of the declination
!  (Dangle) and hour angle adjusted for the local meridian
!  (Hangle-lonr(i,j)*deg2rad).
!
          LatRad=latr(i,j)*deg2rad
          cff1=SIN(LatRad)*SIN(Dangle)
          cff2=COS(LatRad)*COS(Dangle)
so now you can probably figure out that the integral limits "a" and "b" in the normalization refer to the local times of sunrise and sunset (there are special cases in the code for 24-hour polar day and polar night.

The code uses variable Hangle that was introduced for other purposes, so search further to see that

Code: Select all

!  Compute hour angle (radians).
!
      Hangle=(12.0_r8-hour)*pi/12.0_r8
So, if you don't define DIURNAL_SRFLUX you get the default behavior of ROMS, which is to interpolate in time the values that were read from your input file at whatever times you set them to have.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

wanghaoyu
Posts: 16
Joined: Thu Sep 15, 2022 7:57 pm
Location: iocas

Re: The simulation temperature is too high, and the output swrad and lwrad of the roms are too large

#6 Unread post by wanghaoyu »

Thank you very much wilkin, your reply was very detailed and completely solved my problem. :lol:

Post Reply