Download elkonv.eso

Back to the list

   1 : C ELKONV    SOURCE    CHAT      05/01/12    23:33:25     5004           
   2 :       SUBROUTINE ELKONV(ELTFA,FACEL,MELEMF,MELEMC,MELEME)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : 
   6 : -INC SMLENTI
   7 : -INC SMELEME
   8 :       POINTEUR ELTFA.MELEME,FACEL.MELEME,MELEMC.MELEME
   9 :       DIMENSION NTYP(7)
  10 : C               SEG2,TRI3,QUA4,TET4,PYR5,PRI6,CUB8
  11 :       DATA NTYP/3   ,8   ,9   ,25  ,16  ,7   ,11  /
  12 : C               SEG3,QUA4,QUA5,PYR5,PRI6,TRI7,QUA9
  13 : 
  14 : 
  15 : 
  15 :       CALL KRIPAD(MELEMF,MLENTI)
  16 :       SEGACT ELTFA,FACEL,MELEMC
  17 :       NBSOUS=ELTFA.LISOUS(/1)
  18 : 
  19 :       IF(NBSOUS.EQ.0)THEN
  20 :       NBNN=ELTFA.NUM(/1)+1
  21 :       NBELEM=ELTFA.NUM(/2)
  22 :       NBREF=0
  23 :       SEGINI MELEME
  24 :       ITYPEL=NTYP(NBNN)
  25 : 
  26 :       K0=0
  27 :       DO 1 K=1,NBELEM
  28 :       K0=K0+1
  29 :       I0=MELEMC.NUM(1,K0)
  30 :       NUM(NBNN,K)=I0
  31 :       DO 1 I=1,NBNN-1
  32 :       I1=ELTFA.NUM(I,K)
  33 :       I2=LECT(I1)
  34 :       I3=FACEL.NUM(1,I2)
  35 :       NUM(I,K)=I3
  36 :       IF(I3.EQ.I0)NUM(I,K)=FACEL.NUM(3,I2)
  37 : C     write(6,*)K,I0,I1,I2,FACEL.NUM(1,I2),FACEL.NUM(3,I2)
  38 :  1    CONTINUE
  39 :       SEGDES MELEME,MELEMC,ELTFA,FACEL
  40 :       SEGSUP MLENTI
  40 : C     call ecrobj('MAILLAGE',meleme)
  40 : C     call prlist
  41 : 
  42 : 
  43 :       ELSEIF(NBSOUS.NE.0)THEN
  44 :       NBREF=0
  45 :       NBNN=0
  46 :       NBELEM=0
  47 :       SEGINI MELEME
  48 :       NBS=NBSOUS
  49 :       K0=0
  50 :       DO 2 L=1,NBS
  51 :       NBSOUS=0
  52 :       IPT2=ELTFA.LISOUS(L)
  53 :       SEGACT IPT2
  54 :       NBELEM=IPT2.NUM(/2)
  55 :       NBREF=0
  56 :       NBNN=IPT2.NUM(/1)+1
  57 :       SEGINI IPT1
  58 :       IPT1.ITYPEL=NTYP(NBNN)
  59 :       LISOUS(L)=IPT1
  60 :       DO 3 K=1,NBELEM
  61 :       K0=K0+1
  62 :       I0=MELEMC.NUM(1,K0)
  63 :       IPT1.NUM(NBNN,K)=I0
  64 :       DO 3 I=1,NBNN-1
  65 :       I1=IPT2.NUM(I,K)
  66 :       I2=LECT(I1)
  67 :       I3=FACEL.NUM(1,I2)
  68 :       IPT1.NUM(I,K)=I3
  69 :       IF(I3.EQ.I0)IPT1.NUM(I,K)=FACEL.NUM(3,I2)
  70 : C     write(6,*)K,I0,I1,I2,FACEL.NUM(1,I2),FACEL.NUM(3,I2)
  71 :  3    CONTINUE
  72 :       SEGDES IPT1,IPT2
  73 :  2    CONTINUE
  74 : 
  74 : C     call ecrobj('MAILLAGE',meleme)
  74 : C     call prlist
  75 : 
  76 : 
  77 :       SEGDES MELEME,MELEMC,ELTFA,FACEL
  78 :       SEGSUP MLENTI
  79 :       ENDIF
  80 :       RETURN
  81 :       END
  82 :  

© Cast3M 2003 - All rights reserved.
Disclaimer