43500 

 43600 

 43700 

 43800 

 43900 

 44000 

 44100 

 44200 



44 300 

 44400 

 44500 

 44600 

 44700 

 44800 

 44900 

 45000 



45 100 

 45200 

 45300 

 45400 

 45500 

 45600 

 45700 

 45800 

 45900 

 46000 



46 100 

 46200 

 46300 

 46400 

 46500 

 46600 

 46700 

 46800 

 46900 

 47000 



47 100 

 47200 

 47 300 

 47400 

 47500 

 47600 

 47700 

 47800 

 47900 

 48000 

 48100 

 48200 

 48300 

 48400 

 48500 

 48600 

 48700 

 48800 

 48900 

 4 9000 

 49100 

 49200 

 49300 

 49400 

 49500 

 49600 

 49700 

 49800 

 49900 

 50000 

 50100 

 50200 

 50300 

 50400 

 50500 

 50600 

 50700 



Yd. JM)=Y(I,JM)-(ALTER*(DEEP(I. JM+1)-DEEP(I,dM))/(DEEP(I.JM)-DUM)) 

 0YEXP(I.dM+1)=0YEXP(I, JM+1)+DX/DELT*ALTER*(DEEP(I.JM+1)-DEEP(I,JM) 



) 

 GO TO 43 

 44 CONTINUE 



DUM=-BERM/2. 



IF(JP,NE.1) DUM=DEEP(I , JP-1 ) 



ALTER = ((0.5/SL0PEM*(DEEP(I , dP+ 1 ) -DUM) ) - ( Y ( I , JP+1)-Y(I . JP)) )/ 



* ( 1 .0+((DEEP(I,JP+1)-DEEP(I,JP))/(DEEP(I,dP)-DUM))) 

 Y( I ,dP+1 )=Y( I . JP+1 ) + ALTER 



Yd, JP)=Y(I , JP)-(ALTER*(DEEP(I.dP+1)-DEEPd.JP))/(DEEPd,dP)-DUM)) 

 0YEXPd,JP+1 )=OYEXP(I ,dP+1)+DX/DELT*ALTER*(DEEP(I,dP+1)-DEEP(I,dP) 



) 

 GO TO 43 

 42 WEO( I , JMAX+1 )=Y(I , dMAX+ 1 )-Y(I , JMAX ) 

 48 CONTINUE 

 C*IF WE GET SENT HERE, LOOP 444 WILL CATCH THE CROSSED CONTOURS. 



4 1 CONTINUE 

 C*N0W WE CAN COMPUTE OX'S AND OY ' S ! 



DO 318 I=2,IMAX 

 C*ALL IMPLIC AND EXPLIC MOVEMENT OF YZERO WILL BE TAKEN CARE OF HERE 

 OYCI , 1 ) = -BERM*DX*(Y(I , 1)-Y0LD( I , 1 ))/DELT 

 YZEROd )=YZERO(I ) + (Y(I , 1 )-YOLDd . 1 )) 

 319 DO 318 d=1 .UMAX 



0X( I ,d)=RHS1( I,J)-S3(I,d)*YIMPd,d) + S3d,J)*YIMP(I-1,d) 

 318 0Y( I , J+1 )=C0NST6(I , 0+ 1 ) * (0 . 5* ( YIMP( I , J) + YOLD(I , d ) -YIMP(I , J+ 1 ) 



* -YOLD( I ,d+1 ) )+WEO(I ,d+1 )) 

 DO 323 d=1 ,dMAX 



0X( 1 ,d)=0X(2.d) 

 323 0X(IMAX+1 ,d)=OX(IMAX.d) 

 C*TOTAL OYS WILL BE COMP FROM IMPLIC AND EXPLIC VALUES. THEN ZERO OYEXP 

 DO 39 1=1 , IMAX+1 

 DO 39 d=1 ,dMAX+3 

 OYd ,d)-OY(I ,d)+OYEXP(I , J) 

 39 OYEXPd ,d)=0.0 

 C*THIS CHECK WILL BOMB THINGS OUT IF CONTOURS HAVE CROSSED. 

 DO 444 11=1 , IMAX 

 DO 444 dd=1 ,dMAX 

 C*IF CONTOURS CROSS AT ANY TIME WANT PROGRAM TO STOP! 

 IF(Y(II ,dd) .LT. Ydl ,dd+1 ) ) GO TO 444 

 WRITE(6, 103) 



151 



152 



WRITE(6,*/) NUNIV 

 DO 150 d=1 ,dMAX 



WRITE(6, 100) 

 DO 151 d=1,dMAX 



WRITE(6, 101 ) 

 DO 152 J=1 ,dMAX 



WRITE(6. 100) 



(0X( I ,d) , 1=1 , IMAX) 

 (OYd ,d) . 1 = 1 , IMAX) 



,/) 



(Yd, d), 1 = 1, IMAX) 

 103 F0RMAT(2X, 'THE CONTOURS HAVE CROSSED AND SOMETHING IS WRONG' 

 DO 19 d=1 ,dMAX 

 19 WRITE(6,100) (YOLDd ,d), 1=1 , IMAX) 

 GO TO 445 

 444 CONTINUE 



WRITE(6,*/) NUNIV 

 C*THE FOLLOWING STATEMENT DETERMINES AT WHAT FREO EVERYTHING IS WRITTEN! 



IF(MOD(NUNIV. 10) NE .O) GO TO 1 

 C*LET'S WRITE ALL OF IT OUT. 

 WRITE(6,926) NUNIV 

 926 F0RMAT(2X, 'THE TOTAL ELAPSED NUMBER OF TIME-STEPS. NUNIV= ',I5^/> 



800 F0RMAT(2X, 14(F8 .4) ) 

 C* DO 900 1 = 1 , IMAX 



C*900 WRITE(6,800) ( THETA( I , d ) , d= 1 , dMAX ) 



C* DO 903 d=1 ,dMAX+1 



C*903 WRITE(6,801) DEEP(1,d) 



C* DO 906 1=1 , IMAX 



C*906 WRITE(6,800) ( Hd , d) , d= 1 , dMAX ) 



C* DO 755 d=1 ,dMAX 



C*755 WRITE(6,800) ( C0NST6 ( I , d ) , I = 1 , IMAX ) 



801 F0RMAT(2X, 14(F8.2)) 

 WRITE (6, 107) 



107 F0RMAT(/,2X, 'THE LONGSHORE TRANSPORTS , OX , 



DO 15 d=1 ,dMAX 

 15 WRITE(6,100) (OX(I ,d) , 1=1 , IMAX) 



FOLLOW' ) 



72 



