Problems with river point source configuration

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
User avatar
pintosV
Posts: 2
Joined: Wed May 08, 2019 2:43 pm
Location: Osaka University

Problems with river point source configuration

#1 Unread post by pintosV »

Dear ROMS users,
Maybe this is a very silly problem, but I am a new user, and after trying to read many posts about river configuration, I cannot understand what is wrong with my settings, so here is my problem. I am trying to add one river to my application to use it as a point source of inert tracer, and I got into trouble; I do not know if because I have “missed” some CPP option, because of something else, or if it is a combination of CPP+ other things… I saw in many posts that analytical CPPs are needed for forcing the tracer analytically, but as far as I read, I did not see any “special” option for nc river-forcing files (I am attaching the CPP options I used).

I am using COAWST distribution, and I am forcing ROMS with WRF. I was following the tutorial in https://www.myroms.org/wiki/River_Runoff, and I built my river forcing using the Matlab script create_roms_rivers.m (modified by me to add the tracer) that is distributed among the Matlab toolbox of COAWST.

I want to simulate the river discharge of total nitrogen(TN) in my river as a tracer and to do so, I have hourly simulation river results for discharge (m3 s-1) and TN (kg m-3). I first tried to give the tracer not constant concentration (to use my simulated load) and gave it the same structure in the forcing file as to the river transport, but I do not know if this is correct because maybe I am horribly misunderstanding this, since the other river tracers (temp and salt) have vertical distributed structure.

Code: Select all

river_dye_01ID = netcdf.defVar(nc_forc,'river_dye_01','double', [riverdimID river_timedimID]);
netcdf.putAtt(nc_forc,river_dye_01ID,'long_name','river total nitrogen concentration');
netcdf.putAtt(nc_forc,river_dye_01ID,'units','kilograms/meter^3');
netcdf.putAtt(nc_forc,river_dye_01ID,'time','river_time');
netcdf.putAtt(nc_forc,river_dye_01ID,’ field’,’ river tracer mass, scalar, series’);
Because I was not sure of it, I also tried to give constant concentration and the same structure to the tracer as for temp and salt:

Code: Select all

river_dye_01ID = netcdf.defVar(nc_forc,'river_dye_01','double',[riverdimID s_rhodimID river_timedimID]);
netcdf.putAtt(nc_forc,river_dye_01ID,'long_name','river tracer mass');
netcdf.putAtt(nc_forc,river_dye_01ID,'units','kilograms/m^3');
netcdf.putAtt(nc_forc,river_dye_01ID,'time','river_time');
netcdf.putAtt(nc_forc,river_dye_01ID,’ field’,’ river tracer mass, scalar, series’);
I turned LuvSrc=T, LtracerSrc = T F T, and also turned on the option for writing tracer in history and average files, and started my model. The model ran, it did not blow up, and each step of calculation took like 50% more time (so it is doing something extra with the river forcing), but there is any result for the tracer in the history files or the average one… the variable does not exist.. Also, I checked with a very low temperature if I could see the influence of the river in the coastal water, but I could not either.
I’ve re-checked the indexes of the river Xposition and Eposition (because Matlab and Fortran have different start as I read), same as the direction sign, and I think they are ok…

I will really appreciate your comments and help! Thanks in advance,

Valentina
Attachments
tracer_1r.h
(1.71 KiB) Downloaded 236 times

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

Re: Problems with river point source configuration

#2 Unread post by wilkin »

Looks like you missed this part of the guidance at https://www.myroms.org/wiki/River_Runoff ...
If passive tracers are being used, by having set #define T_PASSIVE and the associated options in roms.in, then for those tracers ...
In your tracer_1r.h file you need ...

Code: Select all

#define T_PASSIVE
Also, I'm not sure you want to have #define UPWELLING active. Since you are making changes to the set-up, best practice would be to code your own analytical options in the relevant Functionals and keep them in your project directory where you compile.

You need to initialize the passive tracers even if their only source is the river. You can add them (set to zero) to the 3-D initial conditions file, or use #define ANA_PASSIVE and configure ana_passive.h.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

User avatar
pintosV
Posts: 2
Joined: Wed May 08, 2019 2:43 pm
Location: Osaka University

Re: Problems with river point source configuration

#3 Unread post by pintosV »

Wilkin,

Thank you very much for your answer! :D
I was very confused about the CPP options, and I saw that, but when I looked for the description of that CPP on the list of wikiRoms I couldn't find it, so I didn't know if it was necessary only for analytical forcing or not :oops:

I was not sure about the initial conditions either...I was thinking about it too, because the inert tracer should be defined, same as all the other variables...
Also, i did not understand why some users build bdy and clm files including the tracer...is it that necessary ??

To your questions of why am I using the UPWELLING option, this is because if I don't the temperature drops without stopping inside my domain (I'm trying to set conditions for one of the basins of the Seto Inland Sea)... I fought weeks to adjust temperature and salinity inside the domain, and that was the only solution I've found that works (very well also). Since the Domain is "shallow"(no more than 40m depth) and my area is pretty enclosed, is it wrong to consider it as a "very big" channel??

Again, thank you for the super fast answer!

Valentina

Post Reply