prchan
C PRCHAN SOURCE SP204843 24/09/27 21:15:16 12017 SUBROUTINE PRCHAN C-------------------------------------------------------------------- C Ce sous programme permet : C C - De changer les elements d'un maillage C C - De convertir un MCHAML en CHPOINT (mot cle CHPO) C C - De convertir un CHPOINT en MCHAML (mot cle CHAM) C C - De changer le support d'un MCHAML C (mots cles NOEUDS, GRAVITE, RIGIDITE, MASSE et STRESSES) C C - De changer l'attribut d'un champ de points C C - De changer le nom du constituant d'un champ par element ou d un modele C C - De changer une rigidite cree par RELA en rigidite de dependence C C - Changer la casse d'un mot C-------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCNOYAU -INC CCHAMP -INC CCGEOME -INC SMELEME -INC SMLENTI -INC SMCHPOI -INC SMCHAML -INC SMRIGID -INC SMMODEL -INC SMLMOTS -INC SMCOORD PARAMETER (NTYP=31,LATRI=4,NLIG=9,NMOY=3) CHARACTER*4 LATRIB(LATRI) CHARACTER*4 LISMAT(3), LISCOM(2),LISMUL(2) CHARACTER*4 MOTLIG(NLIG), MOMOYE(NMOY) CHARACTER*72 CHAR,CHAR1 CHARACTER*8 CHAR8 CHARACTER*(LONOM) CNOM1,CNOM2 PARAMETER (LMOTL=512) CHARACTER*(LMOTL) MENT,MSOR CHARACTER*4 MOT1,MOT2,MOT3,MOT4 & 'STRESSES', 'THERMIQU', 'FACE ', 'P1CENTRE', & 'MSOMMET ', 'CHPO ', 'CHAM ', '--------', & '--------', 'TYPE ', 'ATTRIBUT', 'CONS ', & 'DEPE ', 'COND ', 'COMP ', 'INCO ', & 'TABL ', 'MINU ', 'MAJU ', 'TITR ', & 'LEGE ', 'NOMABS ', 'NOMORD ', 'STYL ', & 'MARQ ', 'TAIL ', 'COUL '/ DATA LATRIB / 'NATU', 'INDE', 'DIFF', 'DISC' / DATA LISMAT / 'SYME', 'ANTI', 'QUEL' / DATA LISCOM / 'COMP', 'REEL' / DATA LISMUL / 'MULT','DUPL' / DATA MOMOYE / 'SOMM', 'MOYE','SUPP'/ DATA MOTLIG / 'LIGN', 'LINE', 'QUAD', 'QUAF', 'MACR', 'CUBI', & 'DECL', 'LINB', 'SURF' / C On a besoin du MCOORD plus loin **** SEGACT,MCOORD ILIG=0 CNOM1 = ' ' CNOM2 = ' ' C --- Lecture des mots-clés de LISTYP --> IPLAC IF (IERR.NE.0) RETURN IF (IPLAC.NE.0) GOTO 1 C C --- Lecture des mots-clés de MOTLIG --> ILIG IF (ILIG.EQ.1) THEN CALL CHANLG RETURN ELSEIF(ILIG.EQ.2) THEN CALL CHANLI RETURN ELSEIF(ILIG.EQ.3) THEN CALL CHANQU RETURN ELSEIF(ILIG.EQ.4) THEN IF(IRET.EQ.0)RETURN IF(IKR.EQ.2)THEN CALL CHANQU ENDIF CALL C20227 RETURN ELSEIF(ILIG.EQ.5) THEN CALL CMACRO RETURN ELSEIF(ILIG.EQ.6) THEN CALL CCUBIC RETURN ELSEIF(ILIG.EQ.7) THEN CALL CQ2L RETURN ELSEIF(ILIG.EQ.8) THEN CALL CLINB RETURN ELSEIF(ILIG.EQ.9) THEN RETURN ENDIF C C --- Lecture parmi la liste des NOMS --> ITY IF (ITY.EQ.0) ITY=ILCOUR IF (IRETOU.EQ.0) GOTO 99 C CB On ajoute la lecture d'un LISTENTIER optionnel pour indiquer C quels N-uplet de noeuds du MELEME vont constituer la connectivité C du MAILLAGE final IF (IRETOU.NE.0) THEN SEGACT,MLENTI ITYP1 = MELEME.ITYPEL IF (ITYP1 .NE. 1) THEN RETURN ENDIF NBEL1 = MELEME.NUM(/2) JG = LECT(/1) C Cas des ELEMENTS POLY et MULT IF (NOMS(ITY).EQ.'POLY' .OR. NOMS(ITY).EQ.'MULT') THEN NBNN = JG NBELEM = 1 C Cas des ELEMENTS classiques ELSE NBNN = NBNNE(ITY) NBELEM = JG/NBNN IF (MOD(JG,NBNN) .NE. 0) THEN MOTERR(1:8) =CNOM2 MOTERR(9:12)=NOMS(ITY) RETURN ENDIF ENDIF NBSOUS=0 NBREF =0 SEGINI,IPT1 IPT1.ITYPEL=ITY DO 259 IEL=1,NBELEM J=(IEL-1) * NBNN IPT1.ICOLOR(IEL)=IDCOUL DO 2591 I=1,NBNN IELEM = MLENTI.LECT(J+I) IF((IELEM .GT. NBEL1) .OR. (IELEM .LE. 0)) THEN INTERR(1) =IELEM MOTERR(1:8)=CNOM1 SEGSUP,IPT1 RETURN ENDIF IPT1.NUM(I,IEL)=MELEME.NUM(1,IELEM) 2591 CONTINUE 259 CONTINUE MELEME = IPT1 ELSE IF (IERR.NE.0) RETURN ENDIF RETURN C PAS D OPERANDE CORRECTE TROUVE --> ERREUR 99 CONTINUE IF (IRETOU.NE.0) THEN ELSE ENDIF RETURN C C OPERANDE CORRECTE TROUVE dans LISTYP : on aiguille C 1 CONTINUE GOTO (300, 300, 300, 300, 300, 300, 300, 300, 300, 100, & 800, 400, 600,1200,1300,1400,1500,1500,1600,1700, & 2100,2200,2200,3000,3000,3000,3000,3000,3000,3000,3000),IPLAC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT D'UN MCHAML EN CHPOINT CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IF(IMOY.EQ.0) IMOY=2 IMOY=IMOY-1 c MOYENNE(par defaut) : IMOY=1 SOMME : IMOY=0 GAUSS:IMOY=2 C Tente la lecture optionnelle d'un CHPOINT IF(IERR.NE.0) RETURN IF(IRETO3.EQ.1) THEN C Tente la lecture optionnelle d'un MMODEL IF(IERR.NE.0) RETURN C L'OBJET fourni etait deja un CHPOINT on crée un CHPOINT dupliqué MCHPOI=IPOI2 SEGINI,MCHPO1=MCHPOI SEGACT,MCHPO1*NOMOD IF(IERR.NE.0) RETURN RETURN ENDIF C Tente la lecture obligatoire d'un MMODEL IF(IERR.NE.0) RETURN C Tente la lecture obligatoire d'un MCHAML IF(IERR.NE.0) RETURN IF (IRET .EQ. 0) THEN IF(IERR .NE. 0) RETURN ELSE IPOI2 = IPOI3 ENDIF cbp, 2018-03-26 : option SUPPORT pour sortir un chpoint defini aux points c de Gauss sans changer de support (but : tracer) IF(IMOY.EQ.2) THEN * Lecture éventuelle d'un CHAMELEM de caractéristiques IPCARA=0 * Appel a la SUBROUTINE de travail RETURN ENDIF IF(IRT2.NE.0) THEN RETURN ENDIF C A PRIORI LE CHPO EST DE NATURE DIFFUSE MCHPOI = IPOI4 SEGACT MCHPOI*MOD JATTRI(1) = 1 RETURN 400 CONTINUE 600 CONTINUE RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT D'UN CHPOINT EN MCHAML A PARTIR D'UN MODELE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Lecture éventuelle d'un lieu support IF (IERR.NE.0) RETURN IPLAC = ISUP C Par defaut, le support est aux noeuds IF (IPLAC.EQ.0) IPLAC = 1 C Tente la lecture optionnelle d'un MCHAML IF (IERR.NE.0) RETURN IF (IRETOU.NE.0) THEN CALL REFUS GOTO 300 ENDIF IF (IERR.NE.0) RETURN IF (IRETOU.EQ.0) GOTO 900 IF(IERR.NE.0) RETURN LONS=0 MMODEL=IPOI1 N1=KMODEL(/1) DO 41 L=1,N1 IMODEL=KMODEL(L) IF (FORMOD(1).EQ.'NAVIER_STOKES') LONS=LONS+1 41 CONTINUE IF(LONS.EQ.0) THEN C C Tente la lecture optionnelle du Sous_Type IF (IERR.NE.0) RETURN IF (IRETOU.EQ.0) THEN CHAR=' ' IRETOU=1 ENDIF IF (IERR.NE.0) RETURN ELSEIF(LONS.EQ.N1) THEN C Traitement specifique dans le cas d'un objet modele de C type Navier-Stokes IF (IERR.NE.0) RETURN IF (ISUP.NE.0) THEN IF (IERR.NE.0) RETURN IPOI3=IPOI4 ENDIF ENDIF RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT DE CHPOINT EN MCHAML A PARTIR D'UN MAILLAGE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Tente la lecture obligatoire d'un MAILLAGE IF(IERR.NE.0) RETURN C Tente la lecture obligatoire d'un CHPOINT IF(IERR.NE.0) RETURN C Tente la lecture optionnelle du Sous_Type IF(IERR.NE.0) RETURN C IF (IRETOU.EQ.0) THEN CHAR ='SCALAIRE' IRETOU=8 ENDIF C IF(IERR.NE.0) RETURN RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT DE SUPPORT D'UN MCHAML CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IF (IERR.NE.0) RETURN IF(IERR.NE.0) RETURN LONS=0 MMODEL=IPOI1 N1=KMODEL(/1) DO 42 L=1,N1 IMODEL=KMODEL(L) IF(FORMOD(1).EQ.'NAVIER_STOKES') LONS=LONS+1 42 CONTINUE MCHELM =IPOI2 IF(LONS.EQ.0) THEN C cas normal C On procède au REDUAF IF (IRET .EQ. 0) THEN IF (IERR .NE. 0) RETURN ENDIF IPOI2 = IPOI3 IF(IRT2.NE.0) THEN RETURN ENDIF ELSEIF(LONS.EQ.N1) THEN C Traitement specifique dans le cas d'un objet modele de C type Navier-Stokes IF (IERR.NE.0) RETURN ENDIF C Tente la lecture optionnelle du Sous_Type IF(IERR.NE.0) RETURN IF (IRETOU .NE.0) THEN IPOI1=IPOI3 GOTO 1201 ELSE C On remet le TITCHE du champ d'entree SEGACT MCHELM L1=TITCHE(/1) MCHEL1 = IPOI3 SEGACT MCHEL1*MOD N1=MCHEL1.INFCHE(/1) N3=MCHEL1.INFCHE(/2) SEGADJ,MCHEL1 MCHEL1.TITCHE=MCHELM.TITCHE ENDIF C RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT DE TITRE (mot clé 'TYPE') D'UN MCHAML CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC c mot clé 'TYPE' aussi utilisé pour RIGIDITE IF(IRETOU.EQ.0) GOTO 1250 IF(IERR.NE.0) RETURN RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT DU TYPE D'UNE RIGIDITE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IF (IERR.NE.0) RETURN RI1 = IRIG SEGINI,MRIGID=RI1 IF(IERR.NE.0) RETURN MTYMAT = CHAR8 SEGDES,MRIGID RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT DE L'ATTRIBUT D'UN CHAMP DE POINTS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 1300 CONTINUE C IF (IERR.NE.0) RETURN IF (IERR.NE.0) RETURN MCHPOI = IPOI1 C CHANGEMENT DE NATURE IF ( IPLAC .EQ. 1 ) THEN IPLAC = IPLAC - 2 SEGINI, MCHPO1=MCHPOI DO iou=1,mchpo1.ipchp(/1) msoupo=mchpo1.ipchp(iou) segini,msoup1=msoupo mchpo1.ipchp(iou)=msoup1 ENDDO IPOI2 = MCHPO1 MCHPO1.JATTRI(1) = IPLAC ELSE MOTERR(1:4)='NATU' RETURN ENDIF RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT DE CONSTITUANT D'UN MCHAML ou d'un MMODEL CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IF (IERR.NE.0) RETURN IF (iretou.eq.1) THEN MCHELM = IPOI1 SEGINI , MCHEL1 = MCHELM IF (IERR.NE.0) RETURN N1 = MCHEL1.CONCHE(/2) CHAR1 = MCHEL1.CONCHE(1) DO 1410 I=1,N1 IF ( MCHEL1.CONCHE(I) .NE. CHAR1) THEN SEGSUP MCHEL1 RETURN ENDIF 1410 CONTINUE DO 1420 I=1,N1 MCHEL1.CONCHE(I) = CHAR 1420 CONTINUE IPOI1 = MCHEL1 RETURN ELSE IF (ierr.ne.0) RETURN mmode1 = ipoi1 n1 = mmode1.kmodel(/1) imode1 = mmode1.kmodel(1) char1(1:LCONMO) = imode1.conmod IF (n1.gt.1) THEN DO ikmo = 2,n1 imode2 = mmode1.kmodel(ikmo) IF (char1(1:LCONMO).ne.imode2.conmod(1:LCONMO)) THEN RETURN ENDIF ENDDO ENDIF segini,mmodel = mmode1 IF (IERR.NE.0) RETURN DO ikmo = 1,n1 imode1 = kmodel(ikmo) segini,imodel = imode1 NFOR=FORMOD(/2) C CAS DARCY OU NAVIER ON OUBLIE LA TABLE DE PRECONDITIONNEMENT IF((IDARC.NE.0).OR.(INAVI.NE.0).OR.(IEULE.NE.0)) INFMOD(2)=0 kmodel(ikmo) = imodel conmod = char ENDDO ipoi1 = mmodel RETURN ENDIF CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT D UNE RIGIDITE CREE PAR RELATION C EN MATRICE DE DEPENDANCE OU DE CONDENSATION CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IF (IERR.NE.0) RETURN C verification que la rigidité ne contient que des relation C c'est à dire n'est supportée que par des maillage de type 22 C MRIGID = IRIG SEGACT, MRIGID*NOMOD DO 1510 I=1,IRIGEL(/2) MELEME = IRIGEL(1,I) SEGACT , MELEME*NOMOD IF (ITYPEL.NE.22) THEN RETURN ENDIF 1510 CONTINUE C C matrice de depedence MRIGID = IRIG SEGACT MRIGID segini , ri1=MRIGID iri1 = ri1 C nrige=8 nrigel=irigel(/2) segadj ri1 DO 1520 i=1,nrigel ri1.irigel(8,i)=1 1520 CONTINUE segdes mrigid,ri1 C IF(iplac.eq.17) THEN ELSE ENDIF RETURN c RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CHANGEMENT DE NOM D'INCONNUES PRIMALE ET DUALE D'UNE MATRICE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 1700 CONTINUE IF (IRETOU.NE.0) THEN CALL REFUS CALL MACHIN RETURN ENDIF C lecture du mot cle COMPLEXE ou REEL ou rien IF( ierr.ne.0) RETURN IF(IIMPI.ge.3) write(IOIMP,*) '>>> CHAN INCO de ',RI1,' <<<' c ---Cas de 4 LISTMOTS ou 4 MOT --- IF(IVAL.EQ.0 )THEN IF (ilmots.eq.0) then IF( ierr.ne.0) RETURN IF( ierr.ne.0) RETURN IF( ierr.ne.0) RETURN IF( ierr.ne.0) RETURN JGN=4 JGM=1 segini mlmot1,mlmot2,mlmot3,mlmot4 ELSE IF( ierr.ne.0) RETURN IF( ierr.ne.0) RETURN IF( ierr.ne.0) RETURN ENDIF C lecture de la nature SYME ANTI ... IPLAMA=0 C Par defaut : 'NON SYMETRIQUE' IF (IPLAMA.EQ.0) IPLAMA=3 C lecture du mot cle MULT ou DUPL (ou rien) C segact mlmot1,mlmot2,mlmot3,mlmot4 IF(il1.ne.il2.or.il3.ne.il4) THEN *dbg write(ioimp,*) 'il1,il2,il3,il4=',il1,il2,il3,il4 RETURN ENDIF IF(IIMPI.ge.3) write(IOIMP,*) $ 'cas de 4 LISTMOTS ou 4 MOTS fournis ' c ---Cas COMPLEXE/REEL--- ELSE JGN=4 JGM=lnomdd segini mlmot1,mlmot2,mlmot3,mlmot4 DO jkl=1,lnomdd ENDDO IF(IIMPI.ge.3) write(IOIMP,*) 'cas COMPLEXE/REEL' ENDIF C Creation du MRIGID de sortie = presque copie de l entree segini,mrigid=ri1 ichole=0 imgeo1=0 imgeo2=0 isupeq=0 jrcond=0 jrdepp=0 jrdepd=0 jrelim=0 jrgard=0 jrtot=0 DO 1701 k=1,irigel(/2) irigel(7,k) = IPLAMA-1 C creation des XMATRI (avec la symetrie identique a MRIGID.irigel(4,k)) XMATR1=irigel(4,k) segini,XMATRI=XMATR1 irigel(4,k)=XMATRI XMATRI.SYMRE=irigel(7,k) XMATRI.SYMVER=0 c creation et modif du DESCR des1=irigel(3,k) segini,descr=des1 irigel(3,k)=descr nbdua=lisdua(/2) IF(lisinc(ka).EQ.'LX '.and.iplmul.eq.0) go to 1702 DO 1703 kb=1,il1 go to 1702 ENDIF 1703 CONTINUE 1702 CONTINUE DO 1704 ka=1,nbdua IF( lisdua(ka).eq.'FLX '.and.iplmul.eq.0) go to 1704 DO 1705 kb=1,il3 go to 1704 ENDIF 1705 CONTINUE 1704 CONTINUE C on teste si c'est un LX : si oui, on crée un nouveau noeud C rem : on suppose qu'il n y a qu'1 LX par matrice et a une C position quelconque IF(iplmul.lt.2) goto 1706 IF (lisinc(ka).eq.'LX '.and.lisdua(ka).eq.'FLX ') THEN IF(IIMPI.ge.3) write(IOIMP,*) $ 'creation de nouveaux noeuds LX' c IF(IIMPI.ge.3) THEN c write(IOIMP,*) 'mlmot1=',(mlmot1.mots(iou),iou=1,il1) c write(IOIMP,*) 'mlmot2=',(mlmot2.mots(iou),iou=1,il2) c write(IOIMP,*) 'mlmot3=',(mlmot3.mots(iou),iou=1,il3) c write(IOIMP,*) 'mlmot4=',(mlmot4.mots(iou),iou=1,il4) c write(IOIMP,*) 'lisinc=',(lisinc(iou),iou=1,nbinc) c write(IOIMP,*) 'lisdua=',(lisdua(iou),iou=1,nbdua) c ENDIF ipt1=irigel(1,k) segini,meleme=ipt1 irigel(1,k)=meleme segact,MCOORD*MOD inp=NOELEP(ka) DO 1708 iel=1,num(/2) NBPTS=NBPTS + 1 num(inp,iel)=NBPTS 1708 CONTINUE segadj,MCOORD segdes,mcoord ENDIF 1707 CONTINUE 1706 CONTINUE 1701 CONTINUE IF(ival.eq.0) THEN if (ilmots.eq.0) then segsup mlmot1,mlmot2,mlmot3,mlmot4 endif ELSE segsup mlmot1,mlmot2,mlmot3,mlmot4 ENDIF RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C changement de presentation d'un chargement C mise sous forme table de chpoint (plus rapide pour l'opérateur TIRE) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Changement de la casse d'un mot CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 2200 CONTINUE ICASS=IPLAC-22 IF (IERR.NE.0) RETURN RETURN 3000 CONTINUE IF (CHAR8.NE.'CHPOINT'.AND.CHAR8.NE.'EVOLUTIO') THEN MOTERR(1:16)='CHPOINT EVOLUTIO' RETURN ENDIF CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Changement de titre d'un CHPOINT CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IF (CHAR8.EQ.'CHPOINT ') THEN IF (IERR.NE.0) RETURN MCHPO1=IP1 SEGINI,MCHPOI=MCHPO1 MOCHDE=CHAR1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Changement des noms d'une evolution CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC ELSEIF (CHAR8.EQ.'EVOLUTIO') THEN IF (IERR.NE.0) RETURN IFOIS = 0 4000 CONTINUE ITIT1=IPLAC-23 IENT1=0 K=0 char1 = ' ' IF (ITIT1.LT.5) THEN IF (IERR.NE.0) RETURN IF (IPLAC.NE.0) THEN RETURN ENDIF ELSE IF (ITIT1.EQ.5) THEN IF (IPLAC.NE.0) THEN CALL REFUS IRETOU = 0 ENDIF IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN IF (IENT1.EQ.0) IENT1 = -1 ENDIF ELSE IF (ITIT1.EQ.6) THEN IF (IPLAC.NE.0) THEN CALL REFUS IRETOU = 0 ENDIF IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN IF (IENT1.EQ.0) IENT1 = -1 ENDIF ELSE IF (ITIT1.EQ.7) THEN IF (IPLAC.NE.0) THEN CALL REFUS IRETOU = 0 ENDIF IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN IF (IENT1.EQ.0) IENT1 = -1 ENDIF ELSE IF (ITIT1.EQ.8) THEN IF (IPLAC.NE.0) THEN CALL REFUS IRETOU = 0 ENDIF IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN IF (IENT1.EQ.0) IENT1 = -1 ENDIF ENDIF C write(6,*) 'prchan:itit1,ient1,K,char1=',itit1,ient1,K,char1 IF (IPLAC.GT.23) THEN IEV1 = IEV2 IFOIS = IFOIS+1 GOTO 4000 ENDIF ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales