option for wind forcing

Discussion of how to use ROMS on different regional and basin scale applications.

Moderators: arango, robertson

Post Reply
Message
Author
nobuhitomori
Posts: 22
Joined: Fri Jul 08, 2005 5:42 pm
Location: Kyoto University

option for wind forcing

#1 Post by nobuhitomori » Thu Nov 01, 2007 2:14 am

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?

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

#2 Post by kate » Thu Nov 01, 2007 5:18 pm

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.

nobuhitomori
Posts: 22
Joined: Fri Jul 08, 2005 5:42 pm
Location: Kyoto University

#3 Post by nobuhitomori » Fri Nov 02, 2007 9:48 am

Dear kate,

I currently do not want to compute wind stress and turned off BULK_FLUXES and ANA_WINDS. I'm using roms_tools to setup initial conditions. Therefore, there is forcing file in User/data diretory. The ROMS seems to reading forcing file but I don't want to read it.

User avatar
arango
Site Admin
Posts: 1103
Joined: Wed Feb 26, 2003 4:41 pm
Location: IMCS, Rutgers University
Contact:

#4 Post by arango » Fri Nov 02, 2007 4:32 pm

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

nobuhitomori
Posts: 22
Joined: Fri Jul 08, 2005 5:42 pm
Location: Kyoto University

#5 Post by nobuhitomori » Tue Nov 06, 2007 4:23 am

Dear arango,

I totally misunderstood and now I know my way to.
I appreciate for your kind suggestions and information.

mariafattorini
Posts: 52
Joined: Tue Mar 03, 2009 2:39 pm
Location: C.N.R. - LaMMA

Re: option for wind forcing

#6 Post by mariafattorini » Fri Jun 26, 2009 10:54 am

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

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

Re: option for wind forcing

#7 Post by kate » Fri Jun 26, 2009 11:35 am

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.

jacopo
Posts: 81
Joined: Fri Nov 21, 2003 9:30 pm
Location: CNR-ISMAR

Re: option for wind forcing

#8 Post by jacopo » Fri Jun 26, 2009 11:42 am

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

jacopo
Posts: 81
Joined: Fri Nov 21, 2003 9:30 pm
Location: CNR-ISMAR

Re: option for wind forcing

#9 Post by jacopo » Fri Jun 26, 2009 11:55 am

kate wrote:You can check Build/analytical.f90 during the build to see if it got the right ana_wind.h.
It is also specified in the ROMS log file once you make it to run

mariafattorini
Posts: 52
Joined: Tue Mar 03, 2009 2:39 pm
Location: C.N.R. - LaMMA

Re: option for wind forcing

#10 Post by mariafattorini » Sun Sep 06, 2009 9:35 pm

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

jcwarner
Posts: 823
Joined: Wed Dec 31, 2003 6:16 pm
Location: USGS, USA

Re: option for wind forcing

#11 Post by jcwarner » Mon Sep 07, 2009 11:23 pm

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.

User avatar
ckharris
Posts: 32
Joined: Wed Nov 03, 2004 4:37 pm
Location: VIMS
Contact:

Re: option for wind forcing

#12 Post by ckharris » Wed Nov 25, 2009 5:47 pm

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
Courtney Harris
Professor
Virginia Institute of Marine Sciences
http://www.vims.edu/about/directory/fac ... ris_ck.php

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

Re: option for wind forcing

#13 Post by kate » Wed Nov 25, 2009 5:53 pm

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.

jacopo
Posts: 81
Joined: Fri Nov 21, 2003 9:30 pm
Location: CNR-ISMAR

Re: option for wind forcing

#14 Post by jacopo » Wed Nov 25, 2009 6:25 pm

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

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

Re: option for wind forcing

#15 Post by wilkin » Thu Nov 26, 2009 2:56 am

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

fdaryabor
Posts: 78
Joined: Wed Jan 02, 2008 3:15 pm
Location: University of Copenhagen

Re: option for wind forcing

#16 Post by fdaryabor » Thu Nov 26, 2009 9:58 am

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

Post Reply