As a prelude to running the future climate downscalings (current plan is mid-term and long-term downscaling for a high emissions pathway and a long-term downscaling for a medium emissions pathway) I'm running some test cases using the current MOANA "backbone" historical configuration. One of these involves releasing particles in ROMS to get a "full" temporal resolution "ground truth" before conducting the same releases in an offline Lagrangian tracking package (probably OpenDrift, maybe PARCELS) with coarser temporal resolution in order to scope out the acceptable output time interval that captures all the key dynamics while not producing too excessively big history files.
The problem is, when I add floats to the (setting MY_CPP_FLAGS="${MY_CPP_FLAGS} -DFLOATS" and adding # define FLOATS to the relevant .h file per the test example included in ROMS) ROMS runs but the resulting *flt*.nc file contains NaNs in all lat, lon, depth etc. variables. The first obvious possibility is I've released floats into the terrain (as the first test per if float are working I'm using a single release location), but I've very specifically chosen a location well offshore and confined my release to the upper 20 m. The second possibility is I've misunderstood something about how release locations and times are specified, and got something wrong in the floats.in file (included in the code block below). The third option is there's something out of whack with my configuration and need to modify the .h file further (that said I'd have expected a crash instead of just NaN values in outputs...).
Note that I'm using ROMS/TOMS v3.9 (SVN Rev 1049) on the NZ NESI HPC system (Linux, x86_64) with a 395x465x50 grid split over 100 nodes.
Code: Select all
! Switch to control the computation of floats trajectories within nested
! and/or multiple connected grids, [1:Ngrids].
!
Lfloats == T
! Switch to control the printing of floats positions to standard output
! file, [1:Ngrids].
!
Fprint == T
! Flag indicating re-start from previous solution. If FRREC = 0, a new
! NetCDF output file is created.
FRREC == 0
! Number of floats to release in each nested grid. These values are
! essential because the FLOATS structure in "mod_floats" is dynamically
! allocated using these values, [1:Ngrids].
NFLOATS == 240
! Initial floats locations for all grids:
!
! G Nested grid number
! C Initial horizontal coordinate type (0: grid units, 1: spherical)
! T Float trajectory type (1: Lagrangian, 2: isobaric, 3: Geopotential)
! N Number floats to be released at (Fx0,Fy0,Fz0)
! Ft0 Float release time (days) after model initialization
! Fx0 Initial float X-location (grid units or longitude)
! Fy0 Initial float Y-location (grid units or latitude)
! Fz0 Initial float Z-location (grid units or depth)
! Fdt Float cluster release time interval (days)
! Fdx Float cluster X-distribution parameter
! Fdy Float cluster Y-distribution parameter
! Fdz Float cluster Z-distribution parameter
POS = G, C, T, N, Ft0, Fx0, Fy0, Fz0, Fdt, Fdx, Fdy, Fdz
1 1 1 240 0 175.0 -45.0 -20.00 0 0 0 0