Blowing-up problem: Bulk_fluxes

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
angelolemos
Posts: 34
Joined: Wed Mar 11, 2009 4:24 pm
Location: UFES

Blowing-up problem: Bulk_fluxes

#1 Unread post by angelolemos »

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.
Attachments
v-wind stress
v-wind stress
log_file.txt
log_file
(75.63 KiB) Downloaded 202 times
surface net heat flux
surface net heat flux
u-wind stress
u-wind stress

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: Blowing-up problem: Bulk_fluxes

#2 Unread post by kate »

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... :mrgreen:

angelolemos
Posts: 34
Joined: Wed Mar 11, 2009 4:24 pm
Location: UFES

Re: Blowing-up problem: Bulk_fluxes

#3 Unread post by angelolemos »

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!
Attachments
pair.png
pair.png (4.2 KiB) Viewed 4395 times

angelolemos
Posts: 34
Joined: Wed Mar 11, 2009 4:24 pm
Location: UFES

Re: Blowing-up problem: Bulk_fluxes

#4 Unread post by angelolemos »

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.
Attachments
input_data2.png
input_data2.png (9.35 KiB) Viewed 4361 times
input_data.png
input_data.png (8.76 KiB) Viewed 4361 times

User avatar
wilkin
Posts: 875
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

Re: Blowing-up problem: Bulk_fluxes

#5 Unread post by wilkin »

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.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

msd
Posts: 17
Joined: Fri Jun 27, 2003 10:10 pm
Location: CCPO/ODU, USA

Re: Blowing-up problem: Bulk_fluxes

#6 Unread post by msd »

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).

angelolemos
Posts: 34
Joined: Wed Mar 11, 2009 4:24 pm
Location: UFES

Re: Blowing-up problem: Bulk_fluxes

#7 Unread post by angelolemos »

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:

Post Reply