Hello,
I've encountered a problem with shortwave radiation. There is a semidiurnal cycle, with a peak, about 2-3hours wide.
At first, I used analytical SWR, with only the flags ALBEDO and ANA_SRFLUX, then I put DIURNAL_SRFLUX as well, seeing no change. Then I replaced the cloud forcing (from NCEP) by analytical clouds (ANA_CLOUD), again no change, then I replaced ANA_SRFLUX with SWR data from NCEP, which also brought no change to the cycle period, although the peaks appear to be wider. I've tried all thinkable flag combinations I came across. The results qualitatively remain the same
I wonder what I'm doing wrong. Has anyone got an idea?
Thank you in advance,
Daniel
Short wave radiation
-
- Posts: 3
- Joined: Sun Mar 26, 2017 7:15 pm
- Location: Institut für Chemie und Biologie der Meere
Re: Short wave radiation
How do you know you are running with a semidiurnal cycle in shortwave radiation? Is it because you have
and relatively frequent output intervals (set with NHIS). That's the quickest way to see what ROMS is reading or computing internally.
There are other things to check. Look carefully at stdout (the "log file") to see what inputs ROMS is processing. If you have asked to read from a netcdf file (you said you tried NCEP) then stdout should show every record read from the netcdf file and the min and max values of the data.
Reading from netcdf is the default if you have not defined ANA_SRFLUX.
However, to activate the use of shortwave radiation penetration into the water column separate from the net heat flux you also need to #define SOLAR_SOURCE. If that is not defined then ROMS won't read from netcdf.
Using #define ANA_SRFLUX you'll need to customize the Functional ana_srflux.h.
At the end of a run ROMS reports the Functionals that it compiled. This is at the very end of the stdout. You'll see something like:
Make sure you see the path to the version of ana_srflux.h that you configured for you application.
If that is all good, then you can also check how the preprocessed code appears - the code that goes to the compiler.
This will be in Build/analytical.f90
Search for the string ana_srflux_tile and check that your customized code is there. Since you have #define DIURNAL_SRFLUX you should see that code, but you'll also want to see whatever is setting the daily average value of srflux that gets modulated by the DIURNAL_SRFLUX option.
Code: Select all
Hout(idSrad) == T ! swrad shortwave radiation flux
There are other things to check. Look carefully at stdout (the "log file") to see what inputs ROMS is processing. If you have asked to read from a netcdf file (you said you tried NCEP) then stdout should show every record read from the netcdf file and the min and max values of the data.
Reading from netcdf is the default if you have not defined ANA_SRFLUX.
However, to activate the use of shortwave radiation penetration into the water column separate from the net heat flux you also need to #define SOLAR_SOURCE. If that is not defined then ROMS won't read from netcdf.
Using #define ANA_SRFLUX you'll need to customize the Functional ana_srflux.h.
At the end of a run ROMS reports the Functionals that it compiled. This is at the very end of the stdout. You'll see something like:
Code: Select all
Analytical header files used:
ROMS/Functionals/ana_btflux.h
ROMS/Functionals/ana_srflux.h
If that is all good, then you can also check how the preprocessed code appears - the code that goes to the compiler.
This will be in Build/analytical.f90
Search for the string ana_srflux_tile and check that your customized code is there. Since you have #define DIURNAL_SRFLUX you should see that code, but you'll also want to see whatever is setting the daily average value of srflux that gets modulated by the DIURNAL_SRFLUX option.
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
-
- Posts: 3
- Joined: Sun Mar 26, 2017 7:15 pm
- Location: Institut für Chemie und Biologie der Meere
Re: Short wave radiation
Hi,
thanks for replying!
the swrad variable now is all 0. I find this really confusing. The file format should be fine and there is data in the files. The stdout says Tmax=181.75, which is in the right orders, but the global max in the file is 216Wm-2.
Also, if it would work with NCEP-files, I still wonder why the analytical SWR is semidiurnal.
Thank you for your help.
thanks for replying!
Yes, I see the variable in NCVIEW and NHIS == 15, so it writes out every half hour in model time.How do you know you are running with a semidiurnal cycle in shortwave radiation? Is it because you have
Code:
Hout(idSrad) == T ! swrad shortwave radiation flux
and relatively frequent output intervals (set with NHIS). That's the quickest way to see what ROMS is reading or computing internally.
I checked this, and it's 'ROMS/Functionals/ana_srflux.h'.At the end of a run ROMS reports the Functionals that it compiled. This is at the very end of the stdout. You'll see something like:
Code:
Analytical header files used:
ROMS/Functionals/ana_btflux.h
ROMS/Functionals/ana_srflux.h
Make sure you see the path to the version of ana_srflux.h that you configured for you application.
I've checked this and it says that (as expected) cloud fraction is read in every 6 hours starting at 3am, so the second data point is read in after the swrad peaks have decayed to zero. Turning off ANA_SRFLUX and SOLAR_SOURCE meant that the SWR-file is read in, according to the stdout. However, while stdout says:There are other things to check. Look carefully at stdout (the "log file") to see what inputs ROMS is processing. If you have asked to read from a netcdf file (you said you tried NCEP) then stdout should show every record read from the netcdf file and the min and max values of the data.
,GET_2DFLD - solar shortwave radiation flux, 2012-01-01 00:00:00.00
(Grid=01, Rec=0000001, Index=1, File: NWS_meteo_SWR_forcing.nc)
(Tmin= 0.0000 Tmax= 181.7500) t = 0.0000
(Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
the swrad variable now is all 0. I find this really confusing. The file format should be fine and there is data in the files. The stdout says Tmax=181.75, which is in the right orders, but the global max in the file is 216Wm-2.
Also, if it would work with NCEP-files, I still wonder why the analytical SWR is semidiurnal.
Thank you for your help.
Re: Short wave radiation
Tmax is a time, not the value. For values, you have:
which looks like it didn't find any valid values.(Min = 1.00000000E+35 Max = -1.00000000E+35)
Re: Short wave radiation
Tmin/Tmax are the times in days.GET_2DFLD - solar shortwave radiation flux, 2012-01-01 00:00:00.00
(Grid=01, Rec=0000001, Index=1, File: NWS_meteo_SWR_forcing.nc)
(Tmin= 0.0000 Tmax= 181.7500) t = 0.0000
(Min = 1.00000000E+35 Max = -1.00000000E+35) regrid = T
The values are the Min/Max and you have 1.00000000E+35 !!!
so there are some missing values /NaNs in there which will give trouble.
If ROMS has read solar shortwave radiation flux then it didn't use code in ana_srflux.h. That Functional was only used because of DIURNAL_SRFLUX. Look in Build/analytical.f90 and you'll see only the default code to set the actual radiation.
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
-
- Posts: 3
- Joined: Sun Mar 26, 2017 7:15 pm
- Location: Institut für Chemie und Biologie der Meere
Re: Short wave radiation
I see! Well this is wrong...
I rechecked the file a few times and it turns out I had the latitude upside down. Now it works with NCEP. Thank you for the advice! It helped a lot!
Daniel
I rechecked the file a few times and it turns out I had the latitude upside down. Now it works with NCEP. Thank you for the advice! It helped a lot!
Daniel