manuc5
C MANUC5 SOURCE OF166741 26/05/21 21:15:09 12556 *--------------------------------------------------------------------* * * * CREATION D'UN NOUVEAU CHAMELEM PAR MANU * * * *--------------------------------------------------------------------* SUBROUTINE MANUC5 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMLMOTS -INC SMLREEL -INC SMLENTI -INC SMELEME -INC SMMODEL CHARACTER*(LOCOMP) MOCOMP CHARACTER*4 MOT4 CHARACTER*8 MOCHOY CHARACTER*8 CAR CHARACTER*16 JECONS CHARACTER*(LOCHAI) JEROME,CHAIN1 CHARACTER*4 MOTYPE(3),REPA(1) CHARACTER*8 LISMOT(5) DATA MOTYPE/'TYPE','CONS','EVOL'/ DATA REPA /'REPA'/ DATA LISMOT/'NOEUD ','GRAVITE ','RIGIDITE', & 'MASSE ','STRESSES'/ * * Initialisation des segments * IPMODL = 0 IPMAIL = 0 IPLAC = 0 * * LECTURE D'UN MODELE * IF (IERR.NE.0) RETURN IF (IRET .EQ. 1) THEN IF (IERR.NE.0) RETURN * * SINON D'UN MAILLAGE * ELSE MOTERR(1:8)='MAILLAGE' IF (IERR.NE.0) RETURN IF (IRET.EQ.1) THEN IF (IERR.NE.0) RETURN * * SINON lecture du mot EVOL * ELSE IF (IERR.NE.0) RETURN IF (IPLAC.NE.1) THEN RETURN ENDIF CALL MANUC8 RETURN ENDIF ENDIF JG = 0 JGN = LOCOMP JGM = 0 CALL oooprl(1) SEGINI,MLMOTS,MLMOT1,MLMOT2,MLMOT3,MLREE1,MLENT2 CALL oooprl(0) L1 = 0 JEROME = ' ' LL1 = 0 JECONS = ' ' IPLAC = 0 itart = 0 ISYNT2 = 0 * Syntaxe 2 : MLMOTS_Composante MLREEL_Valeur IF (IERR.NE.0) GOTO 99 IF (ISYNT2.NE.0) THEN IF (IERR.NE.0) GOTO 99 SEGACT,MLMOT4,MLREEL JGM = NC JGN = LOCOMP JG = NC SEGADJ,MLMOT1,MLREE1 DO I = 1, NC ENDDO IF (NR.GE.NC) THEN DO I = 1, NC ENDDO ELSE DO I = 1, NR ENDDO DO I = NR+1, NC ENDDO ENDIF SEGDES,MLMOT4,MLREEL c* Test si NC = 0 ? NR = 0 ? ELSE * Syntaxe 1 : Recherche du mot-cle 'REPA' c* dans le CAS OU MODELE EST FOURNI c* IF (IPMODL.NE.0) THEN IF (IERR.NE.0) GOTO 99 c* ENDIF ENDIF * 10 CONTINUE IRCHOI = 0 CHAIN1 = ' ' IF (IERR.NE.0) GOTO 99 IF (IRCHOI.EQ.0) GO TO 20 MOT4 = CHAIN1 * * SI ON A LU LE MOT TYPE * IF (MOT4.EQ.MOTYPE(1)) THEN IF (IERR.NE.0) GOTO 99 GOTO 10 ENDIF * * SI ON A LU LE MOT CONS (CAS OU MAILLAGE EST FOURNI) * IF (IPMAIL.NE.0) THEN IF (MOT4.EQ.MOTYPE(2)) THEN IF (IERR.NE.0) GOTO 99 GO TO 10 ENDIF ENDIF * SI ON A LU LE SUPPORT DU CHAMP (CAS OU MODELE EST FOURNI) IF (IPMODL.NE.0.AND.IPLAC.EQ.0) THEN MOCHOY = CHAIN1 IF (IPLAC.NE.0) GOTO 10 ENDIF IF (ISYNT2.NE.0) GOTO 10 * Syntaxe 1 : On lit paire MOT_Composante VALEUR_Flottant/Objet * ON A LU UNE COMPOSANTE * ON TESTE LE NOMBRE DE CARACTERES LUS IF (IRCHOI.GT.LOCOMP) THEN GOTO 99 ENDIF MOCOMP=CHAIN1 * On recupere la valeur de la composante (REEL*8 ou POINTEURXXX) IF (IERR.NE.0) GO TO 99 IF (IRET2.EQ.1) THEN SEGADJ MLREE1 ELSE IF (IERR.NE.0) GO TO 99 IF (IERR.NE.0) GO TO 99 IF (IERR.NE.0) GO TO 99 * * ON A LU UN OBJET DE TYPE AUTRE QU'UN FLOTTANT * JG = MLENT2.LECT(/1)+1 SEGADJ,MLENT2 MLENT2.LECT(JG)=IPTRUC ENDIF GOTO 10 * 20 CONTINUE IPOI1 = 0 IF (L1.EQ.0) L1 = 1 * Par defaut : support 'NOEUD' IF (IPLAC.EQ.0) IPLAC=1 * * RECUPERATION DES ZONES ELEMENTAIRES DU MAILLAGE * IF (IPMAIL.NE.0)THEN MELEME=IPMAIL JG=LISOUS(/1) IF (JG.EQ.0) THEN JG=1 JGN=16 JGM=JG CALL oooprl(1) SEGINI,MLENT1,MLMOT4 CALL oooprl(0) MLENT1.LECT(1)=IPMAIL ELSE JGN=16 JGM=JG CALL oooprl(1) SEGINI,MLENT1,MLMOT4 CALL oooprl(0) DO 22 I = 1, JG MLENT1.LECT(I)=LISOUS(I) 22 CONTINUE ENDIF & MLENT2,JEROME,L1,MLMOT4,IPOI1) * Suppression des segments SEGSUP,MLENT1,MLMOT4 ELSE & MLENT2,JEROME,L1,IPLAC,IPOI1,itart) ENDIF IF (IERR.NE.0) GOTO 99 * Ecriture du CHAMP resultat : * * Suppression des segments * 99 CONTINUE SEGSUP,MLMOTS,MLMOT1,MLMOT2,MLMOT3,MLREE1,MLENT2 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales