chmfix
C CHMFIX SOURCE CHAT 05/01/12 21:59:02 5004 C====================================================================== * ISSU DE TRIOEF (TRFIX) * * NOUVELLE MODIF CONCERNANT LES COMPOSANTS H+ ET OH- DANS LE CAS * DE L'UTILISATION DE LA BDD MINEQL MODIFIEE * * ATTENTION! TOTAQ DE H = TOTAQ DE H - TOTAQ DE OH * TOTFIX DE H =TOTFIX DE H - TOTFIX DE OH * * A CETTE DATE FIX FORTRAN FAIT UNE SELECTION CORRECTE POUR LES PHASES * AQUEUSES ET SOLIDES (EN L'ABSENCE DE PHASES ADSORBEES-> CF LA RQUE * DS LE SP A CE SUJET) * * ************************************************************************ * C TABLEAU TOTAQ(J) DU SEGMENT SP2 AVEC LES CONCENTRATIONS C TOTALES EN SOLUTION DES COMPOSANTS, @ PARTIR DES CONCENTRATIONS EN C ESPECES DE TYPES 1 ET 2, CES DERNIERES CORRIGEES DES CONCENTRATIONS C EN COMPLEXES DE SURFACE (ADSORBATS) C C EN EFFET APRES CALCUL MINEQL LES CONCENTRATIONS EN ESPECES DE TYPE C 1 ET 2 SONT EXPRIMEES A L'EQUILIBRE AVEC LES PHASES SOLIDES C EVENTUELLES, IL SUFFIT DONC D'EN SOUSTRAIRE LES CONCENTRATIONS EN C ESPECES DE TYPE 2 COMPORTANT UN COMPOSANT DE SURFACE: 90 -> 96 C C ACTUELLEMENT LE TEST NE PORTE QUE SUR LE COMPOSANT 90 C C C TOTAQ(J) ET TOTFIX(J) SONT UTILISES POUR LE TRANSPORT C C TOTFIX(J) EST FORCE A 0.0 S'IL EST INFERIEUR @ E-15 C C DANS LE CALCUL DE TOTAQ ON PREND EN COMPTE LES ESPECES IMPOSEES EN C TYPE 3 EN PLUS DES ESPECES DE TYPE 1 ET 2 C C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C -INC SMLENTI SEGMENT IDSCHI REAL*8 GK(NYDIM),AA(NYDIM,NXDIM),FF(NZDIM,NPDIM) INTEGER IDX(NXDIM),IDY(NYDIM),IDZ(NZDIM),IDP(NPDIM),NN(6) INTEGER IDECY(NYDIM),IONZ(NXDIM) CHARACTER*32 NAME(NXDIM),NAMESP(NYDIM) ENDSEGMENT SEGMENT SP2 REAL*8 GX(NXDIM),XX(NXDIM),GS(NZDIM),SS(NZDIM) REAL*8 TOT(NXDIM),TOTAQ(NXDIM),TOTFIX(NXDIM),GKS(NZDIM) REAL*8 YY(NXDIM),ZZ(NXDIM,NXDIM),CC(NYDIM),GC(NYDIM) ENDSEGMENT SEGMENT IZRED INTEGER ITAB(NCR,2) REAL*8 ATAB(NCR,2) ENDSEGMENT C NXDIM=IDX(/1) NYDIM=IDY(/1) NZDIM=IDZ(/1) NPDIM=IDP(/1) II=NN(1)+NN(2) JJ=NXDIM IJ=NN(1)+NN(2)+NN(3)+1 IK=NN(1)+NN(2)+NN(3)+NN(4) IL=NN(1)+NN(2)+1 IM=NN(1)+NN(2)+NN(3) C JSOH=0 NCR=0 IDH=0 IDE=0 C IF (NN(2).EQ.0) RETURN L=NN(1)+1 DO 10 J=1,NXDIM IF (IDX(J).EQ.90) THEN JSOH=J ENDIF TOTFIX(J)=0.D0 TOTAQ(J)=0.D0 10 CONTINUE C DO 35 J=1,NXDIM * TYPE I ET II DO 30 I=1,II IF ( ABS(AA(I,J)).GT.0.D0 ) THEN IF ( IDECY(I).EQ.0 ) THEN TOTAQ(J)=TOTAQ(J)+CC(I)*AA(I,J) ELSE IF( IDECY(I).EQ.1 ) THEN TOTFIX(J)=TOTFIX(J)+CC(I)*AA(I,J) ENDIF ENDIF 30 CONTINUE C /TEST SUR LES SOLIDES/ * TYPE IV DO 31 I=IJ,IK IF (ABS(AA(I,J)).GT.0) THEN TOTFIX(J)=TOTFIX(J)+CC(I)*AA(I,J) ENDIF 31 CONTINUE 35 CONTINUE C PRISE EN COMPTE DES ESPECES IMPOSEES TYPE 3 IF(LIMP3.NE.0)THEN MLENTI=LIMP3 SEGACT MLENTI JG=LECT(/1) DO 32 I3=1,JG I4= LECT(I3) IF(I4.NE.99)THEN DO 33 J=1,NXDIM IF(ABS(AA(I,J)).GT.0.D0)THEN C TOTAQ(J)=TOTAQ(J)+CC(I)*AA(I,J) TOTAQ(J)=TOTAQ(J)+(10**(-GK(I)))*AA(I,J) ENDIF 33 CONTINUE ENDIF 32 CONTINUE SEGDES MLENTI ENDIF C IF(IADH.NE.0)THEN TOTFIX(IDH)=TOTFIX(IDH)-TOTFIX(IDOH) TOTAQ(IDH) =TOTAQ(IDH) -TOTAQ(IDOH) ENDIF IF(IOXYDO.NE.0) THEN NCR=ITAB(/1) DO 40 I=1,NCR I1=ITAB(I,1) C TOTFIX(IDH)=TOTFIX(IDH)+ATAB(I,2)*TOTFIX(ID2) TOTAQ(IDH) =TOTAQ(IDH) +ATAB(I,2)*TOTAQ(ID2) C TOTFIX(IDE)=TOTFIX(IDE)+ATAB(I,1)*TOTFIX(ID2) TOTAQ(IDE) =TOTAQ(IDE) +ATAB(I,1)*TOTAQ(ID2) C TOTFIX(ID1)=TOTFIX(ID1)+TOTFIX(ID2) TOTAQ(ID1) =TOTAQ(ID1) +TOTAQ(ID2) C 40 CONTINUE ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales