scorrection: freshwater flux correction

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
xupeng66
Posts: 79
Joined: Sat Mar 06, 2010 3:38 pm
Location: University of Washington

scorrection: freshwater flux correction

#1 Unread post by xupeng66 »

Hello,

I have a question about the CPP option 'scorrection'. In set_vbc.F, that option appears in the lines below. My understanding is that, when 'scorrection' is defined, the surface freshwater flux 'stflx(:,:,isalt) will be corrected by multiplying with the surface salinity. If so, what happens to the bottom freshwater flux 'btflx'? The commands on lines 379 and 400 suggest the same correction is done for bottom freshwater flux with or without 'scorrection'. I am curious to know the rationale behind always conducting such correction at the bottom but only optionally at the surface?

Thanks!
Guangyu

351 !
352 !-----------------------------------------------------------------------
353 ! Multiply fresh water flux with surface salinity. If appropriate,
354 ! apply correction.
355 !-----------------------------------------------------------------------
356 !
357 # if defined FOUR_DVAR && defined NL_BULK_FLUXES
358 DO j=JstrR,JendR
359 DO i=IstrR,IendR
360 IF (Nrun.eq.1) THEN
361 # if (defined BULK_FLUXES && defined EMINUSP) || defined ATM_COUPLING
362 EmP=EminusP(i,j)
363 # else
364 EmP=stflx(i,j,isalt)
365 # endif
366 ELSE
367 EmP=stflx(i,j,isalt)
368 END IF
369 # if defined SCORRECTION
370 stflx(i,j,isalt)=EmP*t(i,j,N(ng),nrhs,isalt)- &
371 & Tnudg(isalt,ng)*Hz(i,j,N(ng))* &
372 & (t(i,j,N(ng),nrhs,isalt)-sss(i,j))
373 # elif defined SRELAXATION
374 stflx(i,j,isalt)=-Tnudg(isalt,ng)*Hz(i,j,N(ng))* &
375 & (t(i,j,N(ng),nrhs,isalt)-sss(i,j))
376 # else
377 stflx(i,j,isalt)=EmP*t(i,j,N(ng),nrhs,isalt)
378 # endif
379 btflx(i,j,isalt)=btflx(i,j,isalt)*t(i,j,1,nrhs,isalt)
380 END DO
381 END DO
382 # else
383 DO j=JstrR,JendR
384 DO i=IstrR,IendR
385 # if (defined BULK_FLUXES && defined EMINUSP) || defined ATM_COUPLING
386 EmP=EminusP(i,j)
387 # else
388 EmP=stflx(i,j,isalt)
389 # endif
390 # if defined SCORRECTION
391 stflx(i,j,isalt)=EmP*t(i,j,N(ng),nrhs,isalt)- &
392 & Tnudg(isalt,ng)*Hz(i,j,N(ng))* &
393 & (t(i,j,N(ng),nrhs,isalt)-sss(i,j))
394 # elif defined SRELAXATION
395 stflx(i,j,isalt)=-Tnudg(isalt,ng)*Hz(i,j,N(ng))* &
396 & (t(i,j,N(ng),nrhs,isalt)-sss(i,j))
397 # else
398 stflx(i,j,isalt)=EmP*t(i,j,N(ng),nrhs,isalt)
399 # endif
400 btflx(i,j,isalt)=btflx(i,j,isalt)*t(i,j,1,nrhs,isalt)
401 END DO
402 END DO
403 # endif
404 # endif

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

Re: scorrection: freshwater flux correction

#2 Unread post by wilkin »

I believe that code is the boundary condition defined in terms of a freshwater flux given as a velocity being converted into a virtual salt flux for the purposes of imposing the vertical boundary condition on salinity. ROMS does not have a conservation equation for freshwater, only salt.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

xupeng66
Posts: 79
Joined: Sat Mar 06, 2010 3:38 pm
Location: University of Washington

Re: scorrection: freshwater flux correction

#3 Unread post by xupeng66 »

Thanks for explaining, John. I now have a better understanding of how bottom heat/salt fluxes are treated in ROMS.

Post Reply