ORSTOM
Institut Français de Recherche Scientifiquepour le Développement en Coopération
NOTICE D'UTILISATION
DU MODELE MODIBI
Eric SERVAT
Département FUnité de Recherche 604
Centre ORSTOMde Montpellier
Novembre 1986
SOMMAIRE
AVANT PROPOS
1) - Appareils - Langage
2) - Nature des données nécessaires - Constitution des fichiers
3) - Déroulement du programme
4) - Edition des résultats
Page
1
2
2
4
4
ANNEXE 1
ANNEXE 2
Liste des variables utilisées par le programme MODIBI
Listing du programme MODIBI
AVANT PROPOS
Cette notice d'utilisation du modèle MODIBI vient en complément de la note"Présentation de trois modèles globaux conceptuels déterministes: CRECS,MODGLO et MODIBI - Eric SERVAT - UR F4".
Ce travail a été réalisé avec la collaboration de H. DOSSEUR et A. DEZETTER
La notice que nous présentons correspond à l'utilisation du modèle en phasede calage. A cette fin, elle comprend la description du fichier des débitsobservés. La version opérationnelle du modèle est strictement identique àcela près qu'elle ne comporte pas ce fichier des débits observés. Nousl'avons nommée MODISIM et son utilisation est la même que celle de MODIBI.
1
1) - Appareils - Langage
La version proposée du modèle IBIZA à pas de temps journalier, MODIBI, peutêtre utilisée sur un ordinateur personnel type IBM PC, XT ou AT ou encoresur toute autre machine dite "compatible".
Le programme a été écrit en FORTRAN et compilé à l'aide du compilateurFORTRAN MICROSOFT.
2) - Nature des données nécessaires - Constitution des fichiers
2.1. Données nécessaires:
Les données nécessaires au fonctionnement du modèle sont des donnéesjournalières de pluies et de débits (ceux-ci n'étant utilisés que pour lecalage de MODIBI). Il faut également pouvoir disposer de données d'évapotranspiration potentielle, calculées ou mesurées, en sachant que l'onutilise ici une "moyenne mensuelle journalière". C'est-à-dire que pour unmois donné, l'ETP journalière a une valeur donnée.
2.2. Constitution des fichiers
Le programme utilise quatre fichiers d'entrée un fichier pluiesjournalières, un fichier débits journaliers, un fichier évapotranspirationset un fichier paramètres. Ces quatre fichiers ont· un nom ayant une mêmeracine (8 lettres maximum), qui est le plus souvent le nom du bassin, avecune extension en 3 lettres propre à chaque fichier :
. PAl pour le fichier paramètres,DEI pour le fichier débits,PLI pour le fichier pluies,
. EVI pour le fichier évapotranspirations.
Certains cas peuvent se présenter où l'on utilisera un fichier regroupantles pluies et les débits. L'extension en trois lettres propre à ce fichiersera alors .061. Cette éventualité peut apparaître lorsque l'on utilise laversion MODIBI2 du modèle.
* Fichier pluies journalières :
La structure du fichier est la suivante
- 1ère ligne : format (16, lX, 14)
le numéro d'identification de la station pluviométrique est codé en 16,l'année d'observation en 14.
2ème à 32ème ligne: Pour ces 31 lignes, on a retenu deux formats possibles au choix de l'utilisateur
2
a) 18, 14, 12, IX, 12 (D, 2Ù), Il
le code de la station est exprimé en 18, l'année en 14, le jour (de 1à 31) en 12, puis on trouve 12 valeurs correspondant au débit observé lemême jour de chaque mois et exprimées en notation exponentielle spéciale,et enfin un code dont la valeur est généralement 0, ce qui signifie que lesdébits sont en m3/s.
b) 18, 14, 12, IX, 12 F6.2
le code de la station est exprimé en 18, l'année en 14, le jour (de 1à 31) en 12, puis on trouve 12 valeurs correspondant au débit observé lemême jour de chaque mois et exprimées en m3/s.
La première ligne en 18, IX, 14 est répétée à chaque changement d'année.
* Fichier évapotranspirations :
La structure du fichier est la suivante
- 1ère ligne : IX, Il
on lit en Il le code IEVAP.
Si IEVAPlaquellenuelles.
=on
0,aura
le fichier ne comprendra qu'uneporté les "moyennes mensuelles
seule autre ligne surjournalières" interan-
Si IEVAP = l, on lira des "moyennes mensuelles journalières" différentespour chaque année et on aura donc une ligne par année.
- Quel que soit le cas, la ou les lignes qui suivent ont le même formatlX, 14, 12 FS.1
on lit l'année en 14 puis 12 données d'évapotranspiration potentiellemoyenne journalière en mm/j.
* Fichier paramètres :
Le fichier paramètres de MODIBI comprend 5 lignes
- 1ère ligne: format (IX, 211, 2(lX, 14), 3(lX, 13»
on lit sur cette première ligne: ITABQ, ITABP, JAN1, JAN2, lORD, JDEB,JFIN.
- 2ème ligne: format (12\)
on lit ici 1POSTE
3
- 3ème ligne: format (10 FS.3)
on lit sur cette ligne: (CTHIES (1), l = l, IPOSTE)
- les 4ème et Sème lignes sont lues avec le même format: format (9 F8.3)
sur la 4ème ligne, on trouve: SURFBV, HNAPO, DEFDEB, DEFCO, RN01, HO, HNO,A, COEF.
sur la Sème ligne, on trouve: Q, XT, X, Pl, P2, FN, AL, R2.
On renverra le lecteur à la liste alphabétique des variables pour avoir lasignification de chacune des abréviations utilisées.
3) - Déroulement du programme
Cette version du modèle IBIZA au pas de temps journalier a été conçue dansun souci de commodité d'utilisation qui soit maximum.
Dans cette optique, le sous-programme LECPARAM permet une modification etune visualisation rapide de tous les paramètres du modèle.
Après avoir lancé le programme en tapant: MODIBI ou MODIBI2 selon laversion, on répond aux différentes questions qui viennent s'afficher surl'écran. Les fichiers pluie, débit et évapotranspiration auront été constitués au préalable et on leur aura affecté un même nom générique suivi d'uneextension qui sera respectivement .PLI, .DEI, .EVI. Le fichier paramètres,lui, peut être constitué à l'écran.
Comme on le voit sur la copie d'écran jointe,aisément les valeurs des paramètres du modèle.le calage proprement dit de MODIBI.
il est possible de modifierCeci facilitera grandement
Les différents paramètres fixés pour l'essai en cours, les calculs sonteffectués et les résultats fournis.
4) - Edition des résultats
Pour chaque année simulée on édite le tableau des différentes lames mensuelles et annuelles: pluie, écoulement observé, écoulement calculé,évaporation réelle (ER1) et divers écoulements intermédiaires permettant demieux connaître le cheminement de l'eau (ce qui fournit une aide certaineen phase de calage) : EBAS l, EBAS 2, EC, RS.
On édite également les coefficients d'autocorrélation d'ordre lORD, donnéed'entrée, calculés sur les débits moyens journaliers observés et calculés.
On peut également obtenir, en option, le tableau des pluies journalièreset/ou le tableau des débits journaliers observés et calculés.
On présente ici un exemple de ces sorties.
4
Hom qénérique des fichiers? KUO
Hombre d annees de pluie? 3
Unité de sortie des tableaux de résultats?ElcranIl mprimante
Choix: e
Ouel est le format du flchier18.14.12.11.12113.211>. Il18.14.12.11.121 F6. 2)
Entrez 1 ou 2 2Le fichier de paramétres kUO. PU existe-t-il ? O/N 0
PARAHETRES DE CALAGE DU MODELE
1. 0001. 000
. 400
67.800. 000
DEFDEB 1500.0002000.00070. 000
000
Surface du bassin versant km2 SURFBV :Niveau initial du réservoir nappe HMAPODéficit initial du réservoir horizon véqétalDlmension du réservoir horizon véqétal DEFCODlmension du réservoir rés.uyaqe lent HNOl :Dlmension du ré.ervoir de partition HO: 1000.DImension du ré.ervoir nappe HNO: 50.000Coefficient de p••••q. pluie ob.ervée-pluie réelle A :Coefficient de transformation de l'évaporation COEFCoefficient d'écoulement r.pide 0 : .700Coefficient de débit du réservoir de partition xr : 150Coefficient d' hétéroqénéité du couv.rt véqétal X .960Coefficient de fuit. du réservoir nappe vers les aquiféres profonds PlPart de l'eau infiltrée qui va dan. le re.el'voir nappe P2 .800Ouantité maximale journaliére d'infiltration (1/10 mm) FN 10.000Coefflcient de tarissement (j-l) du réservoir nappe AL .060Coefficient de ressuyaqe lent (h-1l R2 : .004
Voulez-vous corriqer un ou plu.ieurs de ces paramétres ? O/N N
AUTRES PARAMETRES
Annee de début des débits observésAnnee de fin dea débit. observés
19811983
Impression du tableau des debits journ.llers IITA80Impression du tableau des plu.ies Journalléres (ITA8P
O~NOH
O=HOH, =OUI), • OUI)
oo
Ordre du coefficlent d'autocorrélation lORD: 3Jour de début du c.lcul JDE8 1Jour de fin du calcul JFIH: 365
Sombre de postes pluviométrlques IPOSTECoeffIcient de chaque poste
Poste nO 1 coefflclent 1.000Pos te nO
Voule2-vous corriqer un ou plusleurs de ces paramètres? O/H N
Copie d'écran - Réglage des paramètres de MDDIBI
• ••••• ;Il ••• ~.a ••••••••••••• =•• a •••• : •• =••• ;1 •••• a •• a.c •• ;lI: ••• :a;,:. _":';=~=;;iI.a=l..lI;'~C'.':;"':::;'
Tabl~au dvs lame. mensuvlles ~t annu~11~5
Anlle .. : 1981Station: 98765432
•••••••••••••• .-: •••••••••••••••• .-: •• .-: ••••••••••• :.5' •••••• • : ••••• ;= .. ~:;.: •• ;.I: •• .c ••••• ==:;O:;
Uni tois : mm
-LAHE 1 JANVIER 1 FEVRIER 1 HARS AVRI L HAl JUIN 1 JUILLET 1 AOUT ISEPTEHBREI OCTOBRE : NUVEH~REI DECEH8RE/ T Ah*_ .. ------ ... -----------------_ ... - .. _------ ... _----------------------_ .. ----- ... ---------------~------------------------_._------------~-------
.0
. 4
.0.0
.0.0
.0
.0
.0.0
.0R5
EC
Pluie 1.0 .0 .0 10.6 111.5 102.4 1 272.2 1 201.4 120.7 10 0 0 618.6*----_ ... _--------_ .. _-- .. _--------- ... _------------------------------------------ .. -------------- .. --------~-----_.-------~---_._-----------_ ...E Obsi. 0 . 0 1 . 0 .. 0 . 2 . 1 1 6. 5 1 1 4. 8 9. 7 2 9 . 2 0 34 J
.... ----------_ .. _----------_ .... - .. _--------------------------------------------------- ... -------------------------------------------------- .ECalcl·o .01.01 ..11 1.8 3.61 6.7114.81 7.81 1.41.2 .0 36~A __ .. __ .. ... .. .. ._
E BAS11 . 0 .0 1 .0 1 . 1 1 .6 1.5 1 2. 3 1 5. 8 1 3. 1 1 . 5 1 . 0 0 1 3 ~A .. • •
E 8A521o .0 .0 1.' .• 1.8 1 2.4 '1 4.5 1 3.3 1 1.0 10 1 140-------- ... ------------------------------------------------------------------_ .. -------------------------------~------------~-------_._-_.Ev rul.o .0 .0 20.3 90.3 123.7 1 129.5 142.8 138.) 94.9 )33 13.1 1 7861
*--------------------------------------------_ .. _--------- .. _-------------------------------------------------._-----------.-------.0 1 .0 .0 .00 0 .0 1
-------------------------------------- .. ----------_ ... - .. ----- ... ---------------- .. _- ... _------------------------------------~---_ .. -._-_._-_ ... 3 1 2.0 4.5 1.4 .0 0 .0 1
~
~~
ID
0ID
1IIolirt....ID1II
Evaporatlons mo~enn••4. 8 5. 8 6. 4
Coefflci .. nts d'autocorrcalculé sur le. d'bit.calculé .ur 1•• débit.
mensuelle. journaliere. ~n mm/J6.4 6.8 6.3 4.8
lation d' ordre 3ournalier•• imulé.: .6246ournalier. ob.ervé.: .7473
4. 7 4. 8 5. 5 5. 2 5. 0
ANNEXE 1 Liste des variables utiliséespar le programme MODIBI
LISTE DES VARIABLES UTILISEES PAR LE PROGRAHHE HODlBl.FOR
Cette listede ses subroutlnes,compilateur.
contient toutes les variables du programmeelle est issue du fichie-r .LST fO'Jrnl par
etle
Les calculs sont effectuis en 111De mm, les param~tres de- lafonction de production DEF (hauteurs de réservoirs par ex.) sont doncexprimés en 1110e mm.
Pour les subroutines, l'Itoile située dans la çolonne "p"indique Que la variable est un paramitre de la subro~tine, elle estdonc Commune au programme principal et à la subroutine.
Name Type Ot't'set P
DEFCF REAL
COVLOL REALCTHIES REAL
DEFCO REALDEFDEB REALDU REAL
EBAS1 REALEBAS2 REALECT REALER1 REALETR REALEVAS REAL
nom du fichier débits observés
nom du fichier @vaporationsnom du fichier paramitresnom du fichier pluies
rapport Dluie moyenne reelle sur le bassin1 pluie observéecoefficient de tarissement du rlservoirnappe en j-1contient les 12 mois de l'annéecoefficient de passage de l'ETP rlgionaleà l'ETP localecoefficient d'autocorrélation d'ordre ZORDsur la série des débits journal ierscalculéscoefficient d'a~tocorrélation d'ordre lORDsur la série des débits observéscoefficient de corrllation entre les lamesmensuelles calculées et observéescovariance Lames Obs Lames Calecoefficient attribu' à chaque po.tepluviométrique (10 maxi)Hat initial de O. déficit du réservoirhorizon végétal, au début du pas de tempsdimension du réservoir horizon végétalHat de 0 à t=Ddimension variable de la zone r'humidifi~e
de l'horizon vjgétalécoulement de ressUyage lentécoulement de tarissement de la nappeécou 1ement tota 1 produ i t dans 1a j ournH'évaporation r.elle en l/lDe mmévaporation réelle en l/lDe mmevaporation moyenne mensuelle journaliéreen mml J
7794S860
8856
8888
9344
9340
7582
8968
77408468774077267726849684828454
S84088368964
933293289324
100607754
10064
REAL
REAL
REAL
REAL
CHAR*14CHAR*14CHARit1CHAR~l
CHARII14CHAR*14CHAR*laCHAR*14
REAL
CHAR*9REAL
AL
A
CORC
CORa
CORR
CHOISCOEF
FILFILDEBFlLEPAFILEPLFILEPQFILEVAFILPAGFILPLU
IBLANC INTEGER*4IDENTP INTEGER*4IEVAP INTEGER*4
FN
HNAPHNAPOHNOHN01HOllB
REAL
REALREALREALREALREALINTEGER*4INTEGER*4
8884
8960883288528844884884429160
844690288896
Quantité de pluie disponibles'infiltre totalementétat (niveau) du réservoir nappeniveau du réservoir nappe à t=Ddimension du réservoir nappedimension du réservoir res~u,age lentdimension du r~servoir de partition
IB=l année non bissextileIB=2 année bissextile
identificateur des pluiesévaporations
'lUI
IFORHlOBSlORDIPOSTEITABP
ITABQIVJANJANlJAN2JANDEBJANEVAJANPLUJDJDEB
JFJFIN
JOURJSTAHOISHOYLC
INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4
INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4
INTEGER*4INTEGER*4
INTEGER*4INTEGER*4INTEGER*4REAL
843810040881288248800
8796932091568804880891809004902491648816
91688820
930891849176
10048
IEVAP=D moyenneS interan~uelles
IEVAP=l moyennes annuelle~
format du fichier débitsIOBS=l existence de débits observésordre du coefficient d'autocorrélationnombre de postes pluviométri~ues
ITABP=l impression du tableau des pluiesjournaliéresITABQ=l impression des d~bits journaliersévaporation en 1/1De mmannée en cours de traitementannée de début des débits observésannée fin des d~blts obsannée lue dans le fichier d~bit
année lue dans le fichier évaporaticnsannée lue dans le fichier pluies
jour de début de calcul du coc-f'fïcientd'autocorrélation
jour de fin p~ur le calCul du ~oeff
d'autocorrélation
nO de station des débits
moyenne des Lames mensuelles Calculées
moyenne des Lames mensuelles Observées
nombre de lames ayant servi au ~alc.ul ducoeff de corrélation
HOYLONBANBANNBLAHE
NJHOISNUHFOENUHFEVNUHFPANUHFPLPl
P2
REALINTEGER*4HHEGER*4INTEGER*4
INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4REAL
REAL
10044899679828992
763085148522351885108876
3880
nO du fichier débitsnO du fichier évaporationsnO du fichier paramétresnO du fichi~r pluiescoefficient de fuite vers l~s
~rofonds
part de l'eau ir".'ilt("ée Qui varéservoir nappe
aqu i Ures
dans le
PA REAL 9316 pluie journal i{ore en 111De ITIIT'
PJOURN REAL .., pluie j ourna 1 i ére en lllDe mm<..
0 REAL 8864 coéHic ient d'écoulement rapideOBAS1 REAL 4654 écoulement j ~,urna 1 i er de ressuyage l en tOBAS2 REAL 6118 écoulement journalier de tarissementac REAL 1466 déb it journal ier ca 1cu léaOBS REAL 2930 déb i t journalier observéR2 REAL 8892 coéHic ient de reSSUyage 1en t en h-1REPONS CHAR*l 8586SETR REAL lames mensuelles et annue11e {ovapor{oes en
mmSOHLC REAL 8976 somme des 1ames Ca 1cSOHLC2 REAL 8984 somme des carrés des lames caleSOHLO REAL 8972 somme des 1ames obsSOHL02 REAL 8980 somme des carrésSOHLOL REAL 8988 somrr,e du produit des lames calc et obsSORTI CHAR*l 8212 unité de sor t ie des tableau.: E>(.r·an ou
I)rnprimanteSPJ REAL 4498 lames mensuelles et annuelle de pluie en
mmSoBAS1 REAL 4550 lames mensuelles et annuelle de oBAS1 en
rnmSoBAS2 REAL 4602 lames mensuelles et annuelle de QBAS2 en
mmSOC REAL 4394 lames mensuelles et annuelle d'écoulement
calculé en mmsao REAL 4446 lames mensuelles et annue11e <l'écoulement
obser vé en mmSURFBV REAL 8828 surt'ace du BV en km2VARLC REAL 10056 variance des lames calcu1éesVARLO REAL 10052 variance des lames observ~es
X REAL 8872 hH érogéné ï té du couvert végHal. t'a i t 1apart entre ruissellement direct et passagepar le réservoir de par+ltior,
XT REAL S868 coét't'icient de dH i t du r{oi:<er'voir departition
250251252 SUBROUTINE LECDEBIT(NUMFDEB,QOBS,JANDEB,JSTA,IFORM)253
t~ame
1lBICICOIDENTIDENT1IFORHJANJANlJANDEBJOURJOURlJaXJSTAJTJUDEBMOISNUMFDEaJaHaOBS
Type
INTEGER*4HHEGER*4INTEGER*4INTEGERII4INTEGER*4INTEGERIl4INTEGERIl4INTEGERIl4INTEGERIl4INTEGERIl4INTEGERIl4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4REALREAL
Offset P
119101189011774118221187011898
16 *1187411902
S •118941190611726
12 Il
123561191812332
o •1019010238
4 Il
304305 C
SUBROUTINE TABLE(QCAL,aOBS,IOBS,JAN,JSTA)subroutine d'écriture du tableau des d~bit~ jou~n~l ler~
Name Type Offset P
CMOIS1lOBSJANJOURJaXJSTAHaISaCALaCALCaOBSaOBSE
CHAR*9INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4 .INTEGER*4REALREALREALREAL
1538415500
8 *12 Il
1549615336
16 Il15492
o •13848
4 *12360
350351 C
SUBROUTINE TABLEPCPJOURN,JAN,JSTA)subroutine d'écriture du tableau des pluies journali~r~s
Name Type Offset P
CHOIS1JANJOURJOXJSTAHOISPJOURNPLUIE
CHAR*9INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4REALREAL
1743017546
4 *1754217382
8 "17538
o li
15894
392 C393394395
Name Type
LECTURE DES PARAMETRES DU MODELESUBROUTINE LECPARAH<NUHFPAG.ITABQ,ITABP,JAN1.:AN2,[ORD.JDEB,JFIN,
*IPOSTE,CTHIES,SURFBV,HNAPO,DEFDEB,DEFCO,HN01,HO,HNO.A.COEF,Q,XT,·X,P1,P2,FN,AL,R2)
Offset P
A REALAL REALCOEF REALCTHIES REALDEFCO REALDEFDEB REALFN REALHNAPO REALHNO REALHN01 REA:...HO REAL1 INTEGER*4lORD INTEGER*4IPOSTE INTEGER*4ITABP INTEGER*4ITABQ HHEGER*4JAtH INTEGER*4JAN2 INTEGERII4JDEB INTEGER*4JFIN INTEGER*4NUHFPA INTEGERII4Pl REALPZ REALQ REALRZ REALREPONS CHAR*lSOHCTH REALSURFBV REALX REALXT REAL
68 *100 *72 *36 *52 Il
48 *96 *44 *64 *56 il
60 .,17860
20 ..32 *
8 *4 Il
12 Il
16 II
24 "22 *o Il
8S Il
92 •76 li
104 •1940822726
40 *84 'II80 *
Fonction de production au pas de temps journal ierSUBROUTINE DEF(HNAP,DEFCF,PA,ECT,IV,EBAS2,EBA$l,OU,COEF,Q.A,AL
*.DEFCO,XT,R2,HNO,X,Pl.P2,HO,FN,HN01.ER11
Offset P
zone
jour
début
lenappe
de partitionde partition au
réservo i r'
réservoirr'éservo i rtempsréservOir ressuyage lentréservoir ress)uage lent le Jour
débordement du réservoir de partition
~coulement rapidepart de EB vers le ruissellement direct
~uantité d'eau Qui va vers la nappe et leressuyage lent.part de EB vers le ressuyage lentpart de EB vers le réservvir nappe
déficit superfi~iel de laréhumidifiie de l'horizon vigétaldéficit total du réservoir hor izof, v6gHal
part de la pluie du réserVOir de partitionvers l'horizon vég'tal
niveau dupricédent
niveau duniveau dudu pas deniveau duniveau duprécédent
229204 *
48 lt28 *
2292422964
40 lt
44 lt
32 *22916
2297622968
24 lt
20 *2297222932
12 *22940 lt évapotranspiration réelle22912
80 *2293622928
o *22992
60 *84 *76 *16 If
68 lt
72 lt
S 1(
22944
2298022988
36 lt
56 lt
2296022984229522295622942
64 If
52 lt
755756
Name Type
A REALAL REALCOEF REAL0 REAL
Dl REALDEFCF REALDEFCO REALDU REALEO REALEB REAL
EBl REALEB2 REALEBASl REALEBAS2 REALEBB REALEC REALECT REALERl REALEV REALFN REALH ,REALHl REAL
HNl REALHN1I REAL
HNAP REALHNAPI REAL
HNO REALHNOl REALHO REALIV INTEGERlt4Pl REALP2 REALPA REALPD REAL
Q REALR2 REALRS REALRSl REALS REALSl REALS2 REALX REALXT REAL
803 Calcul du co4tticient d'autocorr~lation d'ordre lORD804 SUBROUTINE AUTOCOR(VARENTREE,IORD,JDEB.JFIN,SU8CORl
t~arne
COVXY1lORDJDEBJFINHOYXHOnSOHXSOHX2SOHXYSOHYSOHY2SUBCORVARENTVARXVARY
Type
REALINTEGERlt4INTEGER*.:INTEGERlt4HHEGERlt4REALREALREALREALREALREALREALREALREALREALREAL
Offset P
2304023016
4 *8 *
12 *23024230232299623004230122300023008
16 *o *
2303223036
Calcul des lames mensuelles et annuelle826 SUBROUTINE TOTAUX(VARENTREE,NJHOIS,IB,VARSORTIE)
Name
1lBJOURHOISNJHOISVARENTVARSOR
Type
ItHEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4REALREAL
Offset P
230448 *
2305223043
4 lt
o *12 *
S38 C840841
Name Type
LECTURE DES PLUIES
SUBROUTINE LECPLUIE(NUHFPLU,PJCURH.JANPLU, IOENTPLU. [POSTE,CTHIESl
Offset P
CTHIES REAL1 INTEGER*4IDENT INTEGER*4IDENTl INTEGER*4IDENTP INTEGER*4IP INTEGER*4IPLUIE INTEGER*4IPOSTE INTEGER*4JAN INTEGERlt4JANl INTEGER*4
20 *245962460024632
12 *2462023108
16 *2460424636
JANPLUJOURJOURlJaXJTHaISNUHFPLPJOURN
INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4INTEGER*4REAL
8 *2462324640230602505024644
o *4 *
LISTE DES SUBROUTINES UTILISEES PAR LE PROGRAMME
Name Type Size Class
AUTOCO SUBROUTINEDEF SUBROUTINELECDEB SUBROUTINELECPAR SUBROUTINELECPLU SUBROUTINEHAIN PROGRAMTABLE SUBROUTINETABLEP SUBROUTINETOTAUX SUBROUTINE
Pass One No Errors Detected876 Source Lines
ANNEXE 2 Listing du programme MODIBI
~----------------------------------------------------------------------1
~--------------::~:::-::-:::-~:-~::::-~:::::::::------ J
C Ver sion de j u i 11et 1986C DEZETTER Alain ISIM STE 2.me ann~e
C Fonction de production DEF tir~e de HODQJD de D.IBIZACC Voir le fichier MODAL1.DOC pour 1~ 1 iste des variablesC
DIMENSION PJOURN(366l,QC(366l,QOBS(366),EVAS(12),CTHIES(10lDIMENSION SQC(13l,SQO(13l.NJHOIS(12,2l,SP](13),QBAS1(3601DIMENSION QBASZ(366l,SQBAS1(13l.SQBAS2(13l,ETR(366l,SETR(13lDIHENSION ECAL(366l,SECAL(13l,RUIS(366l,SRUIS<13lCHARACTER*14 FILEPQ,FILEPL(14l*1,FILEPARAM(14l*l,FILPAG*14,
*REPONS*1.FIL*14,FILPLU*14,FILDEB*14,FILEVA*14,SORTIE*1CHARACTER *9CMOIS(12lREAL MOYLO.MOYLCEQUIVALENCE (FILEPL(11.FILEPQ),(FILEPARAM(1l,FILlDATA NJHOIS/31.59.90.120,151,181,212.243.273.304.334.365,J1.60.
*91.121.152.182.213,244,274,305,335.366/DATA CHOISI' JANVIER ' " FEVRIER '.' MARS' . ' AVRIL '. ' HAl
* ' , ' JUIN ',' JUILLET ',' AOUT '.' SEPTEMBRE' " OCTOBRE 'l't' NOVEMBRE',' DECEMBRE' /
$FLOATCALLSWR!TE <*.9000 1
9000 FORHATU///,' Nom génériQue des fichiers 1 'ç)READC*,9D01lFILEPQ
9001 FORMAHAlWRITE(*.9003l
9003 FORMATC/I,' Nombre d annees de pluie 7 'çiREADC*,900ZlNBAN
9002 FORMAT(I2lSOOO WRITEC*,9004l9004 FORMAT(I/' Unit~de sortie des tableau..: ·~e :-éslJltats 1'/
* Elcrar,' /* Ilmprimante'.f* Choix: 'çl
READC*,61lS0RTIEIF(SORTIE.NE.'E' .AND.SORTIE.NE.' l' 1GO TO 8000
131 WRITEC*.130l130 FORHATU' Quel est le format du f'ic~ier dHl1s? 'l
* I8,!4.12,lXd2CI3.ZI1loI1 1 '/* IS.I4.I2.1x.12CF6.2l 2 ' 1
* Entrez 1 ou 2 : 'çlREADC*,*lIFORHIFCIFORM.NE.1.AND.IFORM.NE.2l GO TO 131
C-----------------------------------------------------------------------C Affectation automatiQue des noms des f'ichiersC meme raCine. extension difrirente :PLI,DEI,[VI,PAI
DO 55 1=1,14IF«FILEPLCIl.EQ.' 'l.OR.CFILEPL<Il.EQ.'.' l;' THEN
IBLANC=IGO TO 56
ENDIF
55 CONTINUE56 00 57 I=1,IBLANC-157 FILEPARAM(I)=FILEPl(I)
IF(IBLANC+3.LE.14l THEN00 58 I=IBI.ANC+4,14
58 FILEPARAH( I) =' 1
ENDIFFILEPARAH ( l BLANC) =' .'FILEPARAH(IBLANC+l)='P'FILEPARAH(IBLANC+2)='L'FILEPARAH(IBLANC+3)=' l'FILPLU=FILFILEPARAH(IBLANC+l)='D'FILEPARAH(IBLANC+2)='E'FILEPARAH(IBLANC+3)='I'FILDEB=FILFILEPARAM(IBLANC+l)='P'FILEPARAH(IBLANC+21='A'FILEPARAH(IBLANC+3)=' l'FILPAG=FILFILEPARAH(IBLANC+11='E'FILEPARAH(IBLANC+21='V'FILEPARAH(IBLANC+3)=' l'FILEVA=FIL
c-----------------------------------------------------------------------NUHFPLU=5NUHFDEB=6NUMFPAG=7NUMFEVA=8OPEN(NUHFPLU,FILE=FILPLU)OPEN(NUHFDEB,FILE=FILDEB)OPEN(NUHFEVA,FILE=FILEVA)IF(SORTIE.EQ.'E' lOPEN(lO,FILE='CON:' 1
IF(SORTIE.EQ.' l' )OPEN(1[l,FIlE='LPT1:')
C-----------------------------------------------------------------------C Fichier paramétresC Création et/ou lecture des param~tres
62 WRITE(.,60) FILPAG60 FORHAT(lX,' Le fichier de paramètres' ,A14,' existe-t-il ? on~ '.;;
READ(*,61)REPONS61 FORMAT< A)
IF(REPONS.NE.'O' .AND.REPONS.NE.'N') GO TO 62IF (REPONS.EQ.'O') OPEN(NUHFPAG,FILE=FILPAG)
CC Ajouter ERR=label vU IOSTAT=IOTEST et envoyer messageC d'erreur si le fichier n'existe pas + renvoyer a laC création du fichier (?;C
IF (REPONS. EQ . 1 N' ) THENWRITE(*,63)FILPAG
63 FORHAT(lX, , Creation du fichier paramètre·s , ,A14, /' Si un fichier de ce nom existe i 1 sera détruit')
WRITE(*,64164 FORHAT(lx, , Tapez 0 pour poursuivre '/
* N pour arreter' )READ(*,61) REPONSIF (REPONS.EQ.'O') THEN
OPEN(NUHFPAG,FILE=FILPAG,
* STATUS=' NEW' )WRITE(NUMFPAG,210)f.IRT TI= O.JIIMI=P,:J: • ? 1nl
210
WRITElNUHFPAG,21Q)WRITElNUHFPAG,210:WRITElNUHFPAG,21DlFORHAT r 12F3.3)
ENOIFIF lREPONS.EQ.'N') GO TO 62
ENOIFCALL LECPARAHlNUHFPAG,ITABQ,ITABP,JAN1,JAN2, IORO,JOEB,JFIN,IPOSTE
.,CTHIES.SURFBV,HNAPO,OEFOEB,OEFCO,HN01,HO,HNO,A,COEF,Q,XT,X,P1,P2
.,FN,AL,R21
C------------------------------------------------------------------.-----
C-----------Initialisations----HNAP=HNAPOOU=DEFCO-OEFD€BOEFCF=DEFDEBSOHLO=O.SOHLC=O.SOHL02=0.SOHLC2=0.SOHLOLC=O.NBLAHE=O
C------------------------------REAOlNUHFEVA,4001IEVAP
400 FORMATl1X,I11
C----------------------Bouc1e Annuelle 00 90 --------------------------
DO 90 NBA=l.NBAN
C-------Lectur~ des ~vaporations
IFIIEVAP.EQ.0.AND.NBA.EQ.1.0R.IEVAP.EQ.1>THENREAClNUHFEVA.4101JANEVA,EVAS
410 FORHATl1X,I4,12F5.1lENOIF
C--------------------------------C--------Lecture <:les pluies journal ii-r'es--
CALL LECPLUIElNUHFPLU,PJOURN,JANPLU,IDENTPLU,IPOSTE,CTHIESI
IFlIEVAP.EQ.1.AND.JANPLU.NE.JANEVAlWRITEl.,1400JJANEVA,JANPLU1400 FORHATI/' ERR EU R 'l,' Il n"y a pas c,~n';ordançe entre l'
.'année des evaporations: ',14,' et l"année des'D1uie'~ : ',14/)JAN=JANPLUIB=lIFlHODlJAN,41.EQ.0>IB=2JO=lJF=364+IBN=OHOIS=l10BS=0IFlJAN.GE.JAN1.AND.JAN.LE.JAN2> IOBS=l
C------Initia1 isation et lecture des d~bits .;.b:;;l"rv~s-
DO 65 1=1,36665 QOBSlIl=O.
IFlIOSS.EQ.l1 CALL LECOEBIT lNUHFOEB,QOBS,JANDEB,JSTA.IFORHlIFlIOBS.EQ.1.AND.JANPLU.NE.JANDEB>WRITE(.,1401lJANDE8,JANPLU
1401 FORHATl," ERR E UR 'l,' Il n"; a pas concordance <."ntre l'*'annt-e des debits : 'rI4,' et l"ar,n~e d~s p1lJl-=S : '.14/)
C------------Boucle journallire DO 71----------------------------------DO 71 JOUR=JD,JFPA=PJOURN(JOURlIF(JOUR.GT.NJHOIS(HOIS,IBI)HOIS=HOIS~1
IV=EVAS(HOIS)*10.CALL OEFeHNAP,OEFCF,PA,EÇT,IV,EBAS2,EBAS1,DU,COEF,Q,A,AL,OEFCO,Xi,
.R2,HNO,X,Pl,P2,HO,FN,HN01,ER1,EC,RS)ECAL(JOUR)=ECRUISeJOUR)=RSETR(JOUR)=ERlQC (JOUR) =ECTQBAS1(JOUR)=EBASl
71 QBAS2(JOUR)=EBAS2C-----------Fin d~ Boucle journdl i4re 80 71-----------------------------
CALL TOTAUX(PJOURN,NJHOIS,IB,SP]1CALL TOTAUX(QC,NJHOIS,IB,SQClCALL TOTAUX(QBAS1,NJHOIS,IB,SQBAS1)CALL TOTAUX(QBAS2,NJHOIS,IB,SQBAS2lCALL TOTAUXeETR,NJHOIS.IB,SETR)CALL TOTAUXeECAL,NJHOIS,IB,SECALlCALL TOTAUX(RUIS,NJHOIS,IB,SRUIS)DO 74 HOIS=l,13SQBAS1(HOIS)=SQBAS1(HOISl·.1SQBAS2(HOIS)=SQBAS2eHOIS) •• :SPJ(HOIS)=SPJ(MOIS)·.lSECAL(HOISl=SECAL(HOISl*.lSRUIseHOIS)=SRUIS(HOISl •. 1SETReHOIS)=SETReHOIS) •. l
74 SQCeHOISl=SQCeHOIS) •. lIFeIOBS.EQ.l)THEN
CALL TOTAUX(QOBS,NJHOIS,IB,SQO)DO 73 HOIS=l. 13
73 SQO(HOISl=SQO(HOISl.S6.4/SURFBVDO 75 HOIS=l, 12NBLAHE=NBLAHE+lSOHLO=SOHLO+SQoeHOISlSOHL02=SOHL02+SQoeHOISI~SQO(HOIS:
SOHLC=SOHLC+SQC(HOISlSOHLC2=SOHLC2+SQC(HOIS)*SQCeHOIS)
75 SOHLOLC=SOHLOLC~SQO(HOISj.SQC(HOrSj
CALL AUTOCOR(QOBS,IORO,JDEB,JFIN,CORO)ENOIFDO 72 JOUR=l,364+IB
72 QCeJOUR)=QCeJOUR)*SURFBV/864CALL AUTOCOReQC,IORO,JDEB.JFIN,CORC)
C-------Sortie des résultats annuels-----------------------------------WRITEel0,1000) JAN,JSTA
1000 FORHATC/I//120X.88('=')/20·(,'.',22X,'Tableau des lames mens-uelles.et annuelles' ,23X,'.'/20X,'.',Z8X,' Année: ',r4,38X,'*'1*20X,'.',28X.' Station: ',I10,30X,'.'/20X,38e':'l///J
WRITEe 10,1020)1020 FORHAT(lX,' UniHs: mm 'f)
WRITE(10,600)600 FORHAT e1X, ' It' , 133 ( , -' ) , ' It' )
WR ITE (10, 1010) (CHO Ise Il, l =l , 1211010 FORHATC1X,'*LAHE ',12('!',AQ),'1 T Ml,.')
WRITE( 10, 600>WRITEe10,600)WRITE(10,60S)(SPJ(II,I=1,13)
605 FORHAT e1X,' Plu i e 1 1 13 ( '1 ',F6. l , ' ') 1WRITE e10, 600)T~ ( TnR~ .1=0.1 l TI-lI=N
610
WRITE(10,610)($QO(I),I=l,13)IJRITE( 10.600)FORHAT(lX,'E Obs '.13('1 J .FA.l,' '))
ENDIF~RITE(10,620)(SQC(I),I=l,13)
620 FORHAT(lX,'E Calc'.l3('I',Fô.l,' '))WRITE(10,600)WRITE (10,630) (SQBAS1C 1),1=1,13)
630 FORHAT(lX,'E BAS1' ,13(" '.F6.1,' '»)WRITE(10.600)WR1TE(10,640)(SQBAS2(1),1=l,13)
640 FORHAT(lX,'E BAS2'.13(" ' .F6.1,' 'il
IJRITE( 10,600)WRITE(10.641)(SETR(1),I=1,13)
641 FORHAT(lX,'Ev ree',13('1 ',F6.1,' '))\JRITE( 10, 600>WRITE(10,SOO)(SECAL(I),I=1,13)
SOO FORHAT (1X, 1 EC ' , 13 ( '1 " F6. 1 , • ') )WRITE( 10, 600)IJR1TE(10,S10)(SRUIS(I),I=l,13)
S10 FORHAT<lX,'RS '013('1 ',Fb.l,' '))WRITE( 10, 600)IJRITE (10,650)
650 FORHAT(III)IJRITE(10,b60)<EVAS<I),I=1.lZ)
660 FORHAT(' Evaporations moyennes mensuelles journaliires en mm/j"*12(' ',FS.l,' '}J}
IJRITE(*.670)IORO,CORC670 FORHAT(' Coefficients J"autocorr-E.-lahon d"ordre '.I3/
.' calcul{o sur les tjét:.lts j.:.urnaliers slmul{os: ',F6.4iIF<10BS.EQ.l}WRITE(*,671)CORO
671 FORHAT(' calcuU sur les "débits journaliers observ~s. ',F6.4)IF(ITASa.Ea.l) CALL TABLE(QC,aOBS,10BS,JANDEB,JSTAl1F(1TABP.EQ.l)CALL TABLEP(PJOURN,JANPLU.IDENTPLU)
90 CONTINUEC-----------------Fin de Boucle Annuelle DO 90--------------------------
IF(NBLAHE.NE.O}THENHOYLO=SOHLO/NBLAHEHOYLC=SOHLC/NBLAHEVARLO=SOHLOZ/NBLAHE-HOYLO*HOYLOVARLC=SOHLC2/NBLAHE-HOYLC*HOYLCCOVLOLC=SOHLOLC/NBLAHE-HOYLO*HOYLCCORR=COVLOLC/SQRT(VARLO*VARLC)IJR1TE(10,700}NBLAHE,CORR
ENDIF700 FORHAT(J/I' Coefficient de corrélation entre lames mensuelles obs
*ervées et calcult-es'/' Calculé sur ',12,' lames : ',F6.4/)CLOSE <NUHFPLU)CLOSE (NUHFOEB)CLOSE (NUHFEVA)CLOSE (10)CLOSE (NUHFPAG)STOPEND
C-----------------------------------------------------------------------CC SUBROUTINESC
SUSROUTINE LECDEBIT(NUHFDEB,QOBS,JANDEB,JSTA,1FORH)
rH HF t~S TON OORS ( 3",', ) • 01 ( 1? ) •.1(\ J( ( 1::' , . OH ( .., 1 • 1::' l , ; r. ( 1? )
INTEGER QJDIHENSION ICO(12)DATA JOX/31,28,31.30,31,30.31.31,30,31,30,311READ(NUHFDEB,100lIDENT,JAN
100 FORHAT(I8,lX,I4lJANDEB=JANJSTA=IDENTIB=lIF(HOD(JAN,41.EO.OlJOX(2)=29IF(HOD(JAN.41.NE.OlJOX(Zl=28IF(IFORH.EO.llTHEN
, ,181, ,181, J 18/
Il
.'.'
DO 1 JOUR=1,31READ(NUMFDE8.1000)IDENT1.JAN1.JOUR1.(Qj(Il.IC(Il,ICO(II,I=I,12l
·,JUDEB1000 FORH AT(18. 14. 12, 1X, 12 ( I3 , 211 1, III
IF(IDENT1.NE.IDENT.OR.JAN1.NE.JAN.OR.JOUR1.NE.JOURlTHEN~RITE( •• 120lIDENT.IDENT1,JAN,JAN1,JOURtJOURlFORHAT<' ERREUR FICHIER DEBITS '!
Il n"y a pas cvncordance entre 1 ... ·; ,-,,:;1';"..11'$'
• supposies et les valeurs tr~uv.es ;'/,.' Valeurs suppos~es IDENT '.18,' Valeurs trouvies IDENTl
JAN • .18.' JANlJOUR ' .13,' JOUR1
120
- 1ENDIFDO 2 HOIS=1,12
2 QH(JOUR.HOISl=QJ(HOISl*10.-*(IC(MOISl-3)1 CONTINUE
ELSE
DO 4 JOUR=l, 31READ(NUHFDEB,1010lIDENT1,JAN1.JOUR1.(QH(JOUR.MOISl,MOIS=1,12)
1010 FORHAT(IS,I4,I2,12(F6.2llIF(IDENT1.NE.IDENT.OR.JAN1.NE.JAN.OR.JOUR1.NE.JOURl
-WRITE(-,120lIDENT,IDENT1.JAN,JANl.JOUR,JOURl4 CONTINUE
ENDIFJT=ODO 20 HOIS=1,12DO 20 JOUR=1,31IF(JOUR.LE.JOX(HOISllTHEN
JT=JT+lQUBS(JTl=QH(JOUR,HOISl
ENDIF20 CONTINUE
RETURNEND
C _
SUBROUTINE TABLE(QCAL,QOBS, IOBS.JAN,JSTAlC
CHARACTER *9CHOIS(12lDIHENSION QCAL(366l,QOBS(366l.aCALC(31.12l,QOBSE(31,12l,JOX(121DATA JOX/31,28,31.30,31,30,31;31.30,31.30,311DATA CHOISI' JANVIER ',' FEVRIER ',' MARS' , ' AVRIL ',' MAI
* ' . ' JUIN ',' JUILLET ',' AOUT '. • SEPTEMBRE' " OCTOBRE-' NOVEHBRE',' DECEHBRE'I
DATA QCALC/372*0.I,QOBSE/372-0./IF(HOD(JAN,4l.EQ.OlJOX(2l=29IF(HOD(JAN,4l.NE.OlJOX(2l=28MOIS=1lCllIR=n
DO 2 1=1,366IFIHOIS.GT.12)GO TO 4JOUR=JOUR+lQCALCIJOUR,HOIS1=QCAL(IiQOBSEIJOUR,HOIS1=QOBSIIlIF(JOUR.EQ.JOXIHOIS)lTHEN
JOUR=OHOI5=110IS+1
:calcul~ '1-c-: observE- 'l'-0-m3/s 'J'
24
3
ENOIFCONTINUEWRITEll0,1000) JAN,JSTA
1000 FORHAT<I////20X,881'=')l20X,'.'.2SX,'Tableau des ·~~b;ts jO~lr'na1ier
.s',2SX,'lf'/20X,'*'.28X,' Ann~e : ',I4,3SX,'.'/20x.'I>',2SX,
.' Station '.Il0,30X,'.'/20X,SSI'=')/Ij)WRITEI 10,1005)
100S FORHATI' UniHs.)
WRITE<10,400)WRITE( 10,10101 (CHOISI 1),1=1,12)
1010 FORHATllX.'. OATE 'd2('I'.A9l,'.'1WRITEll0,400)DO 3 JOLlR=1,31WRITEll0,400)FORHAT<lX,'.'.l291'-' 1,'.'1IFIIOBS.EQ.11WRITEI10,SOOlJOUR,(QOBSE(JOUR,HOIS),HOIS=1,12}WRITEll0,SOl)JOUR,IQCALCIJOUR,MOIS),HOIS=l,12)FORHATllX,' ',12,' -0- ',12(' i' ,F3.3,' '),' 1')FORHAT<1X, , '.I2,' -C- '.12(' ',FS.3,' '),' ')WRITEI 10, 4001lAIRITEll0,4101FORHATI/,'/lRETURNEND
410
400
500501
C _
SUBROUTINE TABLEPIPJOURN,JAN,J5TAlC
CHARACTER *9CHOIS(12)DIHENSION PJOURN(366),PLUIE(31,121,JOXI121DATA jOX/31,28,31,30,31,30,31,31,~O,31,30,31/
DATA CHOISI' JANVIER',' FEVRIER'.' MARS AVRIL' " HAl• ',' JUIN',' JUILLET' " AOUT' ,'SEPTEMBRE',' OCTOBRE'.' NOVEHBRE',' OEC EMBRE' 1
DATA PLUIE/37Z*0.1IFIHOO{JAN,41.EQ.01JOXIZl=Z9IFIHOD(JAN,41.NE.01JOXI21=23HOIS=lJOUR=ODO 2 1=1,366IFIHOIS.GT.12)GO TO 4JOUR=JOUR"'1PLUIEIJOUR,HOIS1=PJOURNIIlIFCJOUR.EQ.JOXCHOIS)lTHEN
JOUR=QHOIS=HOI$+l
ENDIF2 CONTINUE4 WRITEll0.1000) JAN,JSTA
1000 FORHAT(//11120X,SSI'='J/20X,'.',2SX,'Tableau des pluies Journali~r
.es' ,27X,' *' 120X,'.' ,28X,' Ann~e : ',14, 38X. 'li' 120:<,' If' ,28X .• ' Station' .Il0.30X,'.' 120X,S8I':' )111)lAIRITEll0, 1005)
1005 FORHAT<' Un i tés lJ1De mm 'IlWRITE<10,400)WRTT~(1n,1n1n)(rMnT~(T).T="l?1
1010 FORHAT<lX,'. DATE ',lZI'!',A'l'),'.')
l.JRITE<10,400)DO 3 JOUR=l,31l.JRITE <10,400)
400 FORHAT<lX,'.',129<'-'1,'.')3 l.JRITE<10,SOl)JOUR,<PLUIE<JOUR,HOIS),HOIS=1,lZ1501 FORHAT(lX,' '.IZ,' ',lZ('1 ',FS.O,' 1),,\,)
l.JRITE (10,400)l.JRITE( 10,410)
410 FORHAT<///)RETURNEND
C _
SUBROUTINE LECPARAH<NUHFPAG,ITABO,ITABP,JAN1,JANZ,IORO.JOEB.JFIN,.IPOSTE,CTHIES,SURFBV,HNAPO,DEFOEB,DEFCO,HN01,HO,HNO,A,COEF,Q,XT,.X,P1,P2,FN,AL,RZ)
CHARACTER.l REPONSDIHENSION CTHIES(10)
1 REWIND(NUHFPAG)READ(NUHFPAG,ZOO)ITABO,ITABP,JAN1,JAN2,iORD,JDEB,JFINREAD(NUHFPAG,205)IPOSTEREAD(NUMFPAG,Z06)(tTHIES(I),I=l,IPOSTE)READ<NUMFPAG,Z10)SURFBV,HNAPO,DEFDEB,DEFCO,HN01,HO,HNO,A,C~EF
READ(NUHFPAG,210)Q,XT,X,Pl,P2,FN,AL,R2 .ZOO FORHAT(lX,2Il,2<lX,I4),3(lX,I3»ZOS FORHAT(I2ç)Z06 FORHAT(10F5.3)Zia FORHAT(9F8.3)
URnE(. ,400)400 FORMAT <1/' . PARAHETRES DE CALAGE DU MODELE' /
• ------------------------------'/)l.JRITE(.,410)SURFBV,HNAPO,DEFDEB,DEFCO,HN01,HO,HNO,A,COEF
410 FORHAT(' Surface du bassin versant km2 SURFBV :' ,F8.3/• ' Niveau initial du réservoir nappe HNAPO : ',F8.3/.' Dé fic it in i ti a 1 du réservo i r hor i zon végtota 1 DEFDEB : ',Fe. 3/• ' Dimension du réservoir horizon végétal DEFCO : ',F3.3/• ' Dimension du réservoir réssuyage lent HNOl : ',F3.3/• ' Dimension du réservoir de partition HO : ',F8.3!• ' Dimension du réservoir nappe HNO : ',F3.3/.' CoeHicient de passage pluie observée-"luie réelle A :',F8.3!.' Coef'f'icient de transformation de l"évaporation COEF : ',F8.3)
l.JRITE<·,42o)C,XT,X,Pl,P2,FN,AL,R2420 FORMAT(' CoeHicient d"écoulement rapide Q :' ,F8.3!
.' Coeff'icient de débit du réservoir de partition XT : ',F8.3/
.' Coefficient d' 'hétérogénéité du couvert végétal X : . ,F8.3/
.' Coef'flcient de fuite du réservoir nappe vers les aQuiféres profo
.nds. Pl :' ,F8.3/
.' Part de l"eau infiltrée Qui va dans le reservoir nappe P2 . ,·F8.3/.' QuantiU maximale journal iére d" infiltration <1110 mm) FN : 1
.F8.3/
.' CoeHicient de tarissement (j-1> du réservoir nappe AL : ',F8.3!
.' CoeHicient de ressuyage lent <h-ll R2 : ',F8.3)431 WRITE<.,430)430 FORHAT<lX,' Voulez-vous corriger un ou plusieurs de ces paramét
.res ? O/N 'ç)
READ(·,440)REPONS440 FORHAT<A)
IF<REPONS.NE.'N' .AND.REPONS.NE.'O' lGO TO 431IF<REPONS.EC.'N') GO TO ZIF<REPONS.EQ,'O') THEN
l.JRITE<., 450)4SO FORHAT<//' CORRECTION OES PARAH'
471470
472
481480
482
491490
492
501500
502
511510
512
li
li
li
li
li
, ------------------------. lWRITE(lI,470)SURFBVFORMATl' Surface SURFBV= ',F8.3.' Correc''tion : O/N ? 'ç)READ(1I,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' lGO TO 471IF< REPONS. EQ.' 0' )THEN
WRITE<lI,472)FORMAT<' SURFBV= ';)READ<lI,lI)SURFBV
ENDIFWRITE<lI,490)DEFDEBFORMATl' DEFDEB =' ,F8.3,' Correc''tion : O/N ? 'ç)READ<1I,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 491IF(REPONS.EQ.'O' )THEN
WRITE<1I.492)FORMAT(' DEFDEB = 'ç)REAO(lI,lI)DEFDEB
ENDIFWRITE<lI,500)DEFCOFORMAT(' DEFCO =' ,F8.3,' Correc', t ion : OIN ? 'ç)READ(1I,440)REPONSIF<REPONS.NE.'N' .AND.REPONS.NE.'O' )GO Ta 501IF(REPONS.EQ.'O' )THEN
WRITE <Il, 502)FORMAT<' DEFCO = 'ç)READ(lI.lI)DEFCO
ENDIFWRITE(lI,510)HNOlFORHAT<' HN01 = ',F8.3,' Correc''tion : OIN ? 'ç)READlll,440)REPONS1F(REPONS. NE. ' N' . AND. REPONS. NE. ' 0' )GO Ta 511IF<REPONS. EC.' a' lTHEN
WRITE(1I,512)FORMAT<' HNOI = ';)READ(lI,lI)HN01
= " F8. 3,' Cor r ec'HO521520
522
li
ENDIFWRITE( li ,520 )HOFORMAT( ,'tion : O/N ? 'ç)READlll,440)REPONSIF<REPONS.NE.'N' .Arm.REPONS.NE.'O' )GOIF(REPONS.EQ.'O' )THEN
WRITE(lI,522)FORMATl' HO =READ<lI,lIlHO
TO 521
• . i'r'
531530
li
ENDIFWR ITE <li, 530) HNOFORMATl' HNO = ',FB.3,' Correc''tion : O/N ? 'ç)READ<lI,440)REPONSTF (RF'pnN~. NF.' N' •AND~ ~,_'...J.)..I.1G.l.LO.....wIQI.!...-5....3ol"jlo..._ _
532
541540
542
551550
552
561560
562
581580
582
591590
592
601600
602
*
*
*
*
*
*
IF (REPONS. EQ.' O' >THENl.JRITE(*,532)FORMAT ( , HNO =' ç )
READ(*,*)HNOENDIFl.JRITE(*,540)AFORMAT(' A =' ,F8.3,' Correc''tion : O/N ? 'ç)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 541IF(REPONS.EQ.'O' lTHEN
l.JRITE(·,542)FORMAT(' A = 'ç)READ(*,*)A
ENDIFl.JRITE(*,550)COEFFORMAT(' COEF =' ,F8.3,' Correc''tion : O/N ? 'ç)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 551IF (REPONS. EQ.' 0' lTHEN
l.JR ITE (*,552)FORMAT(' COEF = 'çjREAD(*,*)COEF
ENDIFl.JRITE(*,560)QFORMAT(' Q =' ,F8.3,' Correc', t ion : O/N ? 'ç)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 561IF (REPONS. EQ.' 0' lTHEN
l.IRITE (*,562)FORMAT ( , Q =' ç )READ(*,*)Q
ENDIFl.JR ITE ( *,580) XTFORHAT<' XT =' ,FIL3,' Correc', t ion : O/N ? 'ç)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 581IF(REPONS.EQ.'O' )THEN
l.IRITE(*.582)FORHAT ( , XT ='.; )READ(*,*)XT
ENDIFIJRITE (*, 59Q) XFORHAT(' X =' ,F8.3,' Correc''tion : O/N? 'ç)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 591IF (REPONS. EQ.' 0' lTHEN
l.JRITE (*.592)FORMAT(' X = 'ç}READ(*,*)X
ENDIFl.JRITE (* .600) PlFORHAT(' Pl =' ,F8.3,' Correc'
• , t ion : O/N ? 'ç)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 601IF(REPONS.EQ.'O' )THEN
l.IRITE (*,602)FORMAT(' Pl = 'ç)READ(*.*)Pl
ENDIF
é~U
622
631630
632
641640
642
651650
652
*
*
*
*
~UKMAI (' ~L= • ,~~.~,' ~orrec'
'tion : O/N? 'ç)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 6211F(REPONS. EQ. ' 0' >THEN
WRITE (*,622)FORMAT(' P2= 'ç)READ( *, * )P2'
ENDIFWRITE (* ,630)FNFORMAT(' FN= ',F8.3,' Correc', t ion : O/N ? 'ç)
READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' lGO Ta 631IF(REPONS.EC.'O' >THEN
WRITE(*,632)FORMAT(' FN= 'ç)READ(*,*)FN
ENDIFl.JRITE(*,640)ALFORHAT(' AL= ' ,F8.3.' Correc''tion : O/N? 'ç)READ(*,440lREPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O· )GO TO 641IF (REPONS. EQ. 1 0' lTHEN
WRITE<*,642)FORMAT(' AL= 'ç)READ(*,*)AL
ENDIFl.JRITE(*,650)R2FORMAT(' R2= '.F8.3,' Correc', t ion : O/N ? 'ç)
READ(*.440)REPONSIF(REPONS.NE.'tP .AND.REPONS.tŒ.'O' lGO TO 651IF(REPONS.EQ.' 0' lTHEN
WRITE(*,652)FORMAT(' RZ= 'ç)READ(*,*)R2
ENDIFREWIND(NUMFPAG)WRITE(NUMFPAG,200)ITABQ,ITABP,JAN1,JAN2,IORD,JDEB,JFINWRITE(NUHFPAG,205)IPOSTEWRITE(NUMFPAG,206)(CTHIES(I),I=l,IPOSTE)WRITE(NUMFPAG,210)SURFBV,HNAPO,DEFDEB.DEFCO.HN01,HO.HNO,A.COEFWRITE(NUHFPAG,210)Q,XT,X,Pl.P2.FN,AL.R2ENDIFGO TO 1
2 REWIND(NUHFPAG)READ(NUHFPAG,ZOOlITABQ,ITABP,JAN1,JANZ,IORD,JDEB,JFINREAD(NUHFPAG,Z05lIPOSTEREAD(NUHFPAG,Z06)(CTHIES(I),I=l,IPOSTE)WRITE(*,800)JAN1,JAN2,ITABQ,ITABP,IORD,JDEB,JFIN
SOO FORMAT(IIIX,' AUTRES PARAHETRES* l' ----------------- ',' 1*' Annee de d~but des d.b i ts obser".s :',141.' Annee de rin des d.bits obser"t-s : 1 d411.' Impression du tableau des debits journaliers (ITABQ O=NON •• =OUIl : ',Ill.' Impression du tableau des pluies journali~res (ITABP O=NON • 1*=OUIl : '.111/' Ordre du coefficient d"autocorr~lation lORD: •.,131' Jour de d~but du ca 1cu 1 JDEB : ',131• Jour de rin du calcul JFIN:', 13)
WRITE<*,SOl)IPOSTE,(I,CTHIES(I),I=l,IPOSTE)SOl FORHAT(/' Nombre de postes plu"iom~triQues IPOSTE '.12/
.' Coefricient de chaque poste: '1t't , ., ~ t _ _,. fit • _ • _ 1 ., r-e '7'"''
810 WRITE(*,430)READ(*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 810IF (REPONS. Ea.' N') GO TO ;;IF(REPONS.Ea.'O') THEN
821 ~RITE(*,820)JANl
820 FORMAT(' Annee debut JAN1= ' .14.' C.:lrrec''" ' t ion : O/N ? '.;)
READ(.,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.' 0' )GO TO 821IF(REPONS.Ea.'O'lTHE~~
WRITE<*,822)822 FORMAT(' JANl = 'ç)
READ(·,·lJANlENDIF
831 WRITE(.,830)JAN2830 FORMAT (' Anni-e fin JAN2:' ,14,' Correc'
* 'tion : O/N ? 'ç)READ(·,440)REPONSIF<REPONS.NE.'N' .AND.REPONS.NE.' 0' )GO TO 831IF(REPONS.Ea.'O'lTHEN
WRITE (*,832)832 FORMAT(' JAN2 :' ç l
READ <*, * lJAN2ENDIF
841 IJRITE<.,840)ITABa840 FORMAT<' ITABQ= ',Il,' Correc'
* 'tion : O/N? 'ç)READ(*,440)REPONSIF<REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 841IF (REPONS. EQ.' 0' lTHEN
IJRITE(·,S4;?)842 FORMAT(' ITABQ = 't)
READ<·,*)ITABQENDIF
941 ~RITE(.,940)ITABP
940 FORMAT(' ITABP: ',Il,' Correc'• ' t ion : 01 N ? '.;)
READ<*,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.' Q' )GO TO 941IF<REPONS.EQ.'O' )THEN
IJRITE(*,942)942 FORMAT(' ITABP: 'ç)
READ (., *) !TABPENDIF
931 ~RITE(.,930)IORD
930 FORMAT(' lORD: ',13,' Correc'• ' t ion : O/N ? 'ç)
READ<·,440)REPONSIF(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 931IF<REPONS.Ea.'O' lTHEN
~RITE( .,932)932 FORMAT<' lORD =' ç l
READ(.,·)IORDENDIF
951 ~RITE(*,950)JDEB
950 FORMAT (' JDEB= ' ,13,' Correc'* 'tion : O/N ? 'ç)
READ(*,440)REPONSIF(REPONS.NE.'N'.AND.REPONS.NE.'O' )GO TO 951IF(REPONS.Ea.'Q' )THEN
WR!TE <.,952)952 FORMAT (' JDEB =' ç )
READ ( *, * lJDEB
OL1
ENDIF1.IP.TT~( •• Q,(,nll~TN
960
962
851850
852
862
871870
872
860
861
*
*
*
t-WKMAI(' Jt-J.N= '>105,' L;orreC''tion : O/N ? 'çlREAD(*,440lREPONS1F(REPONS.NE.'N' .AND.REPONS.NE.'O' )GO TO 9611F(REPONS.EO.' 0' lTHEN
WRITE(·,962lFORMAT{' JF1N = 'çlREAO{*,*lJF1N
END1FWR1TE(·,850l1POSTEFORMAT (' 1POSTE= ',12.' Correc''tion : O/N ? 'çlREAD(*,440lREPONS1F(REPONS.NE.'N' .AND.REPONS.NE.'O' lGO TO 8511F(REPONS.EO.'O' lTHEN
WRITEC*,852lFORMAT {' 1POSTE = 'ç lREAO (li', * l 1POSTE
END1FSOHCTH=O.DO 860 1=1,IPOSTEWR1TE(*,870lI,CTH1ES(1lFORMAT<' CTH1ES{', 12,' l=' ,F5.3,' Corrt'C''tion : O/N ? 'çlREADC*,440lREPONS1F(REPONS.NE.'N' .AND.REPONS.NE.'O' lGO TO 8711FCREPONS.EO.'O'lTHEN
WR1TE(*,872lFORMAT(' CTH1ES = 'çlREAD{*,*lCTH1ES(1l
END1FSOMCTH=SOHCTH+CTHIES(1lCONTINUE1F(ABS(1.-S0HCTHl.GT .. DOOD01lWRITE(*.861l
FORMAT(!' La somme des coefficients n''est pas igale à 1 'Il
IF(ABS(1.-S0HCTHl.GT .. 000001)GO TO 862
3
REWINO(NUHFPAGlWRITE(NUMFPAG,200l1TABQ,ITABP,JAN1.JAN2,10RD,JDEB,]FINWRITE(NUMFPAG,205lIPOSTEWRITE(NUHFPAG,206l(CTH1ESCIl,I=1,1POSTE)WRITECNUHFPAG,210lSURFBV,HNAPO,DEFDEB,DEFCO,HN01,HO,HNO.A,COEFWRITE(NUHFPAG,210lQ,XT,X,P1,PZ,FN.AL,RZGO TO 2ENDIFRETURNEND
C _
SUBROUTINE DEF(HNAP,DEFCF,PA,ECT,IV,EBAS2,EBAS1,DU,COEF.Q.A,AL*,DEFCO,XT,R2,HNO,X,P1,P2,HO.FN,HN01,ER1.EC,RSl
EV=COEF*IVD=DEFCFD1=(DEFCO-DUl+DEO=AHAX1(Dl+HO-Hl.0.lEC=AHAX1(O.,X*A*PA-EO)H=AHAX1(0.,H1+X*A*PA-DI-EC-ER1)PD=X*A*PA-H+H1-EC1FCPD.LE.ER1) THEN
D=AM1N1{DU,AMAX1(0.,D-PD+ER1)lELSE
DU=AHIN1(DEFCO,PO+OU-D-ER1l0=0.
ENDIF
S=S2+<1-Xl*A*PASl=AHAX1<0.,S-FN}RS=Q*SlEB=<l-Ql*Sl+S-SlER1=EV*<DU-D}/<DU+l0**<-10}iEB2=P2*EB*<HNO-HNAP}/(EB+HNO-HNAPlEBB=EB-EBZEB1=AHIN1<EBB,HN01-HN1}RS1=EB-EB1-EB2HN1I=HNlHNAPI=HNAPHN1=AHAX1(0 .• HN1+EB1-EBAS11EBAS1=<HN1+HN1Il*<1-EXP<-R2*24ll/2.HNAP=HNAP+<1-Pl}*EBZ-EBAS2EBAS2=(HNAP+HNAPI}*<1-EXP<-AL1}/2.ECT=EC+RS+RS1+EBAS1+EBAS2Hl=H-S2DEFCF=DRETURNEND
C _
SUBROUTINE AUTOCOR(VARENTREE,IORD.JDEB,JFIN.SUBCOR}DIHENSION VARENTREE(366}REAL HOYX.HOYYSOHX=O.SOHY=O.SOHX2=D.SOHY2=0.SOHXY=O.00 10 I=JDEB,JFIN-IORDSOHX=SOHX+VARENTREE(IlSOHY=SOHY+VARENTEE(I+IORD}SOHX2=SOHX2+VARENTREE<I}*VARENTREE<I}SOHY2=SOHY2+VARENTREE(I+IORD}*VARENTREE<!+IORO}
10 SOHXY=SOHXY+VARENTREE(I}*VARENTREE(I+IORD}HOYX=SOHX/(JFIN-IORD-JDEBlHOYY=SOHY/(JFIN-IORD-JDEB}VARX=SOHX2/<JFIN-IORD-JDEB}-HOYX*HOYXVARY=SOHYZ/(JFIN-IORD-JDEB}-HOYY*HOYYCOVXY=SOHXY/(JFIN-IORD-JDEB}-HOYX*HOYYSUBCOR=COVXY/SQRT(VARX*VARY}RETURNEND
C _
SUBROUTINE TOTAUX(VARENTREE,NJHOIS.IB.VARSORTIE>DIHENSION VARENTREE(366}.VARSORTIE(13),NJHOIS(12,~)
DO 5 1=1.135 VARSORTIE(I}=O.
HOIS=lDO 10 JOUR=1.364+IBVARSORTIE(HOIS}=VARSORTIE(HOIS}+AHAX1(O.,VARENTREE(JOUR»
10 IF(JOUR~GT.NJHOIS(HOIS.IB)lHOIS=HOIS+l
00 20 HOIS=l,1220 VARSORTIE(13}=VARSORTIE(13}+VARSORTIE(HOISl
RETURNEND
C _
SUBROUTINE LECPLUIE(NUHFPLU,PJOURN,JANPLU, IOENTPLU.IPOSTE,CTHIESlDIHENSION PJOURN(366},IPLUIE(31,lZ),JOX(12},CTHIES<10}nloTlo lnY/~1.?~.~1.~n.~1.~n.~1.7,1."In.7,1."In."I1/
uv ~u 1 =l, j66
50 PJOURNCII=O.READCNUHFPLU,looIIDENT,JAN
100 FORHATCI6,lX,I41JANPLU=JANIDENTPLU=IDENTIFCMOO<JAN,41.EQ.0)JOXC21=29IFCMOD<JAN,41.NE.OiJOXC21=28DO 20 IP=l,IPOSTEDO 10 JOUR=l,31READCNUHFPLU,110IIDENT1,JAN1,JOUR1,CIPLUIECJOUR,HOIS),HOIS=1.121
110 FORHATCI6,I4,I2,12141IFCIDENT1.NE.IDENT.OR.JAN1.NE.JAN.OR.JOUR1.NE.JOUR:THEN
WRITEC.,120IIOENT,IDENT1,JAN,JAN1,JOUR.JOURl120 FORHATC' ERREUR FICHIER PLUIES '/
• Il n"y a pas concordance entre les valeurs'". , supposées et les valeurs trouvées :'/,.' Valeurs supposées IDENT ' ,16,' Valeurs trouvées IDENT1 ',16/.' JAN ',16.' JAN1 ',16/.' JOUR • .16.' JOUR1 '.16/.,
ENDIF10 CONTINUE
JT=ODO 20 HOIS=1,12DO 20 JOUR=l,31IFCJOUR.LE.JOXCHO SIITHEN
J =JT+1P OURNIJTI=PJOURNCJTI+CTHIESCIPI.IPLUIECJOUR,HOISI
ENDIF20 CONTINUE
RETURNEND