Can anyone tell me if the interpolation of forcing works? I mean that the interpolation is the interpolation done internally by ROMS.
I am trying to create forcing file (parent and child grids); however, due to the large file size, I thought it should be better for ROMS to take care of interpolation rather than creating forcing file interpolated into ROMS by me.
However, when I ran the model, all forcing data were zeros in history files and the maximum and minimum values of input data (e.g. wind velocities, heat fluxes, precipitation etc.) were 1e+35 and -1e+35 in the log, respectively (see below). These values come from Fmin and Fmax in interpolate.F.
I also checked that the values of Fout/Finp in interpolate.F and it seems that those values were NaN (did not show the values). That's why I think min and max values were 1e+35. I double-checked the values and there are no 1e+35 values in any grids of the forcing file. Also, the domain of the forcing is larger than the model domain.
Code: Select all
    GET_2DFLD   - surface u-wind component,                        2014-01-01 01:00:00.00
                   (Grid=01, Rec=0000002, Index=2, File: nwgom.frc.2014.nc)              
                   (Tmin=      16071.0000 Tmax=      16435.9583)      t =      16071.0417
                   (Min =  1.00000000E+35 Max = -1.00000000E+35)      regrid = T  
I attach the metadata of the uninterpolated forcing file below. Does the metadata look wrong?
I use COWAST ver 3.5 (ROMS 3.9?).
Code: Select all
netcdf nwgom.frc.2014 {
dimensions:
	time = UNLIMITED ; // (8760 currently)
	lon = 81 ;
	lat = 61 ;
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" ;
// global attributes:
		:type = "ROMS Bulk forcing file" ;
		:title = "ROMS Bulk forcing file" ;
		:author = "DJ,,,, wegener.tamu.edu" ;
		:dataset = "ECMWF ERA-5" ;
		:NCO = "\"4.6.0\"" ;
		:nco_openmp_thread_number = 1 ;
}
-DJ

