chimi1
C CHIMI1 SOURCE OF166741 23/08/04 21:15:03 11718 SUBROUTINE CHIMI1 C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C OPERATEUR CHI1 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMTABLE -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 IZIADR INTEGER IADR(NCR) ENDSEGMENT POINTEUR MLIDEN.MLENTI CHARACTER*8 MTYPI,CHARI,MTYPR,CHARR CHARACTER*(LOCHAI) CHARB,CHARL,CHART LOGICAL LTEMPE,LOGIR,LOGRE C MLENT3=0 LIMP3=0 IRETOU=0 MTAB1=0 IF(IRETOU.EQ.0)THEN * write(6,*)' mtab1 ',mtab1 IF(IRETOU.EQ.0)RETURN ENDIF C ON LIT LES ADRESSES DE LA BASE DE DONNEE IOCHI1=0 IOCHI2=0 IOCHI3=0 LBB=0 LBL=0 LBT=0 DO 10 I=1,3 IF(IRETOU.EQ.0)GO TO 11 IF(CHARR(1:4).EQ.'COMP')THEN IF(IRETOU.EQ.1)IOCHI1=IVAL ELSEIF(CHARR(1:4).EQ.'LOGK')THEN IF(IRETOU.EQ.1)IOCHI2=IVAL ELSEIF(CHARR(1:4).EQ.'ENTH')THEN IF(IRETOU.EQ.1)IOCHI3=IVAL ELSE MOTERR(1:6)='COMP ' ENDIF IF (IERR.NE.0) RETURN 10 CONTINUE 11 CONTINUE IF(IOCHI1.EQ.0)THEN IF(LBB.EQ.0)THEN MOTERR(1:4)='COMP' RETURN ELSE IOCHI1=80 ENDIF ENDIF IF(LBB.NE.0)THEN IF (IERR.NE.0) RETURN ENDIF IF(LBL.NE.0)THEN IF(CHARB(1:LBB).EQ.CHARL(1:LBL))THEN IOCHI2=IOCHI1 ELSE IF(IOCHI2.EQ.0)IOCHI2=IOCHI1+1 IF (IERR.NE.0) RETURN ENDIF ELSE IF(IOCHI2.EQ.0)IOCHI2=IOCHI1 ENDIF IF(LBT.NE.0)THEN IF(CHART(1:LBT).EQ.CHARL(1:LBL))THEN IOCHI3=IOCHI2 ELSE IF(IOCHI3.EQ.0)IOCHI3=IOCHI2+1 IF (IERR.NE.0) RETURN ENDIF ELSE ENDIF C SEGACT MTAB1 IVALI=1 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR='LISTENTI' CHARR=' ' * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(IERR.NE.0)RETURN MLIDEN=IRETR SEGACT MLIDEN NLIDEN=MLIDEN.LECT(/1) SEGDES MLIDEN LXMX=0 IVALI=1 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR=' ' * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(MTYPR.NE.' ')THEN IF(MTYPR.NE.'LISTENTI')THEN MOTERR(1:11)='CHXMX ' MOTERR(12:20)='LISTENTI' RETURN ENDIF LXMX=IRETR ENDIF LBDD=0 IVALI=1 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR=' ' * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(MTYPR.NE.' ')THEN IF(CHARR.EQ.'MINEQL ')THEN LBDD=0 ELSEIF(CHARR.EQ.'STRASBG ')THEN LBDD=1 ELSE MOTERR(1:11)='BDD ' MOTERR(12:20)='CONNU ' RETURN ENDIF ENDIF IF(IERR.NE.0)RETURN C ON GARDE LA LISTE DES ESPECES SIMPLES DE TYPE 3 * WRITE(6,*)'CHILEC et CHITRI faits' C IVALI=0 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR=' ' NVCOMP=0 * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(MTYPR.NE.' ')THEN IF((MTYPR.NE.'TABLE ').AND.(MTYPR.NE.'OBJET '))THEN MOTERR(1:11)='NVCOMP ' MOTERR(12:20)='TABLE ' RETURN ENDIF NVCOMP=IRETR IF(IERR.NE.0)RETURN ENDIF IVALI=0 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR=' ' NVESP=0 * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(MTYPR.NE.' ')THEN IF((MTYPR.NE.'TABLE ').AND.(MTYPR.NE.'OBJET '))THEN MOTERR(1:11)='NVESP ' MOTERR(12:20)='TABLE ' RETURN ENDIF NVESP=IRETR ENDIF IVALI=0 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR=' ' NVSOSO=0 * write(6,*)' mtab1 ',mtab1 * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(MTYPR.NE.' ')THEN IF((MTYPR.NE.'TABLE ').AND.(MTYPR.NE.'OBJET '))THEN MOTERR(1:11)='NVSOSO ' MOTERR(12:20)='TABLE ' RETURN ENDIF NVSOSO=IRETR * WRITE(6,*)'CHIMI1, NVSOSO=',NVSOSO ENDIF IVALI=0 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR='LISTENTI' IZECH=0 * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(MTYPR.NE.' ')THEN IZECH=IRETR ENDIF IVALI=0 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR='TABLE' ICLIM=0 MLENT=0 * MTYPR,IVALR,XVALR,CHARR,LOGRE,IRETR) IF(MTYPR.NE.' ')THEN ICLIM=IRETR IF(IERR.NE.0)RETURN ENDIF LTEMPE=.FALSE. LTMP=1 LOGIR=.TRUE. IVALI=1 XVALI=0.D0 IRETI=0 IVALR=0 XVALR=0.D0 IRETR=0 MTYPI='MOT ' MTYPR=' ' CHARR=' ' * MTYPR,IVALR,XVALR,CHARR,LOGIR,IRETR) IF(MTYPR.NE.' ')THEN IF(CHARR.EQ.'OUI')THEN LTEMPE=.TRUE. ELSEIF(CHARR.EQ.'NON')THEN LTEMPE=.FALSE. ELSEIF(MTYPR.EQ.'ENTIER ')THEN LTEMPE=.TRUE. LTMP=IVALR IF((LTMP.NE.1).AND.(LTMP.NE.2))THEN MOTERR(1:40)='**********************TEMPERATURE ' RETURN ENDIF ELSE MOTERR(1:40)='**********************TEMPERATURE ' RETURN ENDIF ENDIF IF(LTEMPE)THEN IF(IOCHI3.EQ.0)IOCHI3=IOCHI2 ENDIF SEGDES MTAB1 C ON CREE LA TABLE RESULTAT * 0,0.D0,'CHIMI1',.TRUE.,0) C TABLE DESCHI (DESCRIPTION) CHARR=' ' * 0,0.D0,CHARR,.TRUE.,MTAB2) SEGDES MTAB2 MTAB2=0 IF(MLENT3.NE.0)THEN SEGDES MLENT3 ENDIF IF(IERR.NE.0)RETURN CHARR=' ' * 0,0.D0,CHARR,.TRUE.,MTAB1) SEGDES MTAB1 IF(MTAB2.NE.0)THEN CHARR=' ' * 0,0.D0,CHARR,.TRUE.,MTAB2) SEGDES MTAB2 ENDIF IF(LTEMPE)THEN CHARR=' ' * 0,0.D0,CHARR,.TRUE.,MTAB1) SEGDES MTAB1 ENDIF REWIND(UNIT=IOCHI1) CLOSE(UNIT=IOCHI1) IF(IOCHI1.NE.IOCHI2)THEN REWIND(UNIT=IOCHI2) CLOSE(UNIT=IOCHI2) ENDIF IF((IOCHI3.NE.IOCHI2).AND.LTEMPE)THEN REWIND(UNIT=IOCHI3) CLOSE(UNIT=IOCHI3) ENDIF SEGDES MTAB3 SEGSUP IDSCHI C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales