Dear ROM users/developers
I have a question regarding how to create input files for the ROMS-SWAN coupling.
What I am trying to do is to get wave parameters from NOAA NCEP global WW3 and to use them as open boundary condition for the ROMS-SWAN coupling to the domain of my interest (East Australia Coast). Other input data include bulk forcing data from NCEP and Tidal prediction from OSU.
When I checked the SWAN manual and the ROMS community as well as the manuscripts written by Dr. John Warner on ROM-SWAN coupling and MCT, I become confused about how to create input data for the model coupling (SWAN side).
For ROMS forcing file, we can include parameters of wave amplitude (Awave), wave direction(Dwave) and wave period(Pwave) into the forcing file. I initially thought that those input data would be used for SWAN running while coupled as I have the SWAN grid identical to ROMS', so I included those parameters obtained from NCEP into the forcing file. However, it seems to me that those data are used for computing bottom stress for ROMS not used for SWAN. If my memory is correct, I saw a discussion somewhere in the ROMS community that we need to create input files of ROMS and SWAN separately as if the models are run separately and the MCT controls the model coupling.
But when I read the SWAN user manual, there were no commands which allow me to include NOAA WW3 non-stationary wave (gridded) parameters as open boundary condition. I found that I could specify the boundary condition in swan.in for either TPAR (only for one location), 1D spectra, or 2D spectra file using BOUNDSPEC; however, none of them seems to apply to my situation. I used SWAN a long time ago with one-way nesting from a coarse SWAN domain, so I am not familiar with running SWAN using global wave model outputs as OBC.
Does SWAN get input data from ROMS input netcdf files while coupled or do we have to create two sets of separate input files for ROMS and SWAN in order to run the coupled models? if so, how can I create the input file(s) to include open boundary condition for SWAN?
Any comments/input would be greatly appreciated.
Thanks in advance.
Best regards,
DJ Kobashi
Griffith University
Gold Coast
Australia
ROMS-SWAN coupling (SWAN input data)
Re: ROMS-SWAN coupling (SWAN input data)
The coupling, as i developed it, provides a mechanism for information to be exchanged between different models. In this case, it is roms and swan. The coupling exchanges data from each model. Each model still needs its own boundary condition data. The BC's are not coming from the other model.
There are some statements you made that are not clear to me
1)"For ROMS forcing file, we can include parameters of wave amplitude (Awave), wave direction(Dwave) and wave period(Pwave) into the forcing file. I initially thought that those input data would be used for SWAN running while coupled as I have the SWAN grid identical to ROMS', so I included those parameters obtained from NCEP into the forcing file. However .."
If you already know Hwave, Dwave, and Pwave, why are you running SWAN? How would swan use information that it computes? Your choices are to create a forcing file of wave data and drive roms with that, or let swan run and exchange data to roms.
2) "But when I read the SWAN user manual, there were no commands which allow me to include NOAA WW3 non-stationary wave (gridded) parameters as open boundary condition. I found that I could specify the boundary condition in swan.in for either TPAR (only for one location), 1D spectra, or 2D spectra file using BOUNDSPEC; however, none of them seems to apply to my situation"
The commands that allow you to include WW3 data as BC data are the Boundspec commands. That is how you would do this.What do you mean it does not apply to your situation? what is your situation? i thought you need bc data for swan?
3) "Does SWAN get input data from ROMS input netcdf files while coupled or do we have to create two sets of separate input files for ROMS and SWAN in order to run the coupled models? if so, how can I create the input file(s) to include open boundary condition for SWAN?"
Yes, SWAN gets input data from ROMS, but SWAN does not get boundary condition data from ROMS. ROMS does not know what the waves are along the open bounday. Similarly, we have coupled ROMS-SWAN-WRF, and ROMS does not give WRF data for the boundary. I am developing this in a manner that is not ROMS centric. Each model has to create its own BC data files. WRF has an 'easy to follow' but rather complicated way to do this. But you are asking about SWAN. You need to create SWAN BC files as if you were running SWAN by itself. ROMS does not know about wave BC data.
hope this helps.
-john
There are some statements you made that are not clear to me
1)"For ROMS forcing file, we can include parameters of wave amplitude (Awave), wave direction(Dwave) and wave period(Pwave) into the forcing file. I initially thought that those input data would be used for SWAN running while coupled as I have the SWAN grid identical to ROMS', so I included those parameters obtained from NCEP into the forcing file. However .."
If you already know Hwave, Dwave, and Pwave, why are you running SWAN? How would swan use information that it computes? Your choices are to create a forcing file of wave data and drive roms with that, or let swan run and exchange data to roms.
2) "But when I read the SWAN user manual, there were no commands which allow me to include NOAA WW3 non-stationary wave (gridded) parameters as open boundary condition. I found that I could specify the boundary condition in swan.in for either TPAR (only for one location), 1D spectra, or 2D spectra file using BOUNDSPEC; however, none of them seems to apply to my situation"
The commands that allow you to include WW3 data as BC data are the Boundspec commands. That is how you would do this.What do you mean it does not apply to your situation? what is your situation? i thought you need bc data for swan?
3) "Does SWAN get input data from ROMS input netcdf files while coupled or do we have to create two sets of separate input files for ROMS and SWAN in order to run the coupled models? if so, how can I create the input file(s) to include open boundary condition for SWAN?"
Yes, SWAN gets input data from ROMS, but SWAN does not get boundary condition data from ROMS. ROMS does not know what the waves are along the open bounday. Similarly, we have coupled ROMS-SWAN-WRF, and ROMS does not give WRF data for the boundary. I am developing this in a manner that is not ROMS centric. Each model has to create its own BC data files. WRF has an 'easy to follow' but rather complicated way to do this. But you are asking about SWAN. You need to create SWAN BC files as if you were running SWAN by itself. ROMS does not know about wave BC data.
hope this helps.
-john
Re: ROMS-SWAN coupling (SWAN input data)
Dear John,
Many thanks for your prompt comments, which are helpful and my apologies for that I did not provide enough info for you to comment.
What I am trying to do now is to test operational capability of the ROMS-SWAN coupled models using NCEP operational forecast products as forcing and OBC data.
>If you already know Hwave, Dwave, and Pwave, why are you running SWAN? How would swan use information
>that it computes? Your choices are to create a forcing file of wave data and drive roms with that, or
>let swan run and exchange data to roms.
The WW3 wave data I am trying to use as OBC is from global WW3 provided by NCEP with 1 x 1.25 degree spatial resolution. The wave data is too coarse to be used for understanding of coastal dynamics(My ROMS grid resolution is approximately 1.7km (Curvilinear grids)). So I need to run SWAN and exchange data to ROMS, but I need to get open boundary condition to include swell traveling from deep water. And also need to include wind from NOAA GFS.
>The commands that allow you to include WW3 data as BC data are the Boundspec commands. That is how
>you would do this.What do you mean it does not apply to your situation? what is your situation? i
>thought you need bc data for swan?
I understand that. When I looked at the BOUNSPEC command, the SWAN user manual says there are two ways to define its open boundaries using BOUNDSPEC, 'SIDE' and 'SEGMENT'. And the manual suggests that we should not use 'SIDE' for curvilinear grids. So I have to use "SEGMENT".
We can choose either "CONSTANT" or "VARIABLE" to specify the type of boundary data and I chose "VARIABLE" as I have time-dependent gridded wave data. For the "VARIABLE" section, We can specify a file to be read by SWAN which includes TPAR file (time series) for only one location (not multiple locations) and 1D spectra and 2D spectra files, both of which I don't have as I have wave parameters, not spectral data. What I want to do is to include NCEP WW3 outputs (Hs, Tp, Dir) along all three boundaries (the fourth boundary is a land boundary) of my grids to include swell effects into my ROMS-SWAN coupling. Which sub-commands should I use? I initially thought the following commands would work, but they do not seem to work for my model case as I said the following 'obc_filename' needs to be either a TPAR file (only for one location) or a 1D/2D spectral file...
BOUND SHAPESPEC JONSWAP gamma 3.3 PEAK DSPR DEGREES
BOUNDSPEC SEGMENT IJ 0 150 374 150 VARIABLE FILE 'obc_filename'
Sorry I am asking a SWAN question in the ROMS community though it is something to do with ROMS and it may not be appropriate to do that.
Sincerely,
DJ
Many thanks for your prompt comments, which are helpful and my apologies for that I did not provide enough info for you to comment.
What I am trying to do now is to test operational capability of the ROMS-SWAN coupled models using NCEP operational forecast products as forcing and OBC data.
>If you already know Hwave, Dwave, and Pwave, why are you running SWAN? How would swan use information
>that it computes? Your choices are to create a forcing file of wave data and drive roms with that, or
>let swan run and exchange data to roms.
The WW3 wave data I am trying to use as OBC is from global WW3 provided by NCEP with 1 x 1.25 degree spatial resolution. The wave data is too coarse to be used for understanding of coastal dynamics(My ROMS grid resolution is approximately 1.7km (Curvilinear grids)). So I need to run SWAN and exchange data to ROMS, but I need to get open boundary condition to include swell traveling from deep water. And also need to include wind from NOAA GFS.
>The commands that allow you to include WW3 data as BC data are the Boundspec commands. That is how
>you would do this.What do you mean it does not apply to your situation? what is your situation? i
>thought you need bc data for swan?
I understand that. When I looked at the BOUNSPEC command, the SWAN user manual says there are two ways to define its open boundaries using BOUNDSPEC, 'SIDE' and 'SEGMENT'. And the manual suggests that we should not use 'SIDE' for curvilinear grids. So I have to use "SEGMENT".
We can choose either "CONSTANT" or "VARIABLE" to specify the type of boundary data and I chose "VARIABLE" as I have time-dependent gridded wave data. For the "VARIABLE" section, We can specify a file to be read by SWAN which includes TPAR file (time series) for only one location (not multiple locations) and 1D spectra and 2D spectra files, both of which I don't have as I have wave parameters, not spectral data. What I want to do is to include NCEP WW3 outputs (Hs, Tp, Dir) along all three boundaries (the fourth boundary is a land boundary) of my grids to include swell effects into my ROMS-SWAN coupling. Which sub-commands should I use? I initially thought the following commands would work, but they do not seem to work for my model case as I said the following 'obc_filename' needs to be either a TPAR file (only for one location) or a 1D/2D spectral file...
BOUND SHAPESPEC JONSWAP gamma 3.3 PEAK DSPR DEGREES
BOUNDSPEC SEGMENT IJ 0 150 374 150 VARIABLE FILE 'obc_filename'
Sorry I am asking a SWAN question in the ROMS community though it is something to do with ROMS and it may not be appropriate to do that.
Sincerely,
DJ
Re: ROMS-SWAN coupling (SWAN input data)
we use multiple TPAR files around the perimeter of our coarse grid, generated from WW3 data. Here is part of our input file:
& Boundary files ****************************************
BOUND SHAPESPEC JONSWAP PEAK DSPR DEGREES
BOUNDSPEC SEGMENT XY -54.3906 33.1171 -55.5271 35.8094 VARIABLE FILE 0 './forcings/TPAR2.txt'
BOUNDSPEC SEGMENT XY -55.5271 35.8094 -56.6636 38.5016 VARIABLE FILE 0 './forcings/TPAR3.txt'
BOUNDSPEC SEGMENT XY -56.6636 38.5016 -57.8002 41.1939 VARIABLE FILE 0 './forcings/TPAR4.txt'
BOUNDSPEC SEGMENT XY -57.8002 41.1939 -58.9367 43.8861 VARIABLE FILE 0 './forcings/TPAR5.txt'
BOUNDSPEC SEGMENT XY -58.9367 43.8861 -60.0732 46.5784 VARIABLE FILE 0 './forcings/TPAR6.txt'
BOUNDSPEC SEGMENT XY -84.5149 16.0319 -82.2658 17.0675 VARIABLE FILE 0 './forcings/TPAR7.txt'
BOUNDSPEC SEGMENT XY -82.2658 17.0675 -80.0168 18.1031 VARIABLE FILE 0 './forcings/TPAR8.txt'
BOUNDSPEC SEGMENT XY -80.0168 18.1031 -77.7677 19.1387 VARIABLE FILE 0 './forcings/TPAR9.txt'
BOUNDSPEC SEGMENT XY -77.7677 19.1387 -75.5187 20.1743 VARIABLE FILE 0 './forcings/TPAR10.txt'
BOUNDSPEC SEGMENT XY -73.2696 21.2099 -71.0206 22.2456 VARIABLE FILE 0 './forcings/TPAR11.txt'
each TPAR file has time dependent data in it. I dont have an example of that handy, but it has something like
TPAR
date hsig dwave pwave spread
date hsig dwave pwave spread
date hsig dwave pwave spread
....
look in the swan manual. it explains clearly.
-j
& Boundary files ****************************************
BOUND SHAPESPEC JONSWAP PEAK DSPR DEGREES
BOUNDSPEC SEGMENT XY -54.3906 33.1171 -55.5271 35.8094 VARIABLE FILE 0 './forcings/TPAR2.txt'
BOUNDSPEC SEGMENT XY -55.5271 35.8094 -56.6636 38.5016 VARIABLE FILE 0 './forcings/TPAR3.txt'
BOUNDSPEC SEGMENT XY -56.6636 38.5016 -57.8002 41.1939 VARIABLE FILE 0 './forcings/TPAR4.txt'
BOUNDSPEC SEGMENT XY -57.8002 41.1939 -58.9367 43.8861 VARIABLE FILE 0 './forcings/TPAR5.txt'
BOUNDSPEC SEGMENT XY -58.9367 43.8861 -60.0732 46.5784 VARIABLE FILE 0 './forcings/TPAR6.txt'
BOUNDSPEC SEGMENT XY -84.5149 16.0319 -82.2658 17.0675 VARIABLE FILE 0 './forcings/TPAR7.txt'
BOUNDSPEC SEGMENT XY -82.2658 17.0675 -80.0168 18.1031 VARIABLE FILE 0 './forcings/TPAR8.txt'
BOUNDSPEC SEGMENT XY -80.0168 18.1031 -77.7677 19.1387 VARIABLE FILE 0 './forcings/TPAR9.txt'
BOUNDSPEC SEGMENT XY -77.7677 19.1387 -75.5187 20.1743 VARIABLE FILE 0 './forcings/TPAR10.txt'
BOUNDSPEC SEGMENT XY -73.2696 21.2099 -71.0206 22.2456 VARIABLE FILE 0 './forcings/TPAR11.txt'
each TPAR file has time dependent data in it. I dont have an example of that handy, but it has something like
TPAR
date hsig dwave pwave spread
date hsig dwave pwave spread
date hsig dwave pwave spread
....
look in the swan manual. it explains clearly.
-j
Re: ROMS-SWAN coupling (SWAN input data)
Oops. Why didn't I think of multiple TPAR files to set up OBC.....
Many thanks, John. I will write some matlab script to automatically create TPAR files for operational forecasts. Will let you know how it works.
Just one last quick question. We indeed need to include Hs, Tp, Dir and directional spreading in TPAR files. As NOAA NCEP does not provide the directional spreading from WW3 outputs, how have you included the directional spreading? Have you actually run WW3 by yourself to get the spreading? Is there any other way for SWAN to analytically create directional spreading?
Thanks in advance.
Sincerely
DJ
DJ Kobashi
Griffith University
Gold Coast
Australia
Many thanks, John. I will write some matlab script to automatically create TPAR files for operational forecasts. Will let you know how it works.
Just one last quick question. We indeed need to include Hs, Tp, Dir and directional spreading in TPAR files. As NOAA NCEP does not provide the directional spreading from WW3 outputs, how have you included the directional spreading? Have you actually run WW3 by yourself to get the spreading? Is there any other way for SWAN to analytically create directional spreading?
Thanks in advance.
Sincerely
DJ
DJ Kobashi
Griffith University
Gold Coast
Australia
Re: ROMS-SWAN coupling (SWAN input data)
there is some guidance on this value in the SWAN manual. it may depend on the wave period. hopefully your boundary is far enough away that this value may not influence the results significantly.