- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello everyone:
the code gives error like below, if you have any suggestions I would appreciate it.
Note: I tried to declare L and Tmax but it still give the error
My code:
dimension YO(400), TERSY(400)
REAL N,L
REAL :: L
L = 100 ! Assign a proper value to L before passing it
character*14 FILEOU
AREA(B,YY,Z)=(B+Z*YY)*YY
PERI(B,YY,Z)=B+2*YY*(1+Z**2)**0.5
WRITE(*,8)
8 format(/,19X,'PLEASE ENTER THE OUTPUT FILE NAME',//)
READ(*,8008)FILEOU
8008 FORMAT(A14)
OPEN(3,FILE=FILEOU)
READ(*,*)QWE
WRITE(*,*)'DOWNSTREAM BOUNDARY CONDITION:'
WRITE(*,*)'SPILLWAY (1), BOTTOM OUTLET (2)'
READ(*,*)ICHECK
IF(ICHECK.EQ.1)then
WRITE(*,*)'ENTER SPILLWAY HEIGHT, P(m)'
read(*,*)P
WRITE(*,*)'ENTER SPILLWAY CREST LENGTH, L(m)'
READ(*,*)L
ENDIF
IF(ICHECK.EQ.2) THEN
WRITE(*,*)'ENTER DISCHARGE COEFFICIENT'
READ(*,*)C
WRITE(*,*)'ENTER DIAMETER OF BOTTOM OUTLET(m)'
READ(*,*)D
WRITE(*,*)'ENTER THE NUMBER OF BOTTOM OUTLETS'
READ(*,*)NNN
ENDIF
WRITE(*,*)'ENTER STEADY - STATE DISCHARGE (m^3/s)'
READ(*,*)QQ
WRITE(*,*)'ENTER BOTTOM WIDTH(m)'
READ(*,*)BB
WRITE(*,*)'ENTER SIDE INCLINATION'
READ(*,*)ZZ
WRITE(*,*)'ENTER BED SLOPE'
READ(*,*)S0
WRITE(*,*)'ENTER MANNING ROUGHNESS'
READ(*,*)N
WRITE(*,*)'ENTER Dx(m)'
READ(*,*)DXX
WRITE(*,*)'CHOOSE THE SOLUTION TECHNIQUE:'
WRITE(*,*)'COMPLETE DYNAMIC WAVE(5)'
WRITE(*,*)'DIFFUSIVE WAVE(6)'
WRITE(*,*)'KINEMATIC WAVE(7)'
READ(*,*)IMETHOD
WRITE(*,*)'ENTER TIME INTERVAL Dt, (sec)'
READ(*,*)Dt
WRITE(*,*)'ENTER THE HYDROGRAPH PARAMETERS :'
WRITE(*,*)'Qo(m^3/S)'
READ(*,*)QQ0
WRITE(*,*)'Qp (m^3/s) AND Tp(sec)'
READ(*,*)QQP
READ(*,*)Tp
WRITE(*,*)'Qf(m^3/s) AND Tn (sec)'
READ(*,*)QQF
READ(*,*)Tn
WRITE(*,*)'Tmax(sec)'
READ(*,*)
TmaxYNN=0.01
99 ETOTAL=(QQ*N)/S0**.5
ECHECK=AREA(BB,YNN,ZZ)**(5./3.)/PERI(BB,YNN,ZZ)**(2./3.)
IF(ETOTAL.LT.ECHECK)GOTO 100
YNN=YNN+.01
GOTO 99
100 W=QQ/(3.132*BB**2.5)
IF(ZZ.EQ.0)THEN
YCOB=W**.672717*1.022785
ELSE IF(ZZ.EQ.5) THEN
YCOB=W**.602684*0.748173
ELSE IF(ZZ.EQ.1) THEN
YCOB=W**.574105*0.657397
ELSE IF(ZZ.EQ.1.5) THEN
YCOB=W**.564345*0.625201
ELSE IF(ZZ.EQ.2) THEN
YCOB=W**.552851*0.584043
ELSE IF(ZZ.EQ.2.5) THEN
YCOB=W**.545379*0.552333
ELSE IF(ZZ.EQ.3) THEN
YCOB=W**.537298*0.523298
ELSE IF(ZZ.EQ.4) THEN
YCOB=W**.524667*0.487638
END IF
YC=YCOB*BB
IF(YNN.GT.YC)THEN
WRITE(3,551)
551 FORMAT('HYDRAULIC PARAMETERS RESULT IN MILD SLOPE' ,/)
ELSE
WRITE(3,552)
552 FORMAT('THIS PROGRAM IS NOT VALID FOR STEEP SLOPE CASE' ,/)
GO TO 553
ENDIF
IF(ICHECK.EQ.1) THEN
H0=0.1
98 X=P/H0
IF(X.GE.2.8)THEN
CO=2.175
ELSE
C0=.018*X**7-.218*X**6+1.084*X**5-2.872*X**4+4.37*X**3-3.847*X**&
&2+1.889*X+1.72
ENDIF
QCHECK=C0*L*H0**1.5
IF(QQ.LT.QCHECK) GOTO 101
H0=H0+.05
GOTO 98
101 YMAX = P+H0
ELSE
YMAX=0.0826*QQ**2/(NNN**2*C**2*D**4)
ENDIF
KZ=ZZ
WRITE(3,15)QQ,YMAX,YNN,BB,KZ,S0,N,DXX,YC
15 FORMAT(10X,'Q(m3/s =',F6.1,/,10x,'Ymax(m)=',F6.3,/,10X,'Yn(&
&m)=',F6.3,/,/,10X,'B(m)=',f6.1,/,10x,'Z=1V:',I1,'H',/,10X,'So&
&=',F6.5,/,10X,'n=',F6.3,/,10X,'DX(m)=',F6.3,/,10X,'Yc(m)=&
&',F6.3,///)
WRITE(3,50)
50 FORMAT(1X,'I',5X,'Z',6X,'Y',5X,'A',5X,'P',5X,'R',6X,'U',7X,'Sf',6X&
&,'H',7X,'HE',5X,'LENGTH',/,6X,'(m)'4X,'(m)',2X'(m2)',3X,'(m)',3X&
&,'(m)',3X,'(m/s)',11X,'(m)',5X,'(m)',/,78('At'),/)
T=0.
Z1=0.
Y1=Ymax
I=1
A1=AREA(BB,Y1,ZZ)
P1=PERI(BB,Y1,ZZ)
R1=A1/P1
U1=QQ/A1
S1=(U1*N/R1**(2./3.))**2
H1=Z1+Y1+U1**2/19.625201
WRITE(3,51)I,Z1,Y1,A1,P1,R1,U1,S1,H1
51 FORMAT(1X,I3,1X,F6.3,1X,F6.3,1X,2(F7.1,1X),2(F6.3,1X),F7.6,1X,F6.3&
&,1X,F6.2,3X,F7.1)
30 I=I+1
T=T+DXX
Z2=Z1+S0*DXX
Y2=0.
10 Y2=Y2+0.01
A2=AREA(BB,Y2,ZZ)
P2=PERI(BB,Y2,ZZ)
R2=A2/P2
U2=QQ/A2
S2=(U2*N/R2**(2./3.))**2
H2=Z2+Y2+U2**2/19.62
H22=H1+.4*DXX*(S1+S2)
HE=H2-H22
HHE=HE*100
IF(ABS(HE).LT.0.0074) GOTO 20
GOTO 10
20 FRU2 = U2/(9.81*Y2)**.5
DELY=HE/(1-FRU2**2+(3*S2*DXX)/(2*R2))
Y2=Y2-DELY
WRITE(3,51)I,Z2,Y2,A2,P2,R2,U2,S2,H2,HHE,T
IF(Y2.LE.YNN) GOTO 40
WRITE(*,*)I,Y2
TERSY(I)=Y2
Y1=Y2
A1=A2
P1=P2
R1=R2
U1=U2
S1=S2
Z1=Z2
H1=H2
S1=S2
GOTO 30
40 WRITE(3,75) T
75 FORMAT(//,10X,'TOTAL LENGTH IS',F7.1,'m',//)
YO(1) = YNN
YO(1) =YMAX
WRITE(*,*)T,I
DO 597 K =2,I-1
YO(K)=TERSY(I-K+1)
597 CONTINUE
WRITE(*,9)
9 FORMAT(//,15('!'),3X,'PLEASE WAIT COMPUTATION CONTUNIES',3X,15('!'&
&))
IF(IMETHOD.EQ.5)CALL COMPW(QQ,BB,S0,N,DXX,YNN,I,ZZ,YO,ICHECK,D,&
&C,NNN,QQ0,QQP,QQF,TP,TN,TMAX,DT,P,L)
IF(IMETHOD.EQ.6)&
&CALL DIFFW(QQ,BB,S0,N,DXX,YNN,I,ZZ,YO,QQP,QQ&
&F,TP,TN,TMAX,DT,P,L)
IF(IMETHOD.EQ.7)&
&CALL KINEW(QQ,BB,S0,N,DXX,YNN,I,ZZ,YO,QQ0,QQP,QQ&
&F,TP,TN,TMAX,DT,P,L)
553 STOP
END
error code:
main.f95:180:25: 180 | &F,TP,TN,TMAX,DT,P,L) | 1 Error: Missing actual argument for argument ‘l’ at (1) main.f95:183:25: 183 | &F,TP,TN,TMAX,DT,P,L) | 1 Error: Type mismatch in argument ‘tmax’ at (1); passed REAL(4) to INTEGER(4)
Link Copied

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page