kkdom
C KKDOM SOURCE PV 22/04/19 16:18:05 11344 C************************************************************************ C C OBJET : Cree une table de soustype DOMAINE C Appele par KDOM C C************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC CCNOYAU CHARACTER*(*) NOMDOM CHARACTER*8 TYPE,TYPI PARAMETER (NMEL=8) DIMENSION SGA(NMEL),SEPS(NMEL),SEPSD(NMEL) C*** -INC PPARAM -INC CCOPTIO -INC SMELEME POINTEUR MELEMS.MELEME,MELEMC.MELEME,MELEF1.MELEME,MELEMP.MELEME POINTEUR MFF2.MELEME -INC SMLENTI DATA SGA/1.D0,1.D0,1.D0,1.D0,1.D0,1.D0,1.D0,1.D0/ DATA SEPS/0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0/ DATA SEPSD/8*0.D0/ C*** C On verifie que si la directive INCL est présente les SPG C des points sommets sont bien inclus MELEP0=0 C write(6,*)' DEBUT KKDOM ========================' IF(MTABI.NE.0)THEN TYPI='MAILLAGE' IF(IRET.NE.0)THEN WRITE(6,*)' Opérateur DOMA ' WRITE(6,*)' Le maillage n''est pas contenu dans celui de' & ,' la table donnée pour la directive INCL ' RETURN ENDIF SEGSUP MLENTI ENDIF C??? call CQF2LN(MELEME,MLINE) C write(6,*)' IKR=',IKR,' MACRO=',MACRO,' INEFMD=',INEFMD C? IF(IKR.EQ.13.AND.MACRO.NE.0)IKR=1 C? IF(IKR.EQ.134.AND.MACRO.NE.0)IKR=1 IF(IKR.EQ.13.AND.MACRO.NE.0)IKR=4 IF(IKR.EQ.134.AND.MACRO.NE.0)IKR=4 IF(IKR.EQ.34.AND.MACRO.NE.0)IKR=3 IF(IKR.EQ.1341.AND.MACRO.EQ.0)IKR=1 IF(IKR.EQ.13.AND.MACRO.EQ.0)IKR=1 IF(IKR.EQ.1341.AND.MACRO.NE.0)THEN C au depart des SEG3 -> LINE -> MACRO C write(6,*)'au depart des SEG3 -> LINE -> MACRO' MACRO =MELEME MACRO1=MELEME CALL CQ2L MELEME=MLINE MAIL=MLINE IQUAD=0 ELSEIF(IKR.EQ.1.AND.MACRO.EQ.0.AND.INEFMD.EQ.4)THEN C au depart des QUAFs -> LINB C write(6,*)'au depart des QUAFs -> LINB' MAIL=MELEME CALL CLINB IF (IERR.NE.0) RETURN C write(6,*)' AVT TQ2CF' MELEME=MLINB IQUAD=0 ELSEIF(IKR.NE.2.AND.MACRO.EQ.0.AND.INEFMD.NE.1)THEN C au depart des QUADs ou QUAF -> QUAF C write(6,*)'au depart des QUADs ou QUAF -> QUAF' CALL C20227 IF (IERR.NE.0) RETURN MAIL=MELEME IQUAD=1 ELSEIF(IKR.EQ.2.AND.MACRO.EQ.0)THEN C au depart des LINEs -> LINE C write(6,*)'au depart des LINEs -> LINE' CALL CHANQU CALL C20227 IF (IERR.NE.0) RETURN MAIL=MELEME C write(6,*)' AVT TQ2CF' MELEME=MLINE IQUAD=0 ELSEIF((IKR.EQ.3.OR.IKR.EQ.4).AND.MACRO.NE.0)THEN C au depart des QUADs -> MACRO C write(6,*)'au depart des QUADs -> MACRO ' MACRO=MELEME CALL CMACRO IF (IERR.NE.0) RETURN CALL CQ2L IF (IERR.NE.0) RETURN MAIL=MELEME IQUAD=0 ELSEIF(IKR.EQ.1.AND.MACRO.NE.0)THEN C au depart des QUAFs -> MACRO C write(6,*)'au depart des QUAFs -> MACRO ' MAIL=MELEME MACRO=MELEME IF (IERR.NE.0) RETURN CALL CQ2L IF (IERR.NE.0) RETURN C? CALL KRECTR(MELEME,MELEMC) IQUAD=0 ELSEIF(IKR.EQ.1.AND.INEFMD.EQ.1)THEN C au depart des QUAFs -> LINE C write(6,*)'au depart des QUAFs -> LINE ' MAIL=MELEME C write(6,*)' KKDOM QUAFs -> LINE' MELEME=MLINE C? MELEME=MAIL IQUAD=0 ENDIF C write(6,*)' APR MTABI=',mtabi C write(6,*)' QUAF MELEMQ=',MELEMQ C? call ecrobj('MAILLAGE',MELEMQ) C? call prlist IF(MACRO.NE.0)THEN ELSEIF(IQUAD.EQ.1)THEN MQ=MELEMQ MELEMQ=MELEME MELEME=MQ ENDIF C write(6,*)' MELEF1,MELEMF,MELEMP,MELEMC,MELAF=', C &MELEF1,MELEMF,MELEMP,MELEMC,MELAF IF(MACRO.NE.0)THEN IF(MELEP0.NE.0) C CALL KRECTR(MELEME,MELEMC) COEF=0.D0 C write(6,*)' APPEL a KMLSTB MACRO1=',MACRO1 & IRETM,SGA,SEPS,SEPSD,COEF) C write(6,*)' RETOUR de KMLSTB ' IF(IRETM.EQ.1)THEN ENDIF ENDIF C? CALL ECRCHA('POI1') C? CALL ECROBJ('MAILLAGE',MELEME) C? CALL ECROBJ('MAILLAGE',MAIL ) C? CALL PRCHAN C? CALL LIROBJ('MAILLAGE',MELEMS,1,IRET) C? IF(IRET.EQ.0)RETURN C???? IF(MELEMS.EQ.0)RETURN C write(6,*)' MTABI=',mtabi,' retour si 0 ' IF(MTABI.NE.0)THEN C In CRTABL -> SEGINI MTBT0 IF(MACRO.NE.0)THEN IF(IRETM.EQ.1)THEN ENDIF ELSEIF(IQUAD.EQ.1)THEN ENDIF C write(6,*)' On vérifie l inclusion des points sommets ' C On vérifie l'inclusion des points sommets (on peut avoir créé des pts centre) TYPI='MAILLAGE' CALL PRFUSE CALL PRFUSE CALL PRFUSE CALL PRFUSE CALL PRFUSE ENDIF C write(6,*)' APRES verification ' SEGACT MELEF1 NBFD=MELEF1.NUM(/2) SEGDES MELEF1 SEGACT MELEMC NELD=MELEMC.NUM(/2) SEGDES MELEMC SEGACT MELEMS NPTD=MELEMS.NUM(/2) SEGDES MELEMS C write(6,*)' FIN KKDOM ********************** ' RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales