PHOTON USE p;parphi 50 50 1 set ref vec .1 * view z msg water levels at successive times. Press any key to pause do kk=1,m con p1 z kk fi;1 enddo pause;cl msg x-direction velocity contours. Press any key to pause do kk=1,m con u1 z kk fi;1000 enddo pause;cl msg y-direction velocity contours. Press any key to pause do kk=1,m con v1 z kk fi;1000 enddo pause;cl msg pollutant contours. Press any key to pause do kk=1,m con pol z kk fi;01 enddo pause;cl ENDUSE #cls DISPLAY The transient flow into and out of a harbour is simulated by means of the shallow-water compressible-flow analogy. This is effected by: * setting RHO2 = -rhonom, as a signal to GXRHO (in file GXDEBS.HTM); and * by changing PRESS0 from the value set in the SEASURF PIL fragment, namely : 9.81 * ZWLAST * RHONOM to : 9.81 * DZUPPER * RHONOM where DZUPPER is the depth of the upper cells. ENDDIS #pause GROUP 1. Run title and other preliminaries TEXT(Pollutant Flow In A Tidal Harbour TITLE REAL(CYCLETIM, TIDERANGE) INTEGER(NCYCLES,NSTEPS) TIDERANGE=0.5; CYCLETIM=12*3600; NCYCLES=1; NSTEPS=200 GROUP 2. time grid specification STEADY=F; LSTEP=NSTEPS*NCYCLES GRDPWR(T,LSTEP,NCYCLES*CYCLETIM,1.0) XULAST=100; YVLAST=100; ZWLAST =2 NX=40; NY=40; NZ=1 ** use macros to specify a uniform grid and solve for velocities and pressure #UNIGRID #solvel GROUP 7. Variables stored, solved & named STORE(RHO1,PRPS) SOLVE(POL) GROUP 9. Properties of the medium (or media) rho1=1000 * [(p1-p0) / ( 1000 * g * zwlast)] ** 0.5 RHO2=1.0; RHO1=COMPRESS; DRH1DP=COMPRESS REAL(RHONOM); RHONOM=1000.0 RHO1B=0.5 ; PRESS0= 9.81 * ZWLAST * RHONOM RHO1A=RHONOM / PRESS0 ** RHO1B; RHO1C=0.0 GROUP 11. Initialization of variable or porosity fields FIINIT(RHO1)=RHONOM ** introduce seawall, jetty and island by way of blockages PATCH(SEAWALL,INIVAL,NX/2,NX/2,NY/5,4*NY/5,1,1,1,LSTEP) COVAL(SEAWALL,PRPS,0.0,198.0) PATCH(JETTY,INIVAL,3*NX/4,3*NX/4,4*NY/5,NY,1,1,1,LSTEP) COVAL(JETTY,PRPS,0.0,198.0) PATCH(ISLAND,INIVAL,4*NX/5,9*NX/10,NY/5,2*NY/5,1,1,1,LSTEP) COVAL(ISLAND,PRPS,0.0,198.0) ** Tidal boundary by way of time patch PATCH(TIMINLET,WEST,1,1,1,NY,1,1,1,LSTEP) COVAL(TIMINLET,P1,FIXVAL,GRND3); ITIMA=NSTEPS; ITIMB=1; ITIMC=NSTEPS pressure amplitude TIMA=9.81*RHONOM*TIDERANGE ** bottom friction PATCH(BOTTOM,HWALL,1,NX,1,NY,1,1,1,LSTEP) COVAL(BOTTOM,U1,1.0, 0); COVAL(BOTTOM,V1,1.0, 0) ** pollutant source PATCH(POLLUTNT,CELL,3*NX/4,3*NX/4,NY/2,NY/2+1,1,1,1,LSTEP) COVAL(POLLUTNT,POL,FIXFLU,100) GROUP 15. Termination of sweeps LSWEEP=10 GROUP 16. Termination of iterations LITER(P1)=50 GROUP 17. Under-relaxation devices REAL(DTF);DTF=CYCLETIM*0.0001 RELAX(U1,FALSDT,DTF); RELAX(V1,FALSDT,DTF) SPEDAT(SET,GXMONI,TRANSIENT,L,F) GROUP 18. Limits on variables or increments to them VARMAX(RHO1)=5.0*RHONOM; VARMIN(RHO1)=0.2*RHONOM GROUP 22. Spot-value print-out IXMON=3*NX/4; IYMON=3*NY/4; IZMON=1; TSTSWP=-2; NPLT=1 GROUP 23. Field print-out and plot control ** line-prinnter plots PATCH(TIMPLT1,PROFIL, 1,1, 1,1, 1,1, 1,LSTEP) COVAL(TIMPLT1,U1,0.0,0.0); COVAL(TIMPLT1,RHO1,0.0,0.0) COVAL(TIMPLT1,P1,0.0,0.0) PATCH(TIMPLT2,PROFIL, NX,NX, 1,1, 1,1, 1,LSTEP) COVAL(TIMPLT2,RHO1,0.0,0.0) COVAL(TIMPLT2,P1,0.0,0.0) PATCH(TIMPLT3,PROFIL, 3*NX/4,3*NX/4, 1,1, 1,1, 1,LSTEP) COVAL(TIMPLT3,U1,0.0,0.0); COVAL(TIMPLT3,RHO1,0.0,0.0) COVAL(TIMPLT3,P1,0.0,0.0) ** settings enabling PHOTON to plot every eighth time step IDISPA=NSTEPS/8;IDISPB=1;IDISPC=LSTEP STOP