Dear roms users,
I'm new user of ROMS model and I'm having some problems about the use of BULK_FLUXES. I downloaded all the necessary information from CFSR/NCEP, 6h-6h (http://nomads.ncdc.noaa.gov/thredds/dodsC/modeldata), but the wind-stress and surface net heat flux of model results are not real and the model blow-up in the 3th day.
In my experiment the CPPDEFS options are:
/*Basic physics options*/
#define UV_ADV
#define UV_COR
#define UV_VIS2
#define MIX_S_UV
#define TS_DIF2
#define MIX_GEO_TS
#define SOLVE3D
#define SALINITY
#define NONLIN_EOS
#define ATM_PRESS
#define SSH_TIDES
#define UV_TIDES
/* Additional options*/
#define STATIONS
/*Basic numerical options*/
#define DJ_GRADPS
#undef SPLINES
#define CURVGRID
#define MASKING
#define GLS_MIXING
#define KANTHA_CLAYSON
#define N2S2_HORAVG
/*Outputs*/
#define AVERAGES
#define DIAGNOSTICS_TS
#define DIAGNOSTICS_UV
/*Surface and bottom boundary conditions*/
#define UV_QDRAG
#define BULK_FLUXES
#define DIURNAL_SRFLUX
#define LONGWAVE_OUT
#define EMINUSP
#define SOLAR_SOURCE
#define ANA_BSFLUX
#define ANA_BTFLUX
#undef ANA_SMFLUX
#undef ANA_STFLUX
#undef ANA_SSFLUX
#define WET_DRY
#define DEFLATE
#define HDF5
I analyzed the input data used by the model (surface u-wind component; surface v-wind component; surface air pressure; solar shortwave radiation flux; downwelling longwave radiation flux; surface air temperature; surface air relative humidity and rain fall rate):
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit Uwind_CFSR.nc {
dimensions:
wind_time = 109 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
single Uwind(wind_time,lat,lon), shape = [109 333 265]
:long_name = "surface u-wind component"
:NCEP_variable = "idUair"
:time = "wind_time"
:coordinates = "lon lat"
double wind_time(wind_time), shape = [109]
:long_name = "wind_time"
:units = "days since 2000-01-01 00:00:00"
:field = "u-wind, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit Vwind_CFSR.nc {
dimensions:
wind_time = 109 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
single Vwind(wind_time,lat,lon), shape = [109 333 265]
:long_name = "10 m above ground u-component of wind [m/s]"
:NCEP_variable = "idVair"
:time = "wind_time"
:coordinates = "lon lat"
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
double wind_time(wind_time), shape = [109]
:long_name = "wind_time"
:units = "days since 2000-01-01 00:00:00"
:field = "v-wind, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit Pair_CFSR.nc {
dimensions:
pair_time = 109 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
single Pair(pair_time,lat,lon), shape = [109 333 265]
:long_name = "surface air pressure"
:NCEP_variable = "idPair"
:time = "pair_time"
:coordinates = "lon lat"
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
double pair_time(pair_time), shape = [109]
:long_name = "pair_time"
:units = "days since 2000-01-01 00:00:00"
:field = "Pair, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit swrad_nam_CFSR.nc {
dimensions:
srf_time = 109 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
single swrad(srf_time,lat,lon), shape = [109 333 265]
:long_name = "solar shortwave radiation flux"
:NCEP_variable = "idSrad"
:history = "computed from dswrfsfc minus uswrfsfc"
:time = "srf_time"
:coordinates = "lon lat"
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
double srf_time(srf_time), shape = [109]
:long_name = "srf_time"
:units = "days since 2000-01-01 00:00:00"
:field = "shortwave radiation, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit lwrad_down_CFSR.nc {
dimensions:
lrf_time = 109 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
single lwrad_down(lrf_time,lat,lon), shape = [109 333 265]
:long_name = "downward longwave radiation"
:NCEP_variable = "idLdwn"
:time = "lrf_time"
:coordinates = "lon lat"
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
double lrf_time(lrf_time), shape = [109]
:long_name = "lrf_time"
:units = "days since 2000-01-01 00:00:00"
:field = "downwelling longwave radiation, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit Tair_nam_CFSR.nc {
dimensions:
tair_time = 109 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
single Tair(tair_time,lat,lon), shape = [109 333 265]
:long_name = "surface air temperature"
:NCEP_variable = "tmp2m"
:time = "tair_time"
:coordinates = "lon lat"
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
double tair_time(tair_time), shape = [109]
:long_name = "tair_time"
:units = "days since 2000-01-01 00:00:00"
:field = "Tair, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit rhum_CFSR.nc {
dimensions:
time = 140 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
single Qair(time,lat,lon), shape = [140 333 265]
:_FillValue = 999900026055400882176.000000 f
:missing_value = 999900026055400882176.000000 f
:long_name = "2 m above ground relative humidity [%]"
:NCEP_variable = "rh2m"
:time = "time"
:coordinates = "lon lat"
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
double time(time), shape = [140]
:long_name = "time"
:units = "days since 2000-01-01 00:00:00"
:field = "time, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NetCDF-3 64bit rain_nam_CFSR.nc {
dimensions:
rain_time = 109 ;
lat = 333 ;
lon = 265 ;
variables:
// Preference 'PRESERVE_FVD': false,
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
single rain(rain_time,lat,lon), shape = [109 333 265]
:long_name = "rain fall rate"
:units = "kg/m2/s"
:time = "rain_time"
:coordinates = "lon lat"
double lat(lat), shape = [333]
:long_name = "Latitude"
:units = "degrees_south"
:field = "lon lat"
double lon(lon), shape = [265]
:long_name = "Longitude"
:units = "degrees_west"
:field = "lon lat"
double rain_time(rain_time), shape = [109]
:long_name = "rain_time"
:units = "days since 2000-01-01 00:00:00"
:field = "rain, scalar, series"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
As I said, the wind-stress and surface net heat flux are not correct, I have attached the results of the first 6 hours of u-stress, v-stress and net heat flux. If I calculate the surface net heat flux by myself and #undef BULK_FLUXES, the model works, but I get some unrealistically warm sea surface temperatures, especially in shallow waters. I would like to use bulk fluxes.
I have checked the values of my variables and they seem ok. For the first 30 days my lwrad_down values are positive (min 309.5127 and max 439.5502), as well swrad (min 0 and max 723.3712).
The main part of my log file is attached.
Any advice is welcome, thanks in advance.
Blowing-up problem: Bulk_fluxes
-
- Posts: 34
- Joined: Wed Mar 11, 2009 4:24 pm
- Location: UFES
Blowing-up problem: Bulk_fluxes
- Attachments
-
log_file.txt
- log_file
- (75.63 KiB) Downloaded 227 times
Re: Blowing-up problem: Bulk_fluxes
I don't see units for all of the atmospheric fields. Be very careful to match what ROMS is expecting and check to make sure your varinfo.dat isn't giving screwy scale factors. Air pressure that's off by a factor of 100 or 1000 can do weird things... ![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
-
- Posts: 34
- Joined: Wed Mar 11, 2009 4:24 pm
- Location: UFES
Re: Blowing-up problem: Bulk_fluxes
Hi Kate,
Sorry, I did not say my units in the post.
I have checked all my variables and units, and if they are according to the varinfo.dat.
Follow below:
- Uwind_CFSR.nc: m/s
- Vwind_CFSR.nc: m/s
- Pair_CFSR.nc: millibar
- swrad_nam_CFSR.nc: w/m2
- lwrad_down_CFSR.nc: w/m2
- Tair_nam_CFSR.nc: Celsius
- rhum_CFSR.nc: percentage (%)
- rain_nam_CFSR.nc: kg m2/s
I think that my air pressure is ok, I attached a figure showing the time serie of the first 30 days (6h-6h) in a point located in a specific local in the open ocean (max value is 1029.7; min value is 1004.2).
I have no ideia what is causing my problem, any tip is welcome.
Thank you so much!
Sorry, I did not say my units in the post.
I have checked all my variables and units, and if they are according to the varinfo.dat.
Follow below:
- Uwind_CFSR.nc: m/s
- Vwind_CFSR.nc: m/s
- Pair_CFSR.nc: millibar
- swrad_nam_CFSR.nc: w/m2
- lwrad_down_CFSR.nc: w/m2
- Tair_nam_CFSR.nc: Celsius
- rhum_CFSR.nc: percentage (%)
- rain_nam_CFSR.nc: kg m2/s
I think that my air pressure is ok, I attached a figure showing the time serie of the first 30 days (6h-6h) in a point located in a specific local in the open ocean (max value is 1029.7; min value is 1004.2).
I have no ideia what is causing my problem, any tip is welcome.
Thank you so much!
- Attachments
-
- pair.png (4.2 KiB) Viewed 4843 times
-
- Posts: 34
- Joined: Wed Mar 11, 2009 4:24 pm
- Location: UFES
Re: Blowing-up problem: Bulk_fluxes
Hi all,
In order to facilitate the understanding of my input data, I have selected a point in the deep ocean (-37.792; -15.138) to show the time series of all my input data requested by ROMS in the simulating using BULK_FLUXES option, as I showed in my first post. I attached two plots of them.
About the values, I have selected the maximum and minimun of the firts 30 days (6h-6h):
- u_wind: max 11.123; min -14.834 [m/s];
- v_wind: max 13.199; min -16.227 [m/s];
- lwrad_down: max 439.55; min 309.51 [w/m2];
- swrad: max 723.37; min 0 [w/m2];
- Pair: max 1029.7; min 1004.2 [millibar];
- Qair: max 100.18; min 33.518 [%];
- Rain: max 10.728; min 0 [kg m2/s];
- Tair: max 33.107; min 17.469 [Celsius];
Are my input data wrong?
I don't understand why the experiment's results are showing wrong values and blowing up when I choose the BULK_FLUXES option.
Any advice is welcome.
Thanks in advance.
In order to facilitate the understanding of my input data, I have selected a point in the deep ocean (-37.792; -15.138) to show the time series of all my input data requested by ROMS in the simulating using BULK_FLUXES option, as I showed in my first post. I attached two plots of them.
About the values, I have selected the maximum and minimun of the firts 30 days (6h-6h):
- u_wind: max 11.123; min -14.834 [m/s];
- v_wind: max 13.199; min -16.227 [m/s];
- lwrad_down: max 439.55; min 309.51 [w/m2];
- swrad: max 723.37; min 0 [w/m2];
- Pair: max 1029.7; min 1004.2 [millibar];
- Qair: max 100.18; min 33.518 [%];
- Rain: max 10.728; min 0 [kg m2/s];
- Tair: max 33.107; min 17.469 [Celsius];
Are my input data wrong?
I don't understand why the experiment's results are showing wrong values and blowing up when I choose the BULK_FLUXES option.
Any advice is welcome.
Thanks in advance.
- Attachments
-
- input_data2.png (9.35 KiB) Viewed 4809 times
-
- input_data.png (8.76 KiB) Viewed 4809 times
Re: Blowing-up problem: Bulk_fluxes
One odd thing I see in your configuration (by reading the log file) is that you have set DIURNAL_SRFLUX but you are using 6-hourly swrad. This is a contradiction.
DIURNAL_SRFLUX is designed to take daily average net shortwave and modulate that over the course of a day using the analytical diurnal cycle for each cell's lon, lat and year-day.
I'm not sure how the error of modulating an already resolved diurnal cycle will manifest itself, but it could be that noon time shortwave in the input netcdf data is being significantly amplified by the local modulation. But I would expect this to cause trouble everywhere.
You might #undef DIURNAL_SRFLUX and see what impact that has.
DIURNAL_SRFLUX is designed to take daily average net shortwave and modulate that over the course of a day using the analytical diurnal cycle for each cell's lon, lat and year-day.
I'm not sure how the error of modulating an already resolved diurnal cycle will manifest itself, but it could be that noon time shortwave in the input netcdf data is being significantly amplified by the local modulation. But I would expect this to cause trouble everywhere.
You might #undef DIURNAL_SRFLUX and see what impact that has.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
Re: Blowing-up problem: Bulk_fluxes
Are you sure your rain fall units are correct? You list rain fall as kg m2/s, but ROMS wants rain as kg m-2 s-1 (unless you have some conversion in varinfo.dat as Kate pointed out).
If I'm reading your time history plot correctly, you have rain fall rates at times on the order of 1 kg m2/s. If ROMS is reading that as 1 kg m-2 s-1, that's going to be massive (~86 m/day if I did the math right).
If I'm reading your time history plot correctly, you have rain fall rates at times on the order of 1 kg m2/s. If ROMS is reading that as 1 kg m-2 s-1, that's going to be massive (~86 m/day if I did the math right).
-
- Posts: 34
- Joined: Wed Mar 11, 2009 4:24 pm
- Location: UFES
Re: Blowing-up problem: Bulk_fluxes
Hi,
Thank you so much, your suggestion about the rain fall solved my problem.
Actually, my rain fall input data were wrong, they were in mm/day, and not in kg m-2 s-1.
My experiment is going very well.
Thank you again.![Wink :wink:](./images/smilies/icon_wink.gif)
Thank you so much, your suggestion about the rain fall solved my problem.
Actually, my rain fall input data were wrong, they were in mm/day, and not in kg m-2 s-1.
My experiment is going very well.
Thank you again.
![Wink :wink:](./images/smilies/icon_wink.gif)