Discrepancies Between My Model Results and Official HYCOM Output for 2003 Run

55 views
Skip to first unread message

zhong minglei

unread,
Oct 9, 2025, 6:40:58 AM (8 days ago) Oct 9
to HYCOM.org Forum
Dear Alan,
I hope this email finds you well. I am writing to seek your advice regarding significant discrepancies I am encountering between my regional HYCOM model results and the official HYCOM data from GLBb0.08 expt_53.X.
Summary of My Setup:
I have configured a nested regional model for the year 2003 with the following specifications:
  • Nesting Data: GLBb0.08 expt_53.X global reanalysis
  • Restart File: Also from the official GLBb0.08 expt_53.X dataset
  • Atmospheric Forcing: CFSR reanalysis data
  • Model Configuration: Nearly identical to the official HYCOM setup (I have tried to replicate the standard configuration as closely as possible)
The Problems:
Despite using official boundary conditions, restart files, and similar forcing data, I am encountering two major issues:
1. Cross-sectional Velocity Discrepancies:
When I compare meridional cross-sections of u and v velocities at the same longitude between my model output and the parent GLBb0.08 data, I observe substantial differences in the velocity structure. The differences are much larger than I would expect given that I am nesting from the same dataset.
2. Spurious Deep Layer Velocities:
More concerning, when I plot horizontal velocity vectors at deep levels (e.g., 3000m depth), my model output shows anomalously large velocity spikes at isolated grid points. These velocity arrows are significantly longer than surrounding points, creating an unrealistic patchy pattern. This issue does not appear when I plot the same depth level using the official HYCOM data, which shows smooth, physically consistent flow fields.
These spurious velocities suggest potential numerical instabilities or issues with:
  • Pressure gradient errors near steep topography
  • Improper handling of the hybrid coordinate system at depth
  • Boundary condition artifacts propagating into the interior
  • Possible issues with the barotropic-baroclinic mode splitting
My Hypothesis:
I suspect the issues may be related to:
  • Boundary relaxation settings not being appropriately configured
  • The method of applying relaxation (e.g., normal vs. tangential components, barotropic vs. baroclinic treatment) may differ from the standard approach
  • Volume transport conservation issues at the boundaries
  • The port boundary configuration may not be properly set up
  • Possible inconsistencies in how deep layer velocities are constrained or relaxed at boundaries
My Port Configuration:
I have defined 7 boundary port sections as follows:
7      'nports' = number of boundary port sections 1      'kdport' = port orientation (1=N, 2=S, 3=E, 4=W) 349    'ifport' = first i-index 371    'ilport' = last i-index 501    'jfport' = first j-index 501    'jlport' = last j-index 1      'kdport' = port orientation (1=N, 2=S, 3=E, 4=W) 374    'ifport' = first i-index 377    'ilport' = last i-index 501    'jfport' = first j-index 501    'jlport' = last j-index 1      'kdport' = port orientation (1=N, 2=S, 3=E, 4=W) 382    'ifport' = first i-index 500    'ilport' = last i-index 501    'jfport' = first j-index 501    'jlport' = last j-index 4      'kdport' = port orientation (1=N, 2=S, 3=E, 4=W) 1      'ifport' = first i-index 1      'ilport' = last i-index 261    'jfport' = first j-index 374    'jlport' = last j-index 2      'kdport' = port orientation (1=N, 2=S, 3=E, 4=W) 1      'ifport' = first i-index 369    'ilport' = last i-index 1      'jfport' = first j-index 1      'jlport' = last j-index 4      'kdport' = port orientation (1=N, 2=S, 3=E, 4=W) 1      'ifport' = first i-index 1      'ilport' = last i-index 1      'jfport' = first j-index 257    'jlport' = last j-index 3      'kdport' = port orientation (1=N, 2=S, 3=E, 4=W) 501    'ifport' = first i-index 501    'ilport' = last i-index 189    'jfport' = first j-index 500    'jlport' = last j-index
Could you please review my configuration and provide guidance on what might be causing these discrepancies? 
I have attached the following files for your reference.
I would greatly appreciate any insights you could provide. If you need additional information about my setup or results (such as comparison plots showing the spurious velocities, specific configuration parameters, or model log files), please let me know and I will be happy to provide it.
Thank you very much for your time and assistance.
Best regards,
Minglei Zhong
do_blkdat.ksh
fort.dat
regional.depth.a
regional.depth.b
regional.grid.a
regional.grid.b

Alan Wallcraft

unread,
Oct 12, 2025, 3:50:43 PM (5 days ago) Oct 12
to HYCOM.org Forum, zhong minglei
Your setup looks sound:

SCSb0.08_depth.jpg

The region you showed is:

SCSb0.08_depth_zoom.jpg

So some of the vectors you are showing at 3000 m may be from very thin layers at the bottom.  This should not be a problem when using snapshot archives (archv files) but mean archives (archm files) can exhibit large velocities in thin near-bottom layers due to a mismatch between mean layer thickness (on the p-grid) and mean velocity (on the u and v grids).  If you are using the HYCOM-tools "3z" program to extract this field, it has the blkdat variable "bot   " to mask these:

   0    'jdmp  ' = j-extent of plotted subregion (<=jdm; 0 implies jdm)
   3    'inbot ' = read in bot and/or zbot (1=bot,2=zbot,3=bot&zbot)
   0.11 'bot   ' = ignore layers within bot of the bottom
   0.0  'zbot  ' = depth above bottom for bottom value (none for zbot<=0.0)
   3    'itype ' = interpolation type (0=sample,1=linear,2=parabolic, 3=pchip)

On the question of difference to the global Reanalysis: since you are not performing data assimilation I would expect your simulation to diverge from the original over time, with noticeable differences in SSH after 30 days.  If you see large differences after 5 days (say) then there might be something wrong.

You should use the standard set of MACROS in Make.csh:

# Miscellaneous CPP flags (-DSTOKES -DOCEANS2 etc...)
# -DSTOKES  : Stokes drift
# -DOCEANS2 : master and slave HYCOM in same executable
# -DMOMTUM_CFL     : include an explicit CFL limiter
# -DMOMTUM4_CFL    : include an explicit CFL limiter
# -DRDNEST_MASK    : mask velocity outliers
# -DLATBDT_NPLINE3 : update pline every 3 time steps
# -DMASSLESS_1MM   : lowest substantial mass-containing layer > 1mm thick
#setenv OCN_MISC ""
#setenv OCN_MISC "-DMASSLESS_1MM"
setenv OCN_MISC "-DMASSLESS_1MM -DRDNEST_MASK -DLATBDT_NPLINE3"

Alan.
Reply all
Reply to author
Forward
0 new messages