|
|
@ -45,14 +45,18 @@ c---------------------------------------------------------------------c
|
|
|
|
WRITE(*,'(2A15)') 'resXY', 'resZ'
|
|
|
|
WRITE(*,'(2A15)') 'resXY', 'resZ'
|
|
|
|
WRITE(*,42) resXY, resZ
|
|
|
|
WRITE(*,42) resXY, resZ
|
|
|
|
WRITE(*,*)
|
|
|
|
WRITE(*,*)
|
|
|
|
WRITE(*,'(5A15)') 'newcondTS','outputTS','dt1','dt2',
|
|
|
|
WRITE(*,'(5A15)') 'newcondTS','outputTS','dt1','dt2','maxoutputs'
|
|
|
|
1 'maxoutputs'
|
|
|
|
|
|
|
|
WRITE(*,50) newcondTS, outputTS, dt,dtnew, maxoutputs
|
|
|
|
WRITE(*,50) newcondTS, outputTS, dt,dtnew, maxoutputs
|
|
|
|
WRITE(*,*)
|
|
|
|
WRITE(*,*)
|
|
|
|
|
|
|
|
c WRITE(*,'(5A15)') 'tot_dead_age', 'HDIFF', 'VDIFF', 'mass_pp'
|
|
|
|
|
|
|
|
c * ,'c_init'
|
|
|
|
|
|
|
|
c WRITE(*,60) tot_dead_age, HDIFF, VDIFF, mass_pp,c_init
|
|
|
|
|
|
|
|
c BMM modifications made 8/1/96 to print out extra diffusivities ver 2.2
|
|
|
|
WRITE(*,'(3A15)') 'tot_dead_age', 'mass_pp', 'c_init'
|
|
|
|
WRITE(*,'(3A15)') 'tot_dead_age', 'mass_pp', 'c_init'
|
|
|
|
WRITE(*,60) tot_dead_age, mass_pp, c_init
|
|
|
|
WRITE(*,60) tot_dead_age, mass_pp, c_init
|
|
|
|
WRITE(*,*)
|
|
|
|
WRITE(*,*)
|
|
|
|
WRITE(*,'(A)') 'Diffs: Element types not listed use the first'
|
|
|
|
WRITE(*,'(A)') 'Diffusivities: Element types not listed use the'
|
|
|
|
|
|
|
|
* //' first'
|
|
|
|
WRITE(*,'(3A15)') 'Element type', 'HDIFF','VDIFF'
|
|
|
|
WRITE(*,'(3A15)') 'Element type', 'HDIFF','VDIFF'
|
|
|
|
i=1
|
|
|
|
i=1
|
|
|
|
DO WHILE (EDIFF(i).ne.-1)
|
|
|
|
DO WHILE (EDIFF(i).ne.-1)
|
|
|
@ -125,7 +129,8 @@ c *** Read in the new pollutant releases.
|
|
|
|
DO 60 w=1, num_pollwins
|
|
|
|
DO 60 w=1, num_pollwins
|
|
|
|
READ(4,*,ERR=200,end=205) d,(poll(i,d),i=1,4)
|
|
|
|
READ(4,*,ERR=200,end=205) d,(poll(i,d),i=1,4)
|
|
|
|
IF (d.gt.num_pollwins.or.d.lt.1) THEN
|
|
|
|
IF (d.gt.num_pollwins.or.d.lt.1) THEN
|
|
|
|
PRINT *,'ERROR - Pollutant window'
|
|
|
|
PRINT *,'ERROR - Pollutant window not as '//
|
|
|
|
|
|
|
|
1 'expected.'
|
|
|
|
STOP
|
|
|
|
STOP
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
masspB=mass_pp
|
|
|
|
masspB=mass_pp
|
|
|
@ -157,8 +162,6 @@ c-----------------------------------------------------getflowconditions
|
|
|
|
c---------------------------------------------------------------------c
|
|
|
|
c---------------------------------------------------------------------c
|
|
|
|
c purpose: c
|
|
|
|
c purpose: c
|
|
|
|
c To input velocity field. c
|
|
|
|
c To input velocity field. c
|
|
|
|
c This reads one time step as called from walkem c
|
|
|
|
|
|
|
|
c If it is a 2D file then it makes an artificial 3d one c
|
|
|
|
|
|
|
|
c---------------------------------------------------------------------c
|
|
|
|
c---------------------------------------------------------------------c
|
|
|
|
INCLUDE '3duparms.cb'
|
|
|
|
INCLUDE '3duparms.cb'
|
|
|
|
INCLUDE '3dmesh.cb'
|
|
|
|
INCLUDE '3dmesh.cb'
|
|
|
@ -173,7 +176,7 @@ c vel(3,i) = Velocity to Z at node i
|
|
|
|
|
|
|
|
|
|
|
|
INTEGER*2 nsurf(1),nop(20,1),ic(1),ielist(1)
|
|
|
|
INTEGER*2 nsurf(1),nop(20,1),ic(1),ielist(1)
|
|
|
|
INTEGER i,k,j,no3dn,ndg,no3de,key
|
|
|
|
INTEGER i,k,j,no3dn,ndg,no3de,key
|
|
|
|
REAL vel1,vel2,depth,vel4,vel5,vel6,tet,dfct,wsel(1),wsel1(1)
|
|
|
|
REAL vel1,vel2,vel4,vel5,vel6,tet,dfct,wsel(1),wsel1(1)
|
|
|
|
real dhdt(1),prsm(3,6),brck(3,8),xi(8),eta(8),zeta(8)
|
|
|
|
real dhdt(1),prsm(3,6),brck(3,8),xi(8),eta(8),zeta(8)
|
|
|
|
real cord(3,1),a(2,2)
|
|
|
|
real cord(3,1),a(2,2)
|
|
|
|
real*8 ao(1),detj
|
|
|
|
real*8 ao(1),detj
|
|
|
@ -187,57 +190,23 @@ c *** Read in the velocity field
|
|
|
|
key=0
|
|
|
|
key=0
|
|
|
|
|
|
|
|
|
|
|
|
if(dimopt(1:2).eq.'10') then
|
|
|
|
if(dimopt(1:2).eq.'10') then
|
|
|
|
cBM2019 updating reads to OUTBNRMA format
|
|
|
|
|
|
|
|
if(compact) then
|
|
|
|
if(compact) then
|
|
|
|
c read(2,err=210,end=215) TET,no3dn,NDG,no3de,
|
|
|
|
read(2,err=210,end=215) TET,no3dn,NDG,no3de,
|
|
|
|
c 1 ((VEL(K,J),K=1,2),wsel(j),VEL(3,j),J=1,No3dn)
|
|
|
|
1 ((VEL(K,J),K=1,2),wsel(j),VEL(3,j),J=1,No3dn)
|
|
|
|
WRITE(*,*) 'No compact!'
|
|
|
|
|
|
|
|
STOP
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
|
|
|
|
cDRC 04/06/99 IYRR added for RMA10v6.5
|
|
|
|
c read(2,err=210,end=215) TET,no3dn,NDG,no3de,IYRR,
|
|
|
|
|
|
|
|
c 1 ((VEL(K,J),K=1,2),wsel(j),vel4,vel5,vel6,
|
|
|
|
|
|
|
|
c 2 VEL(3,j),J=1,No3dn),(DFCT,J=1,No3dE)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
read(2,err=210,end=215) TET,no3dn,NDG,no3de,IYRR,
|
|
|
|
read(2,err=210,end=215) TET,no3dn,NDG,no3de,IYRR,
|
|
|
|
1 ((VEL(K,J),K=1,2),depth,vel4,vel5,vel6,
|
|
|
|
1 ((VEL(K,J),K=1,2),wsel(j),vel4,vel5,vel6,
|
|
|
|
2 VEL(3,j),wsel(j),J=1,no3dn),
|
|
|
|
2 VEL(3,j),J=1,No3dn),(DFCT,J=1,No3dE)
|
|
|
|
3 (DFCT,J=1,no3de),
|
|
|
|
|
|
|
|
4 (vel7,j=1,no3dn)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c WRITE(IRMAFM) TETT,NP,NDG,NE,IYRR,
|
|
|
|
|
|
|
|
c 1 ((VSING(K,J),K=1,6),VVEL(J),WSLL(J),J=1,NP),(DFCT(J),J=1,NE),(VSING(7,J),J=1,NP)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C Output RMA results file contains
|
|
|
|
|
|
|
|
c 1 time in hours (Julian)
|
|
|
|
|
|
|
|
c 2 number of nodes
|
|
|
|
|
|
|
|
c 3 obsolete counter of degrees of freedom (set to 5) NDF=6
|
|
|
|
|
|
|
|
c 3a number of elements
|
|
|
|
|
|
|
|
c 4 year
|
|
|
|
|
|
|
|
c 5 VSING subscript(1) x-vel by node
|
|
|
|
|
|
|
|
c 6 VSING subscript(2) y-vel by node
|
|
|
|
|
|
|
|
c 7 VSING subscript(3) depth by node
|
|
|
|
|
|
|
|
c 8 VSING subscript(4) salinity by node
|
|
|
|
|
|
|
|
c 9 VSING subscript(5) temperature by node
|
|
|
|
|
|
|
|
c 10 VSING subscript(6) sus-sed by node
|
|
|
|
|
|
|
|
c 11 VVEL w-vel by node
|
|
|
|
|
|
|
|
c 12 WSLL water surface elevation
|
|
|
|
|
|
|
|
c 13 DFCT stratification multiplier by element
|
|
|
|
|
|
|
|
c 14 VSING subscript(7) time derivative of depth by node
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print*,'Velocity file read at time',TET
|
|
|
|
print*,'Velocity file read at time',TET
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
else
|
|
|
|
c read(2,err=210,end=215) TET,no3dn,((vel(k,j),k=1,2),
|
|
|
|
read(2,err=210,end=215) TET,no3dn,((vel(k,j),k=1,2),
|
|
|
|
c 1 wsel(j),j=1,no3dn),(vel4,j=1,no3dn)
|
|
|
|
1 wsel(j),j=1,no3dn),(vel4,j=1,no3dn)
|
|
|
|
WRITE(*,*) 'No RMA2!'
|
|
|
|
|
|
|
|
STOP
|
|
|
|
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
c
|
|
|
|
c
|
|
|
|
c-------For 2D case - START
|
|
|
|
c-------for 2D case
|
|
|
|
c-------artificially create a 3D velocity field
|
|
|
|
c
|
|
|
|
c-------The 2D field could be from RMA2 or a depth averaged RMA10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(no3dn.ne.np) then
|
|
|
|
if(no3dn.ne.np) then
|
|
|
|
do i=1,np
|
|
|
|
do i=1,np
|
|
|
|
ic(i)=0
|
|
|
|
ic(i)=0
|
|
|
@ -366,11 +335,7 @@ c
|
|
|
|
c
|
|
|
|
c
|
|
|
|
c----------calculate dhdt(i) for next time step
|
|
|
|
c----------calculate dhdt(i) for next time step
|
|
|
|
c
|
|
|
|
c
|
|
|
|
|
|
|
|
c goto 40
|
|
|
|
cBM2019
|
|
|
|
|
|
|
|
WRITE(*,*) 'Shouldnt be here'
|
|
|
|
|
|
|
|
STOP
|
|
|
|
|
|
|
|
c
|
|
|
|
|
|
|
|
if(dimopt(1:2).eq.'10') then
|
|
|
|
if(dimopt(1:2).eq.'10') then
|
|
|
|
if(compact) then
|
|
|
|
if(compact) then
|
|
|
|
read(2,err=30,end=30) TET,no3dn,NDG,no3de,
|
|
|
|
read(2,err=30,end=30) TET,no3dn,NDG,no3de,
|
|
|
@ -397,9 +362,12 @@ cDRC 04/06/99 IYRR added for RMA10v6.5
|
|
|
|
30 continue
|
|
|
|
30 continue
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
c-------For 2D case - END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 key=1
|
|
|
|
40 key=1
|
|
|
|
|
|
|
|
c do i=1,No3dn
|
|
|
|
|
|
|
|
c do j=1,3
|
|
|
|
|
|
|
|
c vel(j,i)=0.0
|
|
|
|
|
|
|
|
c enddo
|
|
|
|
|
|
|
|
c enddo
|
|
|
|
RETURN
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
|
|
210 WRITE(*,*) ' *** Error in velocities! *** '
|
|
|
|
210 WRITE(*,*) ' *** Error in velocities! *** '
|
|
|
@ -419,55 +387,21 @@ c---------------------------------------------------------------------c
|
|
|
|
include '3dmesh.cb'
|
|
|
|
include '3dmesh.cb'
|
|
|
|
integer j,k
|
|
|
|
integer j,k
|
|
|
|
integer nfix,nfix1,nref
|
|
|
|
integer nfix,nfix1,nref
|
|
|
|
integer*2 imat(1),ncorn,iem,ndep,netyp
|
|
|
|
integer*2 imat(1),ncorn,nfixh,iem,ndep,netyp
|
|
|
|
integer*4 nfixh !BM2019 changed from integer*2
|
|
|
|
|
|
|
|
real width(1),paxis,alfa,th
|
|
|
|
real width(1),paxis,alfa,th
|
|
|
|
|
|
|
|
integer*2 nop(20,1),nsurf(1),ielist(1)
|
|
|
|
cBM2019
|
|
|
|
real cord(3,1),spec(3)
|
|
|
|
c the 3dg file now has cord as real*8
|
|
|
|
|
|
|
|
c and nop as real*4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
integer*2 nop(20,1),nsurf(1)
|
|
|
|
|
|
|
|
integer nop4(30000,20),nsurf4(30000)
|
|
|
|
|
|
|
|
integer*2 ielist(1) ! this one OK as it is created internally
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
real*8 cord8(3,30000) ! BM2019 hack because of real*8
|
|
|
|
|
|
|
|
real cord(3,1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
real spec(3)
|
|
|
|
|
|
|
|
real*8 ao(1)
|
|
|
|
real*8 ao(1)
|
|
|
|
real diffs(2,1)
|
|
|
|
real diffs(2,1)
|
|
|
|
c
|
|
|
|
c
|
|
|
|
if(dimopt(1:2).eq.'10') then
|
|
|
|
if(dimopt(1:2).eq.'10') then
|
|
|
|
|
|
|
|
read(9,err=10) NP,NE,NPM,NES,((CORD(k,j),SPEC(k),K=1,3),
|
|
|
|
read(9,err=10) NP,NE,NPM,NES,((CORD8(k,j),SPEC(k),K=1,3),
|
|
|
|
1 ALFA,NFIX,NFIX1,AO(J),NSURF(J),J=1,NP),
|
|
|
|
1 ALFA,NFIX,NFIX1,AO(J),NSURF4(J),J=1,NP),
|
|
|
|
|
|
|
|
2 (NDEP,NREF,J=1,NPM),
|
|
|
|
2 (NDEP,NREF,J=1,NPM),
|
|
|
|
3 ((NOP4(k,j),K=1,20),NCORN,IMAT(J),NETYP,TH,
|
|
|
|
cdrc16/6/99 3 ((NOP(k,j),K=1,20),NCORN,IMAT(J),IMAT(J),TH,
|
|
|
|
|
|
|
|
3 ((NOP(k,j),K=1,20),NCORN,IMAT(J),NETYP,TH,
|
|
|
|
4 NFIXH,J=1,NE),(WIDTH(J),J=1,NP)
|
|
|
|
4 NFIXH,J=1,NE),(WIDTH(J),J=1,NP)
|
|
|
|
|
|
|
|
|
|
|
|
do j=1,np
|
|
|
|
|
|
|
|
do k=1,3
|
|
|
|
|
|
|
|
cord(k,j)=cord8(k,j)
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
c write(58,'(I5,3F20.3)') j,(cord(k,j),k=1,3)
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
do j=1,ne
|
|
|
|
|
|
|
|
do k=1,20
|
|
|
|
|
|
|
|
nop(k,j)=nop4(k,j)
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
c write(59,'(i5,20I8)') j,(nop(k,j),k=1,20)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
do j=1,np
|
|
|
|
|
|
|
|
nsurf(j)=nsurf4(j)
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
cBM2019
|
|
|
|
|
|
|
|
write(*,*) 'Stop: Geometry: No 2D'
|
|
|
|
|
|
|
|
stop
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
read(9,err=10) NP,NE,((CORD(K,J),K=1,2),ALFA,cord(3,j),
|
|
|
|
read(9,err=10) NP,NE,((CORD(K,J),K=1,2),ALFA,cord(3,j),
|
|
|
|
1 J=1,NP),((NOP(K,J),K=1,8),IMAT(j),PAXIS,IEM,J=1,NE)
|
|
|
|
1 J=1,NP),((NOP(K,J),K=1,8),IMAT(j),PAXIS,IEM,J=1,NE)
|
|
|
|
do i=1,np
|
|
|
|
do i=1,np
|
|
|
@ -512,9 +446,6 @@ c print *,i,(nop(k,i),k=1,nen)
|
|
|
|
c
|
|
|
|
c
|
|
|
|
c----------generate nodes below surface
|
|
|
|
c----------generate nodes below surface
|
|
|
|
c
|
|
|
|
c
|
|
|
|
cbm2019
|
|
|
|
|
|
|
|
write(*,*) 'Stop: no 2d!'
|
|
|
|
|
|
|
|
stop
|
|
|
|
|
|
|
|
np3=np
|
|
|
|
np3=np
|
|
|
|
do n=1,np
|
|
|
|
do n=1,np
|
|
|
|
cord(3,n)=0.0
|
|
|
|
cord(3,n)=0.0
|
|
|
|