I feel like I must be doing something fundamentally wrong in my application of ROMS to the northern California current at very high resolution. Since I'm pretty much self-taught from the forums, this does not come as a huge surprise to me, but it's definitely getting to be time to look for help.
I use ROMS/TOMS version 3.6, downloaded from the myroms.org SVN repository.
I generated a reasonable 10 km horizontal resolution run for the US west coast that I'm using to provide (mostly) Rad/Nud boundary conditions for my vastly zoomed in 1 km horizontal resolution run, interpolated with the very nice MATLAB scripts provided with the ROMS package these days. My cppdefs are otherwise very similar to the 10 km run (which was forced with SODA boundary conditions); U3H/C4V TS advection, standard UV_ADV (which I believe currently defaults to 3rd order horizontal upwinding, 4th order centered in the vertical), LMD vertical mixing, Chapman boundary conditions for zeta and Flather for the mixing TKE. Both runs are surface forced with NARR data (temp, pressure, humidity, precip, winds, radiation, clouds) as put through the ROMS BULK_FLUXES formulation. NARR has its share of problems in my region of interest (too hot in the summer, too cold in the winter, winds are often iffy onshore), but nothing so drastic as to make my runs too terrible.
But at 1 km, I have some serious weirdness afoot that didn't appear in the 10 km version. The ocean is getting hot -- offshore, some 4 C warmer in the 1 km version than its 10 km boundaries, in summer -- and, after a year of spinup, I have what are effectively faux upwelling conditions (cold, saline onshore water) all year round, as my salt and temp gradients with depth rapidly lose their sensitivity to the bathymetry. My bottom ROMS layer is quite different than initialization after a year -- onshore is much colder and more saline, leading to surface conditions seemingly independent of the winds/upwelling/downwelling conditions. And while I'd expect some shifting of the ocean floor conditions in spinup, this seems a little excessive (and leads to these unrealistic surface conditions).
My Courant numbers start a bit high, but tend to quickly settle down to e-3 to e-4 horizontally and 0.1-0.2 vertically, and my grid is right on the edge of acceptable bathymetric smoothness and bottom layer depths; lately I've been running at 30s timesteps in the name of robust numerical stability at high resolution.
My surface heat retention issue looks suspiciously similar to some graphics Hernan Arango presented at last year's workshop in Rio (which I proceeded to access online), where BULK_FLUXES and Rad/Nud are combined to have heat retention and odd little zeta vortices floating around. Unfortunately, without the audio for that presentation, I'm not quite sure what the recommendation for BULK_FLUXES+Rad/Nud is. I'm inclined to infer that the recommendation is -- DON'T DO IT!! Assuming that's the case, what are people using instead these days? Should I just impose surface heat fluxes? NARR has a surface heat flux estimate, albiet without an explicit dQ/dSST term (though I could estimate dq/dt from their Q timeseries, and use the 10 km SST, or estimate with NARR's 2m air temp), which seems important from when my ROMS sea surface drifts away from NARR (which it inevitably will, I imagine). I could turn to CORE2, though its one degree horizontal resolution is awfully low for my application.
It's possible that the onshore 'fake upwelling' is connected to my surface/boundaries issue, but I have to wonder if there's something more fundamental going on with my choice and parameterization of my vertical mixing. I just used what I thought were typical, suggested parameters for LMD. I'm putting the interesting parts of the top of a typical logfile below (the full version is attached); if anything jumps out at a more experienced user as desperately wrong, I'd be very grateful for the insight. It would be wonderful if I was just being very foolish in an obvious way, with some combination of parameters or .h selections, and I would gladly accept embarrassment if I could fix the issue. I'm also open to the possibility that I need higher order (eg, 5th) advection/diffusion schemes to do a better job of capturing turbulent motion at 1 km res...
Thanks so much for your time.
Code: Select all
Model Input Parameters: ROMS/TOMS version 3.6
Wednesday - May 15, 2013 - 1:54:08 PM
-----------------------------------------------------------------------------
expandedroms
Operating system : Linux
CPU/hardware : x86_64
Compiler system : ifort
Compiler command : /global/software/centos-5.x86_64/modules/openmpi/1.2.8-
intel/bin/mpif90
Compiler flags : -heap-arrays -fp-model precise -ip -O3 -free -free -free
Input Script : expandedroms.in
SVN Root URL : https://www.myroms.org/svn/src/trunk
SVN Revision : 605:631M
Local Root : /global/home/users/lolhsson
Header Dir : /global/home/users/lolhsson/Projects/10kmrestest
Header file : expandedroms.h
Analytical Dir: /global/home/users/lolhsson/Projects/10kmrestest
Resolution, Grid 01: 0548x0498x030, Parallel Nodes: 64, Tiling: 008x008
Physical Parameters, Grid: 01
=============================
97822080 ntimes Number of timesteps for 3-D equations.
30.000 dt Timestep size (s) for 3-D equations.
30 ndtfast Number of timesteps for 2-D equations between
each 3D timestep.
1 ERstr Starting ensemble/perturbation run number.
1 ERend Ending ensemble/perturbation run number.
0 nrrec Number of restart records to read from disk.
T LcycleRST Switch to recycle time-records in restart file.
2880 nRST Number of timesteps between the writing of data
into restart fields.
1 ninfo Number of timesteps between print of information
to standard output.
T ldefout Switch to create a new output NetCDF file(s).
32607400 nHIS Number of timesteps between the writing fields
into history file.
1 ntsAVG Starting timestep for the accumulation of output
time-averaged data.
2880 nAVG Number of timesteps between the writing of
time-averaged data into averages file.
288000 ndefAVG Number of timesteps between creation of new
time-averaged file.
0.0000E+00 nl_tnu2(01) NLM Horizontal, harmonic mixing coefficient
(m2/s) for tracer 01: temp
0.0000E+00 nl_tnu2(02) NLM Horizontal, harmonic mixing coefficient
(m2/s) for tracer 02: salt
5.0000E+00 nl_visc2 NLM Horizontal, harmonic mixing coefficient
(m2/s) for momentum.
1.0000E-06 Akt_bak(01) Background vertical mixing coefficient (m2/s)
for tracer 01: temp
1.0000E-06 Akt_bak(02) Background vertical mixing coefficient (m2/s)
for tracer 02: salt
1.0000E-05 Akv_bak Background vertical mixing coefficient (m2/s)
for momentum.
3.0000E-04 rdrg Linear bottom drag coefficient (m/s).
3.0000E-03 rdrg2 Quadratic bottom drag coefficient.
2.0000E-02 Zob Bottom roughness (m).
2.0000E+00 blk_ZQ Height (m) of surface air humidity measurement.
2.0000E+00 blk_ZT Height (m) of surface air temperature measurement.
1.0000E+01 blk_ZW Height (m) of surface winds measurement.
1 lmd_Jwt Jerlov water type.
2 Vtransform S-coordinate transformation equation.
4 Vstretching S-coordinate stretching function.
7.0000E+00 theta_s S-coordinate surface control parameter.
1.0000E-01 theta_b S-coordinate bottom control parameter.
250.000 Tcline S-coordinate surface/bottom layer width (m) used
in vertical coordinate stretching.
1025.000 rho0 Mean density (kg/m3) for Boussinesq approximation.
0.000 dstart Time-stamp assigned to model initialization (days).
0.00 time_ref Reference time for units attribute (yyyymmdd.dd)
3.6000E+02 Tnudg(01) Nudging/relaxation time scale (days)
for tracer 01: temp
3.6000E+02 Tnudg(02) Nudging/relaxation time scale (days)
for tracer 02: salt
0.0000E+00 Znudg Nudging/relaxation time scale (days)
for free-surface.
3.6000E+02 M2nudg Nudging/relaxation time scale (days)
for 2D momentum.
3.6000E+02 M3nudg Nudging/relaxation time scale (days)
for 3D momentum.
1.2000E+02 obcfac Factor between passive and active
open boundary conditions.
T VolCons(1) NLM western edge boundary volume conservation.
T VolCons(2) NLM southern edge boundary volume conservation.
F VolCons(3) NLM eastern edge boundary volume conservation.
T VolCons(4) NLM northern edge boundary volume conservation.
14.000 T0 Background potential temperature (C) constant.
35.000 S0 Background salinity (PSU) constant.
1027.000 R0 Background density (kg/m3) used in linear Equation
of State.
1.7000E-04 Tcoef Thermal expansion coefficient (1/Celsius).
0.0000E+00 Scoef Saline contraction coefficient (1/PSU).
1.000 gamma2 Slipperiness variable: free-slip (1.0) or
no-slip (-1.0).
T Aout(idFsur) Write out averaged free-surface.
T Aout(idUbar) Write out averaged 2D U-momentum component.
T Aout(idVbar) Write out averaged 2D V-momentum component.
T Aout(idUvel) Write out averaged 3D U-momentum component.
T Aout(idVvel) Write out averaged 3D V-momentum component.
T Aout(idWvel) Write out averaged W-momentum component.
T Aout(idOvel) Write out averaged omega vertical velocity.
T Aout(idTvar) Write out averaged tracer 01: temp
T Aout(idTvar) Write out averaged tracer 02: salt
T Aout(idPair) Write out averaged surface air pressure.
T Aout(idUair) Write out averaged surface U-wind component.
T Aout(idVair) Write out averaged surface V-wind component.
T Aout(idTsur) Write out averaged surface net heat flux.
T Aout(idTsur) Write out averaged surface net salt flux.
T Aout(idSrad) Write out averaged shortwave radiation flux.
T Aout(idLrad) Write out averaged longwave radiation flux.
T Aout(idLhea) Write out averaged latent heat flux.
T Aout(idShea) Write out averaged sensible heat flux.
T Aout(idevap) Write out averaged evaporation rate.
T Aout(idrain) Write out averaged rain rate.
Output/Input Files:
Output Restart File:
/global/scratch/lolhsson/newnested10to1/ocean_rst.nc
Output History File:
/global/scratch/lolhsson/newnested10to1/ocean_his.nc
Prefix for Averages Files: /global/scratch/lolhsson/newnested10to1/ocean_avg
Input Grid File:
/clusterfs/hadley/scratch/lolhsson/supersmoothroms1kmres123pt5to129W3944N.nc
Input Nonlinear Initial File:
/clusterfs/hadley/scratch/lolhsson/supersmoothzoomout1kmini.nc
Input Forcing File 01:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/Pair.OREEG.19852010.nc
Input Forcing File 02:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/Tair.OREEG.19852010.nc
Input Forcing File 03:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/Vair.OREEG.19852010.nc
Input Forcing File 04:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/rain.OREEG.19852010.nc
Input Forcing File 05:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/Qair.OREEG.19852010.nc
Input Forcing File 06:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/Uair.OREEG.19852010.nc
Input Forcing File 07:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/cloud.OREEG.19852010.nc
Input Forcing File 08:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/swrad.OREEG.19852010.nc
Input Forcing File 09:
/clusterfs/hadley/scratch/lolhsson/expandedgridforcing/lwrad_down.OREEG.19852010.nc
Input Boundary File:
/clusterfs/hadley/scratch/lolhsson/supersmoothzoomout1kmbry.nc
Lateral Boundary Conditions: NLM
============================
Variable Grid West Edge South Edge East Edge North Edge
--------- ---- ---------- ---------- ---------- ----------
zeta 1 Chapman Chapman Closed Chapman
ubar 1 Rad + Nud Rad + Nud Closed Rad + Nud
vbar 1 Rad + Nud Rad + Nud Closed Rad + Nud
u 1 Rad + Nud Rad + Nud Closed Rad + Nud
v 1 Rad + Nud Rad + Nud Closed Rad + Nud
temp 1 Rad + Nud Rad + Nud Closed Rad + Nud
salt 1 Rad + Nud Rad + Nud Closed Rad + Nud
Activated C-preprocessing Options:
expandedroms expandedroms
ATM_PRESS Impose atmospheric pressure onto sea surface.
ANA_BSFLUX Analytical kinematic bottom salinity flux.
ANA_BTFLUX Analytical kinematic bottom temperature flux.
ANA_FSOBC Analytical free-surface boundary conditions.
ANA_M2OBC Analytical 2D momentum boundary conditions.
ASSUMED_SHAPE Using assumed-shape arrays.
AVERAGES Writing out time-averaged nonlinear model fields.
BULK_FLUXES Surface bulk fluxes parameterization.
DJ_GRADPS Parabolic Splines density Jacobian (Shchepetkin, 2002).
DOUBLE_PRECISION Double precision arithmetic.
EMINUSP Compute Salt Flux using E-P.
LMD_CONVEC LMD convective mixing due to shear instability.
LMD_MIXING Large/McWilliams/Doney interior mixing.
LMD_NONLOCAL LMD convective nonlocal transport.
LMD_RIMIX LMD diffusivity due to shear instability.
LMD_SKPP KPP surface boundary layer mixing.
LONGWAVE_OUT Compute outgoing longwave radiation internally.
MASKING Land/Sea masking.
MIX_GEO_TS Mixing of tracers along geopotential surfaces.
MIX_GEO_UV Mixing of momentum along geopotential surfaces.
MPI MPI distributed-memory configuration.
NONLINEAR Nonlinear Model.
!NONLIN_EOS Linear Equation of State for seawater.
OUT_DOUBLE Double precision output fields in NetCDF files.
PERFECT_RESTART Processing perfect restart variables.
POWER_LAW Power-law shape time-averaging barotropic filter.
PROFILE Time profiling activated .
!RST_SINGLE Double precision fields in restart NetCDF file.
SALINITY Using salinity.
SOLAR_SOURCE Solar Radiation Source Term.
SOLVE3D Solving 3D Primitive Equations.
SPLINES Conservative parabolic spline reconstruction.
TS_U3HADVECTION Third-order upstream horizontal advection of tracers.
TS_C4VADVECTION Fourth-order centered vertical 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_LDRAG Linear bottom stress.
UV_VIS2 Harmonic mixing of momentum.
VAR_RHO_2D Variable density barotropic mode.
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
Minimum X-grid spacing, DXmin = 7.99934148E-01 km
Maximum X-grid spacing, DXmax = 8.64083464E-01 km
Minimum Y-grid spacing, DYmin = 1.06893682E+00 km
Maximum Y-grid spacing, DYmax = 1.15465833E+00 km
Minimum Z-grid spacing, DZmin = 3.20533014E-01 m
Maximum Z-grid spacing, DZmax = 8.84996407E+02 m
Minimum barotropic Courant Number = 1.54598336E-02
Maximum barotropic Courant Number = 3.12695104E-01
Maximum Coriolis Courant Number = 3.03817176E-03
Maximum grid stiffness ratios: rx0 = 2.807708E-01 (Beckmann and Haidvogel)
rx1 = 1.282151E+01 (Haney)
Initial basin volumes: TotVolume = 6.2618283263E+14 m3
MinVolume = 2.7416988319E+05 m3
MaxVolume = 8.6299629887E+08 m3
Max/Min = 3.1476699367E+03