Hmm...
I want to setup climatology and nudging for 3d momemtunm and tracers (temp, salt, dye_01) only for the parent grids of my nesting runs.
So
if I only need nudging for the parent grids, the setup in ocean.in for climatology and nudging is the following?
Code: Select all
LsshCLM == F F ! sea-surface height
Lm2CLM == F F ! 2D momentum
Lm3CLM == T F ! 3D momentum
LtracerCLM == T T T F F F ! temperature, salinity, inert
LnudgeM2CLM == F F ! 2D momentum
LnudgeM3CLM == T F ! 3D momentum
LnudgeTCLM == T T T F F F ! temperature, salinity, inert
If so, I do not have to include climatology file and nudging coefficient file for the child grids?
Also, I found something strange. As suggested, I created surface fluxes file for lon, lat grids which are the same as the grid dimension of the forcing file (~32 km) and are larger than the parent and child domain.
I did not get the error when ROMS reads the file; however, The min and max values of all surface forcing variables on the log is 1.0e+37 (see below) as well as child grid climatology file. I guess ROMS did not read surface flux data and climatology data of the child grids properly. That may be the reason why the model blew up.
Code: Select all
1257 GET_2DFLD - surface u-wind component, 2013-01-01 00:00:00.00
1258 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1259 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1260 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1261 GET_2DFLD - surface v-wind component, 2013-01-01 00:00:00.00
1262 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1263 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1264 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1265 GET_2DFLD - surface air pressure, 2013-01-01 00:00:00.00
1266 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1267 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1268 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1269 GET_2DFLD - surface air temperature, 2013-01-01 00:00:00.00
1270 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1271 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1272 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1273 GET_2DFLD - surface air relative humidity, 2013-01-01 00:00:00.00
1274 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1275 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1276 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1277 GET_2DFLD - cloud fraction, 2013-01-01 00:00:00.00
1278 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1279 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1280 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1281 GET_2DFLD - solar shortwave radiation flux, 2013-01-01 00:00:00.00
1282 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1283 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1284 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1285 GET_2DFLD - rain fall rate, 2013-01-01 00:00:00.00
1286 (Grid=01, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1287 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1288 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1417 GET_2DFLD - surface u-wind component, 2013-01-01 00:00:00.00
1418 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1419 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1420 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1421 GET_2DFLD - surface v-wind component, 2013-01-01 00:00:00.00
1422 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1423 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1424 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1425 GET_2DFLD - surface air pressure, 2013-01-01 00:00:00.00
1426 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1427 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1428 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1429 GET_2DFLD - surface air temperature, 2013-01-01 00:00:00.00
1430 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1431 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1432 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1433 GET_2DFLD - surface air relative humidity, 2013-01-01 00:00:00.00
1434 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1435 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1436 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1437 GET_2DFLD - cloud fraction, 2013-01-01 00:00:00.00
1438 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1439 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1440 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1441 GET_2DFLD - solar shortwave radiation flux, 2013-01-01 00:00:00.00
1442 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1443 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1444 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1445 GET_2DFLD - rain fall rate, 2013-01-01 00:00:00.00
1446 (Grid=02, Rec=0000001, Index=1, File: nwgom_frc_2013.nc)
1447 (Tmin= 15706.0000 Tmax= 16101.9583) t = 15706.0000
1448 (Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
1357 GET_3DFLD - u-momentum component climatology, 2012-12-31 12:00:00.00
1358 (Grid=01, Rec=0000001, Index=1, File: nwgom.clm.2013.nc)
1359 (Tmin= 15705.5000 Tmax= 16071.5000) t = 15705.5000
1360 (Min = -4.98561160E-01 Max = 3.69598288E-01)
1361 GET_3DFLD - v-momentum component climatology, 2012-12-31 12:00:00.00
1362 (Grid=01, Rec=0000001, Index=1, File: nwgom.clm.2013.nc)
1363 (Tmin= 15705.5000 Tmax= 16071.5000) t = 15705.5000
1364 (Min = -5.84828497E-01 Max = 6.65681484E-01)
1365 GET_3DFLD - potential temperature climatology, 2012-12-31 12:00:00.00
1366 (Grid=01, Rec=0000001, Index=1, File: nwgom.clm.2013.nc)
1367 (Tmin= 15705.5000 Tmax= 16071.5000) t = 15705.5000
1368 (Min = 3.85741550E+00 Max = 2.52482539E+01)
1369 GET_3DFLD - salinity climatology, 2012-12-31 12:00:00.00
1370 (Grid=01, Rec=0000001, Index=1, File: nwgom.clm.2013.nc)
1371 (Tmin= 15705.5000 Tmax= 16071.5000) t = 15705.5000
1372 (Min = 7.91513724E+00 Max = 3.67398640E+01)
1373 GET_3DFLD - dye concentration, type 01 climatology, 2012-12-31 12:00:00.00
1374 (Grid=01, Rec=0000001, Index=1, File: nwgom.clm.2013.nc)
1375 (Tmin= 15705.5000 Tmax= 16071.5000) t = 15705.5000
1376 (Min = 2.08549218E+02 Max = 3.25602617E+02)
1377 GET_3DFLD - dye concentration, type 02 climatology, 2012-12-31 12:00:00.00
1378 (Grid=01, Rec=0000001, Index=1, File: nwgom.clm.2013.nc)
1379 (Tmin= 15705.5000 Tmax= 16071.5000) t = 15705.5000
1380 (Min = 0.00000000E+00 Max = 0.00000000E+00)
1381 GET_3DFLD - dye concentration, type 03 climatology, 2012-12-31 12:00:00.00
1382 (Grid=01, Rec=0000001, Index=1, File: nwgom.clm.2013.nc)
1383 (Tmin= 15705.5000 Tmax= 16071.5000) t = 15705.5000
1384 (Min = 0.00000000E+00 Max = 0.00000000E+00)
1449 GET_3DFLD - u-momentum component climatology, 2013-01-01 00:00:00.00
1450 (Grid=02, Rec=0000001, Index=1, File: nwgom.clm.2013_child.nc)
1451 (Tmin= 15706.0000 Tmax= 15737.0000) t = 15706.0000
1452 (Min = 1.00000000E+37 Max = -1.00000000E+37)
1453 GET_3DFLD - v-momentum component climatology, 2013-01-01 00:00:00.00
1454 (Grid=02, Rec=0000001, Index=1, File: nwgom.clm.2013_child.nc)
1455 (Tmin= 15706.0000 Tmax= 15737.0000) t = 15706.0000
1456 (Min = 1.00000000E+37 Max = -1.00000000E+37)
1457 GET_3DFLD - potential temperature climatology, 2013-01-01 00:00:00.00
1458 (Grid=02, Rec=0000001, Index=1, File: nwgom.clm.2013_child.nc)
1459 (Tmin= 15706.0000 Tmax= 15737.0000) t = 15706.0000
1460 (Min = 1.00000000E+37 Max = -1.00000000E+37)
1461 GET_3DFLD - salinity climatology, 2013-01-01 00:00:00.00
1462 (Grid=02, Rec=0000001, Index=1, File: nwgom.clm.2013_child.nc)
1463 (Tmin= 15706.0000 Tmax= 15737.0000) t = 15706.0000
1464 (Min = 1.00000000E+37 Max = -1.00000000E+37)
1465 GET_3DFLD - dye concentration, type 01 climatology, 2013-01-01 00:00:00.00
1466 (Grid=02, Rec=0000001, Index=1, File: nwgom.clm.2013_child.nc)
1467 (Tmin= 15706.0000 Tmax= 15737.0000) t = 15706.0000
1468 (Min = 1.00000000E+37 Max = -1.00000000E+37)
1469 GET_3DFLD - dye concentration, type 02 climatology, 2013-01-01 00:00:00.00
1470 (Grid=02, Rec=0000001, Index=1, File: nwgom.clm.2013_child.nc)
1471 (Tmin= 15706.0000 Tmax= 15737.0000) t = 15706.0000
1472 (Min = 1.00000000E+37 Max = -1.00000000E+37)
1473 GET_3DFLD - dye concentration, type 03 climatology, 2013-01-01 00:00:00.00
1474 (Grid=02, Rec=0000001, Index=1, File: nwgom.clm.2013_child.nc)
1475 (Tmin= 15706.0000 Tmax= 15737.0000) t = 15706.0000
1476 (Min = 1.00000000E+37 Max = -1.00000000E+37)
However, I created the surface flux file based on wikiROMS FAQ.
ROMS can also read fields from NetCDF files, also stresses or winds, depending on the state of BULK_FLUXES. These can be provided as:
Point measurements, in which ROMS will rotate to the correct directions from East (u) and North (v).
Gridded fields on the ROMS grid, in which case the directions have to match the directions on your grid.
Gridded fields on a larger, usually coarser grid. These are in East and North, with ROMS doing the rotation. ROMS picks up its cue on whether to interpolate+rotate or not based on the grid dimensions of these fields. If the dimensions exactly match that of your own grid, ROMS will assume that it is on your grid. If you plan on using global fields of dimension 180x90, say, don't build a grid with those dimensions. The cdl for a working example is shown here:
netcdf rain.1948-2006 {
dimensions:
rain_time = UNLIMITED ; // (708 currently)
lat = 94 ;
lon = 192 ;
variables:
float rain(rain_time, lat, lon) ;
rain:_FillValue = -1.e+34f ;
rain:units = "Kg_meter-2_sec-1\000Kg_meter-2_sec-1" ;
rain:long_name = "rain fall rate" ;
rain:coordinates = "lon lat" ;
double lat(lat) ;
lat:units = "degrees_north" ;
lat:point_spacing = "uneven" ;
lat:axis = "Y" ;
double lon(lon) ;
lon:units = "degrees_east" ;
lon:modulo = 360. ;
lon:point_spacing = "even" ;
lon:axis = "X" ;
float SNOW(rain_time, lat, lon) ;
SNOW:missing_value = -1.e+34f ;
SNOW:_FillValue = -1.e+34f ;
SNOW:long_name = "SNOW_FRAC[D=2,GXYT=PRC_MOD@ASN]*PRC_MOD" ;
SNOW:long_name_mod = "L=1:12" ;
double rain_time(rain_time) ;
rain_time:units = "days since 1900-01-01 00:00:00" ;
rain_time:axis = "T" ;
rain_time:bounds = "TIME_bnds" ;
rain_time:time_origin = "1-JAN-1948" ;
rain_time:calendar = "LEAP" ;
The meta data of the surface flux file I created is below.
Code: Select all
netcdf nwgom_frc_2013 {
dimensions:
time = UNLIMITED ; // (9504 currently)
lon = 73 ;
lat = 53 ;
variables:
double time(time) ;
time:long_name = "bulk formulation atmospheric forcing time" ;
time:units = "days since 1970-01-01 00:00:00" ;
double lon(lon) ;
lon:long_name = "Longitude" ;
lon:units = "degrees_east" ;
lon:axis = "X" ;
double lat(lat) ;
lat:long_name = "Latitude" ;
lat:units = "degrees_north" ;
lat:axis = "Y" ;
double Tair(time, lat, lon) ;
Tair:long_name = "surface air temperature" ;
Tair:units = "Celsius" ;
Tair:coordinates = "lon lat" ;
Tair:time = "time" ;
double Pair(time, lat, lon) ;
Pair:long_name = "surface pressure" ;
Pair:units = "millibar" ;
Pair:coordinates = "lon lat" ;
Pair:time = "time" ;
double Qair(time, lat, lon) ;
Qair:long_name = "relative humidity" ;
Qair:units = "percentage" ;
Qair:coordinates = "lon lat" ;
Qair:time = "time" ;
double rain(time, lat, lon) ;
rain:long_name = "precipitation rate" ;
rain:units = "kg m-2 s-1" ;
rain:coordinates = "lon lat" ;
rain:time = "time" ;
double swflux(time, lat, lon) ;
swflux:long_name = "net surface freshwater flux" ;
swflux:units = "cm day-1" ;
swflux:coordinates = "lon lat" ;
swflux:time = "time" ;
swflux:positive_value = "downward flux, freshening" ;
swflux:negative_value = "upward flux, salting" ;
double lwrad(time, lat, lon) ;
lwrad:long_name = "net longwave radiation flux" ;
lwrad:units = "Watts metre-2" ;
lwrad:coordinates = "lon lat" ;
lwrad:time = "time" ;
lwrad:positive_value = "downward flux, heating" ;
lwrad:negative_value = "upward flux, cooling" ;
double lwrad_down(time, lat, lon) ;
lwrad_down:long_name = "downward longwave radiation" ;
lwrad_down:units = "Watts metre-2" ;
lwrad_down:coordinates = "lon lat" ;
lwrad_down:time = "time" ;
double swrad(time, lat, lon) ;
swrad:long_name = "shortwave radiation" ;
swrad:units = "Watts metre-2" ;
swrad:coordinates = "lon lat" ;
swrad:time = "time" ;
swrad:positive_value = "downward flux, heating" ;
swrad:negative_value = "upward flux, cooling" ;
double shflux(time, lat, lon) ;
shflux:long_name = "net surface heat flux" ;
shflux:units = "Watts metre-2" ;
shflux:coordinates = "lon lat" ;
shflux:time = "time" ;
shflux:positive_value = "downward flux, heating" ;
shflux:negative_value = "upward flux, cooling" ;
double Uwind(time, lat, lon) ;
Uwind:long_name = "u-wind" ;
Uwind:units = "metre second-1" ;
Uwind:coordinates = "lon lat" ;
Uwind:time = "time" ;
double Vwind(time, lat, lon) ;
Vwind:long_name = "v-wind" ;
Vwind:units = "metre second-1" ;
Vwind:coordinates = "lon lat" ;
Vwind:time = "time" ;
double cloud(time, lat, lon) ;
cloud:long_name = "cloud fraction" ;
cloud:units = "nondimensional" ;
cloud:coordinates = "lon lat" ;
cloud:time = "time" ;
double wspd(time, lat, lon) ;
wspd:long_name = "wind speed 10m" ;
wspd:units = "metre second-1" ;
wspd:coordinates = "lon lat" ;
wspd:time = "time" ;
double sustr(time, lat, lon) ;
sustr:long_name = "surface u-momentum stress" ;
sustr:units = "Newton metre-2" ;
sustr:coordinates = "lon lat" ;
sustr:time = "time" ;
double svstr(time, lat, lon) ;
svstr:long_name = "surface v-momentum stress" ;
svstr:units = "Newton metre-2" ;
svstr:coordinates = "lon lat" ;
svstr:time = "time" ;
Any comments/suggestions would be appreciated.
Thanks in advance.
-DJ