I'm currently running a lake model where E and P are important in terms of removing and adding water to the domain. However I found that ROMS does not support this function.
I wondered if anybody added this feature to their model code and if so, could they share their experience.
As far as I can tell, I can follow 2 recipes. One in the routine "step2d_LF_AM3.h"
Code: Select all
IF (LuvSrc(ng)) THEN
DO is=1,Nsrc(ng)
i=SOURCES(ng)%Isrc(is)
j=SOURCES(ng)%Jsrc(is)
IF (((IstrR.le.i).and.(i.le.IendR)).and. &
& ((JstrR.le.j).and.(j.le.JendR))) THEN
IF (INT(SOURCES(ng)%Dsrc(is)).eq.0) THEN
cff=1.0_r8/(on_u(i,j)* &
& 0.5_r8*(zeta(i-1,j,knew)+h(i-1,j)+ &
& zeta(i ,j,knew)+h(i ,j)))
ubar(i,j,knew)=SOURCES(ng)%Qbar(is)*cff
ELSE
cff=1.0_r8/(om_v(i,j)* &
& 0.5_r8*(zeta(i,j-1,knew)+h(i,j-1)+ &
& zeta(i,j ,knew)+h(i,j )))
vbar(i,j,knew)=SOURCES(ng)%Qbar(is)*cff
END IF
END IF
END DO
END IF
Or I can follow the recipe of omega.F
! Apply mass point sources (volume vertical influx), if any.
!
Code: Select all
IF (LwSrc(ng)) THEN
DO is=1,Nsrc(ng)
ii=SOURCES(ng)%Isrc(is)
jj=SOURCES(ng)%Jsrc(is)
IF (((IstrR.le.ii).and.(ii.le.IendR)).and. &
& ((JstrR.le.jj).and.(jj.le.JendR)).and. &
& (j.eq.jj)) THEN
DO k=1,N(ng)
W(ii,jj,k)=W(ii,jj,k)+SOURCES(ng)%Qsrc(is,k)
END DO
END IF
END DO
END IF
However, I might be thinking about this problem in the wrong way, so if anybody has any ideas, it would be greatly appreciated!
Many thanks,
Ash