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
			
			
									
									
						scorrection: freshwater flux correction
Re: scorrection: freshwater flux correction
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
						71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
Re: scorrection: freshwater flux correction
Thanks for explaining, John. I now have a better understanding of how bottom heat/salt fluxes are treated in ROMS.
			
			
									
									
						