Problema de Fortran: error FOR1768: falta la instrucción END o falta la unidad de programa (pos
Utilicé el formato de archivo F para depurarlo y resolver algunos errores. ¡No sé si se puede hacer! ¡Puedes probarlo! Documento F, formato fijo, 18/mar/2012
! Cálculo de la curva de fuente de agua de la sección trapezoidal fuera del tanque: WTSF.FOR
Exterior Fundador HK, FHO, FE
REAL I, N, M, J1, J2
Dimensiones H (201), V (201 ), S (201)
Común Q, I, N, M, B, CSN, SRM, Alpha, DS, DR, V2, J1, J2, ES1, ES2
OPEN(2, ARCHIVO = 'resultados.
TXT')! ARCHIVO DE DATOS DE SALIDA
ESCRIBIR(*,1001)
ESCRIBIR(2,1001)
1001 FORMATO (4(5X,A//)) p>
p>
ESCRIBIR (*, *) 'Entrada de teclado Q, I, N, M, B'
LEER (*, *) Q, I, N, M, B
ESCRIBIR (*, 1000) Q, I, N, M, B
ESCRIBIR (2, 1000) Q, I, N, M, B
formato 1000 ( 5X,'Q=',F6.2,'(M**3/seg)",4X,"I=',F8.5,4X,
1'N =',F6 .4, 5X, 'M=', F4.2, 4X, 'B=', F7.2, '(M)')
Alfa = 1.05
CSN = (1-I * I) * 0,5
SRM = (1 M * M) ** 0,5
! Calcular profundidad crítica
HK = ERFENFA(FOUNDER HK, 0.0, 40.0, 0.0005)
ESCRIBIR (*, 1010) HK
ESCRIBIR (2, 1010) HK
Formato 1010 (5X, 'profundidad crítica HK=', F9.6, '(M)')
¡Calcule la profundidad normal del agua, pendiente plana, cuando la pendiente inversa es alto Toma el valor más grande
SI (I.LE.0) ENTONCES
HO = 100
ESCRIBIR (*, *)' pendiente inferior I lt; = 0 , sin profundidad normal "
Escribe (2*)' talud inferior I lt; = 0, sin profundidad normal"
HE = ERFENFA(FHO, 0.0, 40.0, 0.0005 )
ESCRIBIR(*,1020)HO
ESCRIBIR(2,1020)HO
1020 FORMATO (5X, 'HO =', F7.4, '(M)')
ESCRIBIR(*1021)
1021 FORMATO(//3(5X,A/)/)
ESCRIBIR(*, *) 'Entrada HD, DS, NS'
LEER (*, *) HD, DS, NS
H (1) = HD
A = (B M * H (1)) * Alto (1)
R = A / (B 2 * Alto (1) * SRM)
V (1) = Q / A
ji=(X(1)*N)*2/R**(4.0/3)
ES1=CSN*Alto(1)Alfa*V(1)* * 2/19,6
C se calcula para determinar la dirección del nivel del agua: DR = 1, en el lado aguas arriba de la sección de control; DR = -1, en la sección de control aguas abajo
SI ((HDgt; HK)! O. ((HD == HK) Y (HD lt; HO))) ENTONCES
HO = -1
HO = 1
! Valor de criterio de valoración del intervalo HB dicotómico
IF ((Hong Kong gt; HO) y (HDgt; Hong Kong)).
1 ((HOgt; Hong Kong) y (HD lt; Hong Kong))) ENTONCES
HB = Dólar de Hong Kong
HB = Ho p>
S(1)=0.0
! C de cada sección H(L) Calcular profundidad y caudal V(L)
DO 10 L = 2, NS 1
IF (ABS (H (L-1)- HO)lt; 0.0005 ) ENTONCES
H (L) = HO
V (L) = V (L-1)
H (L) = ERFENFA (FE, H (L-1), HB, 0.00001)
V(L)=V2
ES1=ES2
ENDIF
S(L)=(L-1)*DS
10 CONTINUAR
! Resultado de salida de C
Write(2*)
Write(2, 1030) HD, DS, NS
formato 1030 (5X, 'Control HD = Profundidad', F6.3, 'Espaciado NS (M)', 5X, 'Espaciado entre nodos DS =', F7.2, '(M)',
1 5X, 'Número =', i3 /)
SI (DR lt; 0), ENTONCES
WRITE(2, *) 'Sección de control de flujo lento aguas abajo'
WRITE(2, * ) 'Bajíos rápidos, porción controlada aguas arriba'
ENDIF
gt; write (2, 1035)
1035 FORMAT (/7X, 'L', 10X ,'H(L)',10X,'V(L)',9X,'S(L)'/18X,
1'(m)",10X,'(m/s) ", 9X" (metro)'/ 5X,
2'---------------------- ----------------- -------')
ESCRIBA (2, 1040) (L, H (L), V (L), S (L), L = 1, NS 1)
Formato 1040 (5X, I3, 7X, F7.3, 7X, F7.3, 4X, F10.2)
Fin
! Encuentre la función de profundidad crítica
Función Fundador Hong Kong (H)
REAL I, N, M
Común Q, I, N, M, B, CSN, SRM, Alpha, DS, DR, V2, J1, J2, ES1, ES2
FHK = 9,8 * CSN * ((B M * H) * Alto) ** 3-α * Q * Q * ( B 2*ancho*alto) final
Función FHO (H)
REAL I, N, M
Común Q, I, N, M , B , CSN, SRM, Alpha, DS, DR, V2, J1, J2, ES1, ES2
FHO = Q * N / I * 0.5 * (B 2 * SRM * Alto) ** ( 2.0 / 3) - ((B M×H) * H ** (5.0 / 3))
Función fe (H)
REAL I, N, M, J1, J2
p>
Común Q, I, N, M, B, CSN, SRM, Alpha, DS, DR, V2, J1, J2, ES1, ES2
A = (B M × H) * Alto V 2 = Q/A
J2 = (N*V2)*2/(A/(B 2*Alto*SRM))**(4.0/
3)
ES2 = CSN * Alfa de H * V2 * V2/19.6
FE = ES1, ES2 DR * (I-(J1 J2)/2) * DS p>
! Programa de funciones dicotomías
Función ERFENFA(F, X1, X2, EPS)
A = X1
B = X2
10 FA = F (A)
FB = F (B)
SI (FA * FB.GT.0) ENTONCES
ESCRIBE (*, * )' (X1, X2) Sin intervalo de enraizamiento, vuelva a ingresar X1, , 30
ERFENFA = (A B) * 0.5
IF (ABS (BA). LT.EPS) devuelve
FM = F (ERFENFA)
p>SI (FM * FA.LT.0) ENTONCES
B = ERFENFA
ELSE BR /gt; A = ERFENFA
50 CONTINUAR
Fin