* INICHIMI PROCEDUR JC220346 12/09/12 21:15:07 7501 G1/MAILLAGE ; ******************************************************************** * initialisation des données de CHI1 et CHI2 avec des constantes * sur le maillage G1 ******************************************************************** BASE1= BBD1 ; 'SINON' ; FINSI ; BASE2= BBD2 ; 'SINON' ; FINSI ; * * On trie les objets ILTB1= VRAI ; ILTB2= VRAI ; ILTB3= VRAI ; TB2=TTB1 ; ILTB1=FAUX ; 'SINON' ; TBC2=TTB1 ; ILTB2=FAUX ; 'SINON' ; TBPAR2=TTB1 ; ILTB3=FAUX ; 'SINON' ; 'MESS' 'L objet ne convient pas' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; TB2=TTB2 ; ILTB1=FAUX ; 'SINON' ; TBC2=TTB2 ; ILTB2=FAUX ; 'SINON' ; TBPAR2=TTB2 ; ILTB3=FAUX ; 'SINON' ; 'MESS' 'L objet ne convient pas' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; TB2=TTB3 ; ILTB1=FAUX ; 'SINON' ; TBC2=TTB3 ; ILTB2=FAUX ; 'SINON' ; TBPAR2=TTB3 ; ILTB3=FAUX ; 'SINON' ; 'MESS' 'L objet ne convient pas' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; * * 'SI' ILTB1; 'MESS' 'Entrez la liste des composants ' ; TB2%GIDEN LICOMP ; FINSI ; INICHI1 TB2 BASE1 BASE2 ; 'MESS''Voulez vous afficher le contenu actuel de l objet CHIMI1 ?' ; 'OBTE' IAFFI ; SI(EGA IAFFI 'QUIT') ; FINSI ; 'SI' ('EGA' IAFFI 'OUI') ; IMPCHI1 TB3 'TB3' ; 'FINS' ; * * OBJET PARMCHI2 SI ILTB3 ; TBPAR2%GITMAX 95 ; TBPAR2%GEPS 1.D-4 ; FINSI ; *TBPAR2%GSORTIE (MOTS 'PREC' 'TYP3' 'SOLU' 'FION') ; * * * OBJET DONCHI2 LICOMP= TB2%ACCES GIDEN ; *LIST LICOMP ; LITOT= LICOMP ; IITOT= VRAI ; SI ( ILTB2) ; FINSI ; REPE BBCOMP NBCOMP ; CTOT=CTOT+CTOT1 ; CLGC= CLGC+CLGC1 ; FIN BBCOMP ; SINON ; CLOGC= (TBC2%ACCES GTOT) -(TBC2%ACCES GTOT) ; TBC2%GLOGC CLOGC ; FINSI ; INICHI2 TB3 TBC2 ; IITOT= FAUX ; FINSI ; FINSI ; * 'SI' IITOT ; * LOGC ; 'REPE' BOULGC NBCOMP ; 'MESS' ' Entrez LOGC de ' NULGC MO4 ; VLGC= 0. ; 'FINS' ; CLGC= CLGC+CLGC1 ; 'FIN' BOULGC ; * LIST CLGC ; REPE BLGC1 ; 'SI' ('EGA' MOLGC 'Quitter' ) ; 'QUIT' BLGC1 ; 'FINS' ; 'MESS' ' Entrez LOGC de ' NU2 MO4 ; CLGC= CLGC+CLGC1- CLGC2 ; 'FINS' ; FIN BLGC1 ; TBC2%GLOGC CLGC ; * DEFINITION DES CONCENTRATIONS TOTALES * NLICLIM= 0 ; LICLIM= TB2.CLIM.TYP3*1 ; LICOMP3= TB2.CLIM.TYP3*1 ; 'FINSI' ; * MESS ' LITOT' ; LIST LITOT ; * 'MESS' ' NOMBRE D ACTIVITE IMPOSE ' NLICLIM ; TB00%GIDEN (TB2%ACCES GIDEN) ; FINSI ; 'REPE' BOUCLIM NLICLIM ; LIRACTI= VRAI ; SI (NON (EGA ICTYP5 NBTYP5)) ; LIRACTI=FAUX ; FINSI ; FINSI ; SI LIRACTI ; 'MESS' ' Entrez l activité de ' NU1 ' son nom local est ' MO1 ; SINON ; VCLIM=0. ; FINSI ; CCLIM= CCLIM +CCLI1 ; CIMP3= NUCLIM ; LICOMP3= (TB2.CLIM.COMP3)*1 ; FINSI ; CTOT= CTOT+CTOT1 ; 'FIN' BOUCLIM ; * LIST CCLIM ; TBC2%GCLIM CCLIM ; 'FINSI' ; 'FINSI' ; * * cas ou l'on fixe la concentration de certains minéraux 'MESS' 'Voulez vous fixer la concentration de certains minéraux ?' ; OBTE IMODII ; SI(EGA IMODII 'QUIT') ; FINSI ; SI (EGA IMODII 'OUI') ; MESS 'Entrez la liste de ces espèces ' ; * on contruit une liste de nombre de composant par espèce * on va garder l'indice de chaque espèce dans IDY pour faciliter * les recherches dans MATRICEA REPE BSPCF1 NESPCF ; NBCC1=0 ; REPE BOUESP NBESP ; SI (EGA NUNU NUMESP) ; IIND1= &BOUESP ; QUITTER BOUESP ; FINSI ; FIN BOUESP ; REPE BOUCOMP NBCOMP ; NUAAA= NBESP*(&BOUCOMP - 1) + IIND1 ; SI ( NEG AAA 0. ) ; NBCC1= NBCC1+1 ; FINSI ; FIN BOUCOMP; FIN BSPCF1 ; LIESPCF= LIESPCF0 * 1 ; REPE BSPCF2 NESPCF ; REPE BSPCF3 NESPCF ; SI ( EGA ILL2 ILL3) ; QUITTER BSPCF3 ; FINSI ; FIN BSPCF3 ; FIN BSPCF2 ; 'OUBL' LLL1 ; 'OUBL' L1DY ; 'OUBL' LIESPCF0 ; II2= NLICLIM*1 ; 'REPE' BOUCLI3 NESPCF ; REPE BOUC11 NBCOMP ; NUAAA= NBESP*(&BOUC11 - 1) + IIND1 ; SI ( NEG AAA 0. ) ; QUITTER BOUC11 ; FINSI ; SI (EGA II2 II3) ; QUITTER BOUC11 ; SINON ; IDX1= 0 ; FINSI ; FINSI ; FIN BOUC11 ; SI ( EGA IDX1 0) ; MESS 'Tous les composants de ' ILL3 'sont déja fixés' ; SINON ; II2= II2 + 1 ; FINSI ; FIN BOUCLI3 ; *MESS ' LICLIM' ; LIST LICLIM ; *MESS ' LICOMP3 ' ; LIST LICOMP3 ; * on va recalculer chi1 avec les nouvelles contraintes TBB2%GIDEN (TB2%ACCES GIDEN); TBB2%GBDD (TB2%ACCES GBDD); * l'opération qui suit ne marche pas car par les methodes on accede au * contenu .Lorsque le contenu est NON on cherche a executer l'opérateur * NON. Je n'ai pas trouvé le moyen de preciser qu'il s'agit d'un mot. *TBB2%GTEMPERA (TB2%ACCES GTEMPERA); TBB2%GTEMPERA TB2.TEMPERATURE ; TBB2%GCLIM TYP3 LICLIM ; TBB2%GCLIM COMP3 LICOMP3 ; TBB2%GCHXMX (TB2%ACCES GCHXMX); FINSI ; TBB2%GCLIM TYP6 (TB2%ACCES GCLIM TYP6); FINSI ; TBB2%GCLIM TYP5 (TB2%ACCES GCLIM TYP5); FINSI ; TBB2%GCLIM TYP4 (TB2%ACCES GCLIM TYP4); FINSI ; FINSI ; TBB2%GNVCOMP ( TB2%ACCES GNVCOMP) ; FINSI ; TBB2%GNVESP ( TB2%ACCES GNVESP ) ; FINSI ; TBB2%GNVSOSO ( TB2%ACCES GNVSOSO) ; FINSI ; TBB2%GECHANGE (TB2%ACCES GECHANGE) ; FINSI ; SI (EGA NLICLIM 0); FINSI ; II3= II2- NLICLIM ; REPE BOUCLI4 II3 ; 'MESS' 'Entrez la quantité voulue de ' IESPCF ; CTOT= CTOT+CTOT1 ; CCLIM= CCLIM+CCLI1 ; FIN BOUCLI4 ; SI (NEG NLITOT 0) ; 'REPE' BOUTOT NLITOT ; 'MESS' ' Entrez la concentration totale de ' NUTOT MO4 ; VTOT= 0. ; 'FINS' ; CTOT= CTOT+CTOT1 ; 'FIN' BOUTOT ; FINSI ; * LIST CTOT ; * REPE BCTOT ; 'SI' ('EGA' MOTOT 'Quitter' ) ; 'QUIT' BCTOT ; 'FINS' ; 'MESS' ' Entrez la concentration totale de ' NU2 MO4 ; CTOT= CTOT+CTOT1 -CTOT2 ; 'FINS' ; FIN BCTOT ; * TBC2%GTOT CTOT ; * LIST TB3.IDEN.NOMTYP3 ; * LIST CCLIM ; FINSI ; TBC2%GCLIM CCLIM ; *LIST TBC2 ; * Prise en compte des quantités de minéraux demandées MESS 'Voulez vous vérifier la neutralité électrique ?' ; 'OBTE' ISUITE ; SI (EGA ISUITE 'OUI' ) ; 'SI' IERR ; 'FINS' ; FINSI ; * TB4 = SPECHI2 TB3 TBC2 TBPAR2 ; 'MESS''Voulez afficher les speciations ?' ; 'OBTE' ISPECI ; SI (EGA ISPECI 'OUI' ) ; IIMP1= 1 ; 'FINSI' ; OPTION IMPI IIMP1 ; OPTION IMPI IIMPI ; * REPE BOUCLI5 II3 ; TOT2=( TBC2%ACCES GTOT) -TOT00 + TOT1 ; TBC2%GTOT TOT2 ; FIN BOUCLI5 ; REPE BOUCLI6 II3 ; REPE BDY2 NIDY ; SI(EGA NUCLIM NUNU1) ; NUDY= &BDY2 ; QUITTER BDY2 ; FINSI ; FIN BDY2 ; REPE BDX2 NIDX ; NUAA= NIDY*(&BDX2-1)+NUDY ; TOTO=(TBC2%ACCES GTOT)+ (AAA* CONCX) ; TBC2%GTOT TOTO ; FIN BDX2; FIN BOUCLI6 ; TBC2%GCLIM CCGCLIM ; * LIST TB3.IDEN.NOMTYP3 ; * LIST (TBC2%ACCES GCLIM) ; SINON ; TBC2%OUBLIER CLIM ; FINSI ; FINSI ; * ========= fin du cas ou l'on fixe la concentration des minéraux SINON ; SI (NEG NLITOT 0) ; 'REPE' BOUTOT NLITOT ; 'MESS' ' Entrez la concentration totale de ' NUTOT MO4 ; VTOT= 0. ; 'FINS' ; CTOT= CTOT+CTOT1 ; 'FIN' BOUTOT ; FINSI ; * LIST CTOT ; * REPE BCTOT2 ; 'SI' ('EGA' MOTOT 'Quitter' ) ; 'QUIT' BCTOT2 ; 'FINS' ; 'MESS' ' Entrez la concentration totale de ' NU2 MO4 ; CTOT= CTOT+CTOT1 -CTOT2 ; 'FINS' ; FIN BCTOT2 ; * TBC2%GTOT CTOT ; *OUBLIE TBB2 ; * =================== fin de la lecture des concentrations totales FINSI ; FINSI ; * * * ================ boucle infinie 'REPE' BOUINF ; * MESS 'Voulez vous vérifier la neutralité électrique ?' ; 'OBTE' ISUITE ; SI (EGA ISUITE 'QUIT' ) ; QUITTER BOUINF ; FINSI ; SI (EGA ISUITE 'OUI' ) ; 'SI' IERR ; 'FINS' ; FINSI ; * TB4 = SPECHI2 TB3 TBC2 TBPAR2 ; 'MESS''Voulez afficher les speciations ?' ; 'OBTE' ISPECI ; SI (EGA ISPECI 'OUI' ) ; IIMP1= 1 ; 'FINSI' ; OPTION IMPI IIMP1 ; OPTION IMPI IIMPI ; * * =========== on prend en compte le dernier LOGC calculé TBC2%GLOGC (TB4.LOGC) ; * ========== * ========== cas ou il y a des contraintes MESS 'Voulez vous que les contraintes fixées soient prises en compte' ' dans les valeurs des totaux ?' ; 'OBTE' ICCT ; SI(EGA ICCT 'QUIT') ; QUITTER BOUINF ; FINSI ; 'SI' ('EGA' ICCT 'OUI') ; TB00%GIDEN (TB2%ACCES GIDEN) ; FINSI ; * mess 'VALEUR INITIALE DE TOT ' ; LIST ( TBC2%ACCES GTOT) ; * MESS ' TB4 AQUE ' ; LIST TB4.AQUE ; * MESS ' TB4 FIXE ' ; LIST TB4.FIXE ; IP99=FAUX ; REPE BBCLIM NLICLIM ; SI (NUCLIM < 201) ; TOT2=( TBC2%ACCES GTOT) -TOT00 + TOT1 ; TBC2%GTOT TOT2 ; SI (EGA NUCLIM 99) ; IP99=VRAI ; FINSI ; SINON ; TOT2=( TBC2%ACCES GTOT) -TOT00 + TOT1 ; TBC2%GTOT TOT2 ; FINSI ; FIN BBCLIM ; * MO1 NU1 = NOESPCHI TB3 NUCLIM ; REPE B2CLIM NLICLIM ; SI (NON (EGA ICTYP5 NBTYP5)) ; MESS ' Entrez la quantité de minéral voulu pour ' NUCLIM ; REPE BDY NIDY ; SI(EGA NUCLIM NUNU1) ; NUDY= &BDY ; QUITTER BDY ; FINSI ; FIN BDY ; REPE BDX NIDX ; NUAA= NIDY*(&BDX-1)+NUDY ; TOTO=(TBC2%ACCES GTOT)+ (AAA* CONCX) ; TBC2%GTOT TOTO ; FIN BDX ; FINSI ; FINSI ; FIN B2CLIM ; * mess 'VALEUR FINALE DE TOT ' ; LIST ( TBC2%ACCES GTOT) ; TB2.CLIM%OUBLIER COMP3 ; FINSI ; TB2.CLIM%OUBLIER TYP3 ; TBC2%OUBLIER CLIM ; IDET= VRAI ; SI IP99 ; TB2%GCLIM TYP6 LILI ; SINON ; FINSI ; FINSI ; IDET= FAUX ; FINSI ; IDET= FAUX ; FINSI ; IDET= FAUX ; FINSI ; SI IDET ; TB2%OUBLIER CLIM ; FINSI ; ****** MESS 'Voulez vous afficher l activité de certaines espèces ?' ; 'OBTE' ISUITE ; SI(EGA ISUITE 'QUIT') ; QUITTER BOUINF ; FINSI ; SI (EGA ISUITE 'OUI' ) ; 'MESS' ' entrez la liste de ces espèces' ; FINSI ; ****** 'MESS''Voulez vous afficher le contenu actuel de l objet CHIMI1 ?' ; 'OBTE' IAFFI ; 'SI' ('EGA' IAFFI 'OUI') ; IMPCHI1 TB3 'TB3' ; 'FINS' ; SI(EGA IAFFI 'QUIT') ; QUITTER BOUINF ; FINSI ; *TB4 = SPECHI2 TB3 TBC2 TBPAR2 ; ** 'MESS''Voulez afficher les speciations ?' ; 'OBTE' ISPECI ; SI (EGA ISPECI 'OUI' ) ; IIMP1= 1 ; 'FINSI' ; OPTION IMPI IIMP1 ; OPTION IMPI IIMPI ; ** ****** MESS 'Voulez vous afficher l activité de certaines espèces ?' ; 'OBTE' ISUITE ; SI(EGA ISUITE 'QUIT') ; QUITTER BOUINF ; FINSI ; SI (EGA ISUITE 'OUI' ) ; 'MESS' ' entrez la liste de ces espèces' ; FINSI ; ****** MESS 'Voulez vous vérifier la neutralité électrique ? ' ; 'OBTE' ISUITE ; SI(EGA ISUITE 'QUIT') ; QUITTER BOUINF ; FINSI ; SI (EGA ISUITE 'OUI' ) ; 'SI' IERR ; FINSI *TB4 = SPECHI2 TB3 TBC2 TBPAR2 ; ** 'MESS''Voulez afficher les speciations ?' ; 'OBTE' ISPECI ; SI (EGA ISPECI 'OUI' ) ; IIMP1= 1 ; 'FINSI' ; OPTION IMPI IIMP1 ; OPTION IMPI IIMPI ; ** ****** MESS 'Voulez vous afficher l activité de certaines espèces ?' ; 'OBTE' ISUITE ; SI(EGA ISUITE 'QUIT') ; QUITTER BOUINF ; FINSI ; SI (EGA ISUITE 'OUI' ) ; 'MESS' ' entrez la liste de ces espèces' ; FINSI ; ****** FINSI ; FINSI ; FINSI ; *LIST TBC2 ; *INICHI2 TB3 TBC2 ; *TB4 = SPECHI2 TB3 TBC2 TBPAR2 ; 'MESS''Voulez afficher les speciations ?' ; 'OBTE' ISPECI ; SI (EGA ISPECI 'OUI' ) ; IIMP1= 1 ; 'FINSI' ; OPTION IMPI IIMP1 ; OPTION IMPI IIMPI ; 'OBTE' ISUITE ; SI(EGA ISUITE 'QUIT') ; QUITTER BOUINF ; FINSI ; SI (EGA ISUITE 'OUI' ) ; INICHI1 TB2 BASE1 BASE2 ; *LIST LICOMP ; 'MESS''Voulez vous afficher le contenu actuel de l objet CHIMI1 ?' ; 'OBTE' IAFFI ; 'SI' ('EGA' IAFFI 'OUI') ; IMPCHI1 TB3 'TB3' ; 'FINS' ; 'FINSI' ; SI(EGA IAFFI 'QUIT') ; QUITTER BOUINF ; FINSI ; *LIST TBC2 ; INICHI2 TB3 TBC2 ; *TB4 = SPECHI2 TB3 TBC2 TBPAR2 ; 'MESS''Voulez afficher les speciations ?' ; 'OBTE' ISPECI ; SI (EGA ISPECI 'OUI' ) ; IIMP1= 1 ; 'FINSI' ; OPTION IMPI IIMP1 ; OPTION IMPI IIMPI ; 'MESS''Voulez vous arreter le calcul ?' ; 'OBTE' ISUITE ; SI (EGA ISUITE 'OUI' ) ; 'QUITTER' BOUINF ; 'FINSI' ; SI(EGA ISUITE 'QUIT') ; QUITTER BOUINF ; FINSI ; FINSI ; 'FIN' BOUINF ; FINP TB2 TB3 TBC2 ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales