CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   Princeton Ocean Model POM (https://www.cfd-online.com/Forums/main/88240-princeton-ocean-model-pom.html)

swiych May 11, 2011 23:20

Princeton Ocean Model POM
 
Hi, i am new here. i had run a couple of searches for Princeton Ocean Model but i could not find a dedicated thread. i am posting this for us to share our knowledge or encounters with this CFD.


Right now, i am in need of assistance to find out a problem i've been trying to solve for weeks. My model which has been converted from original daily to hourly run, with the time steps adjusted and calculated well.
Example:
Days is changed to hours
Original:
IEND=DAYS*24*3600/DTI+2
After modification:
IEND=HOURS*3600/DTI+2

so let's say 3 days = 72 hours...the time steps would be equal.

The symptom of the problem is my model only can run in homogeneous state (Salinity and Temperature are constants). i am quite sure i had applied the correct boundary conditions as listed below:

1. Elevation uses Sommerfeld radiation BC is applied.
C EAST
DO 120 J=1,JM
GA=DTE*sqrt((H(imm1-1,j)+H(imm1,J))*.5*GRAV)
& /((DX(imm1-1,j)+DX(imm1,J))*.5)

ELF(imm1,J)=
& GA*(.25*el(imm1-1,j-1)+
& .5*el(imm1-1,j)+ .25*el(imm1-1,j+1))+
& (1-GA)*(.25*el(imm1,j-1)+
& .5*el(imm1,j)+ .25*el(imm1,j+1))
ELF(IM,J)=ELF(IMM1,J)

2. Barotropic velocity uses radiation along with specified velocity (ms-1) and elevation (m) to calculate the external waves . Example:
C EAST
DEPTH=(H(imm1,j)+H(im,j)/2.)
DXX=(DX(im,j)+DX(imm1,j))*0.5
GA=sqrt(GRAV/H(imm1,j))*DEPTH*DXX
uaf(im,j)=(uabound(imm1,j)* RAMP + GA*
& (el(imm1,j)-el1bound(imm1,j)*ramp))
& /(DEPTH*DXX)
UAF(im,j)=UAF(imm1,j)*ramp
VAF(IM,J)=0.0

i.el1bound= predefined elevation (tidal calculations)
ii.uabound= Averaged velocity from CORA data.

3. Baroclinic velocity uses radiation bcond similar to the elevation B.C.
4. The salinity and temperature boundary condition is also a radiating B.C.
example:
C EAST
U1=2.*U(IM,J,K)*DTI/(DX(IM,J)+DX(IMM1,J))
IF(U1.LE.0.) THEN
UF(IM,J,K)=T(IM,J,K)-U1*(TBound(im,J,K) -T(IM,J,K))
VF(IM,J,K)=S(IM,J,K)-U1*(sBound(im,J,K) -S(IM,J,K))
ELSE
UF(IM,J,K)=T(IM,J,K)-U1*(T(IM,J,K)-T(IMM1,J,K))
VF(IM,J,K)=S(IM,J,K)-U1*(S(IM,J,K)-S(IMM1,J,K))
IF(K.NE.1.AND.K.NE.KBM1) THEN
WM=.5*(W(IMM1,J,K)+W(IMM1,J,K+1))
1 *DTI/((ZZ(K-1)-ZZ(K+1))*DT(IMM1,J))
UF(IM,J,K)=UF(IM,J,K)-WM*(T(IMM1,J,K-1)-T(IMM1,J,K+1))
VF(IM,J,K)=VF(IM,J,K)-WM*(S(IMM1,J,K-1)-S(IMM1,J,K+1))
ENDIF
ENDIF
5. The vertical and the rest are predefined boundary conditions from the original script.

i hope someone could help me point out where the problem could lie. Thanks.


All times are GMT -4. The time now is 15:39.