VEST -01 GERAÇÃO ESTOCÁSTICA DE VAZÕES DE UM RIO |
Aplicativo em linguagem FORTRAN que foi desenvolvido para Geração Estocástica de vazões de um rio com base em vazões observadas.
// JOB T |
||
|
||
// FOR |
||
C |
|
************************** |
C |
|
VEST – VAZÕES ESTOCÁSTICAS |
C |
|
************************** |
C |
|
Programa que gera vazões estocásticas a
partir de observações |
C |
|
efetuadas |
|
|
|
C |
|
Roberto Massaru Watanabe |
C |
|
13 de julho de 1970 |
|
|
|
|
|
DIMENSION WA(100) |
|
|
DIMENSION
V(12,50),E(12),S(12),CV(12),R(12),BETA(12),GAMA(12) |
|
|
DIMENSION VN(12,50),WE(100) |
|
|
COMMON RHO,BN |
|
|
DATA WE/100*´ ´/ |
|
|
DATA WA/100*´
´/,ASTER/´*´/,VALOR/´L´/,BCO/´´/,VALER/´G´/ |
|
|
DATA IL,IW/8,5/ |
|
|
READ(IL,100)N |
100 |
|
FORMAT(I3) |
|
|
DO 202 I=1,N |
|
|
READ(IL,101)(V(J,I),J=1,12) |
101 |
|
FORMAT(14X,12(1X,F4.1)) |
202 |
|
CONTINUE |
|
C |
CALCULO DA MEDIA E DESVIO PADRAO |
|
|
XN=N |
|
|
WRITE(IW,102) |
102 |
|
FORMAT(1H ,10X,´MES
MEDIA VAZOES
DESVIO PADRAO´//) |
|
|
DO 200 I=1,12 |
|
|
A=0.0 |
|
|
B=0.0 |
|
|
DO 201 J=1,N |
|
|
A=A+V(I,J) |
201 |
|
B=B+V(I,J)**2 |
|
|
E(I)=A/XN |
|
|
S(I)=SQRT(B/(XN-1.0)-E(I)**2) |
|
|
WRITE(IW,103)I,E(I),S(I) |
103 |
|
FORMAT(1H ,10X,I2,8X,F5.1,11X,F7.3) |
200 |
|
CONTINUE |
|
C |
CALCULO DAS COVARIANCAS E CORRELACOES |
|
|
WRITE(IW,104) |
104 |
|
FORMAT(///,11X,´MÊS
CORRELACOES´//) |
|
|
DO 500 I=1,12 |
|
|
A=0.0 |
|
|
IF(I-1)260,250,260 |
250 |
|
K=12 |
|
|
DO 301 J=2,N |
301 |
|
A=A+(V(I,J)-E(I))*(V(K,J-1)E(K)) |
|
|
CV(I)=A/(XN-1) |
|
|
GO TO 302 |
260 |
|
K=I-1 |
|
|
DO 300 J=1,N |
300 |
|
A=A+(V(I,J)-E(I)*(V(K,J)-E(K)) |
|
|
CV(I)=A/XN |
302 |
|
R(I)=CV(I)/(S(I)*S(K)) |
|
|
WRITE(IW,105)I,R(I) |
105 |
|
FORMAT(1H ,10X,I2,8X,F7.3) |
500 |
|
CONTINUE |
|
C |
CALCULO DE COEFICIENTES |
|
|
WRITE(IW,106) |
106 |
|
FORMAT(///,11X,´MÊS
BETA
GAMA´//) |
|
|
DO 1000 I=1,12 |
|
|
IF(I-1) 700,600,700 |
600 |
|
K=12 |
|
|
GO TO 800 |
700 |
|
K=I-1 |
800 |
|
BETA(I)=R(I)*S(I)/S(K) |
|
|
GAMA(I)=S(I)*SQRT(1.0-R(I)**2) |
|
|
WRITE(IW,107)I,BETA(I),GAMA(I) |
107 |
|
FORMAT(11X,I2,6X,F7.3,3X,F7.3) |
1000 |
|
CONTINUE |
|
C |
GERACAO DE SERIE ESTOCASTICA |
|
|
V1=V(1,1) |
|
|
VN(1,1)=V1 |
|
|
RAN=1.0 |
|
|
RHO=7.0**13 |
|
|
BN=10.0**10 |
|
|
LL=12 |
|
|
XL=LL |
|
|
DO 5000 J=1,N |
|
|
DO 4000 I=1,12 |
|
|
IF (J-1)1060,1050,1060 |
1050 |
|
IF(I-1)1060,4000,1060 |
1060 |
|
Z=0.0 |
|
|
DO 1100 L=1,LL |
|
|
CALL RANF(RAN) |
1100 |
|
Z=Z+RAN |
|
|
W=)Z-XL/2.0)/SQRT(XL/12.0) |
|
|
IF(I-1)1120,1110,1120 |
1110 |
|
K=12 |
|
|
GO TO 1150 |
1120 |
|
K=I-1 |
1150 |
|
V1=E(I)+BETA(I)*(V1-E(K))+W*GAMA(I) |
|
|
VN(I,J)=V1 |
4000 |
|
CONTINUE |
5000 |
|
CONTINUE |
|
C |
IMPRESSAO DAS VAZOES |
|
|
DO 802 I=1,N |
|
|
DO 802 J=1,12 |
802 |
|
WRITE(IW,801) J, V(J,I),VN(J,I) |
801 |
|
FORMAT(1H ,10X,I2,5X,F7.2,5X,F7.2) |
|
C |
GRAFICO |
|
|
WRITE(IW,771) |
771 |
|
FORMAT(107X,12HVAZAO
(M3/S),/,14X,3H0.0,20X,5H100.0,20X,5H200.0, |
|
1 |
20X,5H300.0,20X,5H400.0,/,15X,100(1H*)) |
|
|
DO 773 I=1,N |
|
|
DO 773 J=1,12 |
|
|
X=1.+99.*V(J,I)/400. |
|
|
XE=1.99.*VN(J,I)/400. |
|
|
K=X |
|
|
KE=XE |
|
|
KE=IABAS(KE) |
|
|
WA(25)=ASTER |
|
|
WA(50)=ASTER |
|
|
WA(75)=ASTER |
|
|
WA(1)=ASTER |
|
|
WE(1)=ASTER |
|
|
WA(100)=ASTER |
|
|
WE(100)=ASTER |
|
|
WA(K)=VALOR |
|
|
WE(KE)=VALER |
|
|
WRITE(IW,774)J,(WA(L),L=1,100) |
|
|
WRITE(IW,777)(WE(L),L=1,100) |
|
|
WA(K)=BCO |
|
|
WE(KE)=BCO |
773 |
|
CONTINUE |
|
|
WRITE(IW,776) |
|
|
CALL EXIT |
776 |
|
FORMAT(16X,100(1H*)) |
774 |
|
FORMAT(1H ,8X,I2,5X,100A1) |
777 |
|
FORMAT(1H+,15X,100A1) |
|
|
END |
// DUP |
||
|
||
// FOR |
||
|
|
SUBROUTINE RANF(RAN) |
|
|
COMMON RHO, BN |
|
|
RN=RHO*RAN |
|
|
XX=RN/BN |
|
|
IXX=XX |
|
|
XXI=IXX |
|
|
RAN=XX-XXI |
|
|
RETURN |
|
|
END |
// DUP |
||
|
||
// XEQ VEST |
||
|
|
|
Processamento:
Gráfico:
NOTA: Naquela época, ano de 1970, não havia recursos de computação gráfica e qualquer tentativa de visualização de resultados era feito por meio de artifícios como o acima de imprimir pontos em formulários contínuos. Dava trabalho mas valia a pena e era um avanço muito grande conseguir fazer isso, ainda mais com a linguagem FORTRAN que era muito limitada.
ET-12\fluvial\VEST1.htm em 20/03/2020, atualizado em 20/03/2020.