option for wind forcing
-
- Posts: 22
- Joined: Fri Jul 08, 2005 5:42 pm
- Location: Kyoto University
option for wind forcing
Dear community,
I have a trivial question about wind forcing option in ROMS. I tried to exclude the wind forcing from external file but was alway there. I'm currently put zero in forcing files but there must be related option in *.h file.
Does anyone give me the information of it?
I have a trivial question about wind forcing option in ROMS. I tried to exclude the wind forcing from external file but was alway there. I'm currently put zero in forcing files but there must be related option in *.h file.
Does anyone give me the information of it?
There is convoluted logic here, starting with how you want it to compute surface stresses. Will you apply them analytically? Then use ANA_SRFLUX. Will you compute them from winds and other atmospheric fields? Then use BULK_FLUXES. If you have BULK_FLUXES, will the winds (etc.) come from a file or from an analytic formula? Check ANA_WINDS.
-
- Posts: 22
- Joined: Fri Jul 08, 2005 5:42 pm
- Location: Kyoto University
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Obviously, you are very confused. To run ROMS, you need wind stress There is no such thing as telling ROMS that you don't want wind stress. This does not make any sense at all. The momentum equations require surface (wind stress) and bottom (bed stress) boundary conditions. This is part of the discretization of the continuous equations.
If you don't want surface wind stress effects, you need to set sustr and svstr to zero You still need to tell ROMS how are you providing the wind stress, even if is zero. This is unavoidable. You either provide this forcing with an analytical function (ANA_SMFLUX) and specify sustr and svstr to zero in ana_smflux.h or provide a forcing NetCDF file with zero values for these fields.
The BULK_FLUXES option is to compute the surface wind stress and surface heat fluxes using a bulk parameterization. This option is used when the COARE surface boundary layer is desired to compute such stresses. In this case, you need to provide surface (or near surface) horizontal winds vector components and several other atmospheric fields. Notice that ROMS actually never uses surface wind (m/s) vectors but surface wind stress (Pa).
If you don't want surface wind stress effects, you need to set sustr and svstr to zero You still need to tell ROMS how are you providing the wind stress, even if is zero. This is unavoidable. You either provide this forcing with an analytical function (ANA_SMFLUX) and specify sustr and svstr to zero in ana_smflux.h or provide a forcing NetCDF file with zero values for these fields.
The BULK_FLUXES option is to compute the surface wind stress and surface heat fluxes using a bulk parameterization. This option is used when the COARE surface boundary layer is desired to compute such stresses. In this case, you need to provide surface (or near surface) horizontal winds vector components and several other atmospheric fields. Notice that ROMS actually never uses surface wind (m/s) vectors but surface wind stress (Pa).
-
- Posts: 22
- Joined: Fri Jul 08, 2005 5:42 pm
- Location: Kyoto University
-
- Posts: 52
- Joined: Tue Mar 03, 2009 2:39 pm
- Location: C.N.R. - LaMMA
Re: option for wind forcing
Hello all,
If I have to set a constant wind (constant in the space and in time), can I use the ANA_WIND?
And, if ANA_WIND is defined (as in some test cases), where I set velocity and direction values?
I hope in your help,
Maria
If I have to set a constant wind (constant in the space and in time), can I use the ANA_WIND?
And, if ANA_WIND is defined (as in some test cases), where I set velocity and direction values?
I hope in your help,
Maria
Re: option for wind forcing
Yes, you can set it analytically. Copy ana_wind.h into the directory where you put your cpp file and edit it accordingly. You can check Build/analytical.f90 during the build to see if it got the right ana_wind.h.
Re: option for wind forcing
Make sure your makefile point to the right ana_wind.h specifying the dir
MY_ANALYTICAL_DIR ?= /home/the_pat_to_the_folder_with_your_ana_files
MY_ANALYTICAL_DIR ?= /home/the_pat_to_the_folder_with_your_ana_files
Re: option for wind forcing
It is also specified in the ROMS log file once you make it to runkate wrote:You can check Build/analytical.f90 during the build to see if it got the right ana_wind.h.
-
- Posts: 52
- Joined: Tue Mar 03, 2009 2:39 pm
- Location: C.N.R. - LaMMA
Re: option for wind forcing
Hello all,
I would like to see how it changes the Sed_test1 test-case if I add a wind forcing. To do this, I have to add the following cpp options in the header file:
bulk_fluxes, ana_winds, ana_pair, ana_tair, ana_humidity, ana_rain, ana_cloud, longwave
and I have to eliminate ana_smflux and ana_stflux.
Have I to eliminate ana_tobc and ana_fobc too?
It is right?
I am very confused.
Thank you very much for each suggestion,
Maria
I would like to see how it changes the Sed_test1 test-case if I add a wind forcing. To do this, I have to add the following cpp options in the header file:
bulk_fluxes, ana_winds, ana_pair, ana_tair, ana_humidity, ana_rain, ana_cloud, longwave
and I have to eliminate ana_smflux and ana_stflux.
Have I to eliminate ana_tobc and ana_fobc too?
It is right?
I am very confused.
Thank you very much for each suggestion,
Maria
Re: option for wind forcing
if you just want to see what the winds would do, then edit
ROMS/External/Functionals
and add sustr and svstr in there, similar to the way SED_TOY or SHOREFACE has it.
ROMS/External/Functionals
and add sustr and svstr in there, similar to the way SED_TOY or SHOREFACE has it.
Re: option for wind forcing
Question:
Is it possible to include a time-series forcing for the surface momentum but neglect the surface heat fluxes? If so, how do I do this?
BULK_FLUXES requires a time-series of wind speeds (which I have), but also specification of things that I don't have (air temperature, cloud cover, etc.).
I need to include my hourly time-series of wind speeds, but would rather not track down reasonable values for all of the other variables.
thanks,
Courtney
Is it possible to include a time-series forcing for the surface momentum but neglect the surface heat fluxes? If so, how do I do this?
BULK_FLUXES requires a time-series of wind speeds (which I have), but also specification of things that I don't have (air temperature, cloud cover, etc.).
I need to include my hourly time-series of wind speeds, but would rather not track down reasonable values for all of the other variables.
thanks,
Courtney
Courtney Harris
Professor
Virginia Institute of Marine Sciences
http://www.vims.edu/about/directory/fac ... ris_ck.php
Professor
Virginia Institute of Marine Sciences
http://www.vims.edu/about/directory/fac ... ris_ck.php
Re: option for wind forcing
What bulk_flux does is approximate an atmospheric boundary layer and compute stresses and heat from that. What you need is a formula for estimating wind stress from winds alone. With that in hand, you can hack it into ROMS, but you'll be fighting the ROMS logic machine on it figuring out which fields it needs. I could do it, but there would be trial and error, so I can't tell you all the steps off hand. Try it and see what doesn't work, then attack that. Get to know what globaldefs.h is doing, also get_data and set_data.
Re: option for wind forcing
Courtney,
the easiest option I see is the following:
1) estimate (offline) the momentum stress using simple parameterizations that require only the wind field. An example parameterization is here
http://woodshole.er.usgs.gov/operations ... tress.html
2) Create a netcdf forcing file with momentum stress.
3) set:
# define ANA_STFLUX and set surface temperature fluxe to zero (so no need for heat fluxes)
# undef BULK_FLUXES (you don't need that anymore)
hope this helps
Jacopo
the easiest option I see is the following:
1) estimate (offline) the momentum stress using simple parameterizations that require only the wind field. An example parameterization is here
http://woodshole.er.usgs.gov/operations ... tress.html
2) Create a netcdf forcing file with momentum stress.
3) set:
# define ANA_STFLUX and set surface temperature fluxe to zero (so no need for heat fluxes)
# undef BULK_FLUXES (you don't need that anymore)
hope this helps
Jacopo
Re: option for wind forcing
Courtney,
You can use #define ANA_TAIR and edit the Functionals files ana_tair.h (and Pair, Qair, swrad, lwrad) to set simple sensible values for those variables, and let ROMS read the wind speed components from your netcdf files (i.e do not define ANA_WINDS). With constant but sensible values for Tair, Qair, Pair etc bulk_fluxes will compute stresses (but also heat fluxes).
If you really want to zero out the heat fluxes while retaining the stresses, then you can hack just the few lines in bulk_flux.F where stflx(...itemp) is set according to the sum of the 4 components and leave sustr,svstr unchanged. You would need to make swrad zero in that case using analytical.
Another approach is to look in get_data.F and notice where Uair and Vair are read. You'll see that the option ECOSIM forces a reading of those data even if they are not going to be used (because BULK_FLUX is undefined). You can create your own cpp flag and then use it to similarly activate the reading of the wind components, then use the wind components inside an ana_smflux.h you write to compute stress with a simple drag rule. You should be careful about vector directions if your grid is rotated from east-north (that's something you don't have to worry about if you work through bulk_flux.F as I suggest above).
John.
You can use #define ANA_TAIR and edit the Functionals files ana_tair.h (and Pair, Qair, swrad, lwrad) to set simple sensible values for those variables, and let ROMS read the wind speed components from your netcdf files (i.e do not define ANA_WINDS). With constant but sensible values for Tair, Qair, Pair etc bulk_fluxes will compute stresses (but also heat fluxes).
If you really want to zero out the heat fluxes while retaining the stresses, then you can hack just the few lines in bulk_flux.F where stflx(...itemp) is set according to the sum of the 4 components and leave sustr,svstr unchanged. You would need to make swrad zero in that case using analytical.
Another approach is to look in get_data.F and notice where Uair and Vair are read. You'll see that the option ECOSIM forces a reading of those data even if they are not going to be used (because BULK_FLUX is undefined). You can create your own cpp flag and then use it to similarly activate the reading of the wind components, then use the wind components inside an ana_smflux.h you write to compute stress with a simple drag rule. You should be careful about vector directions if your grid is rotated from east-north (that's something you don't have to worry about if you work through bulk_flux.F as I suggest above).
John.
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: option for wind forcing
Hi
In order to the arango guide for ignore wind stress don't touch to subroutine. You have to zero all of the array of wind stress matrix for this case if you refer to 'make_forcing.m' in ROMSTOOLS in line that is for writing of wind stress in netcdf file you put u=0 and v=0 after 'horizontal extrapolation of variables on ROMS grid FUNCTION'. And you must run the model like previous of ignoring wind stress.
Best Regards
F.Daryabor
Center for Tropical and Climate Change Systems
National University of Malaysia
In order to the arango guide for ignore wind stress don't touch to subroutine. You have to zero all of the array of wind stress matrix for this case if you refer to 'make_forcing.m' in ROMSTOOLS in line that is for writing of wind stress in netcdf file you put u=0 and v=0 after 'horizontal extrapolation of variables on ROMS grid FUNCTION'. And you must run the model like previous of ignoring wind stress.
Best Regards
F.Daryabor
Center for Tropical and Climate Change Systems
National University of Malaysia
Re: option for wind forcing
Hello, everyone!
I want to add wind forcing. but the change of water level is not obvious, so now I want to change the wind drag cofficient (Cd). What I have done is the followings:
1. In the *.h file, #define BULK_FLUXES and #undef ANA_SMFLUX. Add #define CCSM_FLUXES;
2. In the .in file, change these two options to T;
Hout(idUair) == T ! Uair surface U-wind component
Hout(idVair) == T ! Vair surface V-wind component
The probllems are:
1. After compiling, it seems that the CPP option (CCSM_FLUXES) didn't compiled,what can I do to make this option effective.
2. There is not a variable named Uair and Vair in the output history file even though I chage them to T, I really don't know how to set?
Thanks!
I want to add wind forcing. but the change of water level is not obvious, so now I want to change the wind drag cofficient (Cd). What I have done is the followings:
1. In the *.h file, #define BULK_FLUXES and #undef ANA_SMFLUX. Add #define CCSM_FLUXES;
2. In the .in file, change these two options to T;
Hout(idUair) == T ! Uair surface U-wind component
Hout(idVair) == T ! Vair surface V-wind component
The probllems are:
1. After compiling, it seems that the CPP option (CCSM_FLUXES) didn't compiled,what can I do to make this option effective.
2. There is not a variable named Uair and Vair in the output history file even though I chage them to T, I really don't know how to set?
Thanks!
Re: option for wind forcing
Those options you mention are from my (unsupported) rogue version of ROMS, not the trunk code. Which code are you using?
Re: option for wind forcing
Thanks kate, as you say, I just used the trunk code. So where could I get your version of ROMS?