Download kal2p.eso

Back to the list

   1 : C KAL2P     SOURCE    CHAT      05/01/13    00:50:37     5004           
   2 :       SUBROUTINE KAL2P(MTABP,MCHB)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : 
   6 : -INC SMTABLE
   7 :       POINTEUR MTABP.MTABLE,MTABX.MTABLE
   8 : *-INC SMMATRAKANC
   9 : C*************************************************************************
  10 : C                                                                               
  11 : C    REPERAGE ET STOKAGE DES MATRICES ELEMENTAIRES  puis assemblees
  12 : C                                                                               
  13 : 
  14 : * LGEOC SPG de la pression et/ou des multiplicateurs de Lagrange
  15 : * (points CENTRE ) pour chaque operateur de contrainte
  16 : * KGEOC SPG pour la totalite des points CENTRE.
  17 : * KGEOS SPG pour la totalite des points SOMMET (Diagonale vitesse)
  18 : * KLEMC Connectivites de l'ensemble des contraintes
  19 : * LIZAFM(NBSOUS) contient les pointeurs IZAFM des sous-zones
  20 : 
  21 :       SEGMENT MATRAK
  22 :       INTEGER LGEOC(NBOP),IDEBS(NBOP),IFINS(NBOP)
  23 :       INTEGER LIZAFM(NBSOUS)
  24 :       INTEGER IKAM0 (NBSOUS)
  25 :       INTEGER IMEM  (NBELC)
  26 :       INTEGER KLEMC,KGEOS,KGEOC,KDIAG,KCAC,KIZCL,KIZGC
  27 :       ENDSEGMENT
  28 : 
  29 :       SEGMENT IZAFM                                                             
  30 :       REAL*8  AM(NNELP,NP,IESP),RPGI(NELAX)
  31 :       ENDSEGMENT                                                                
  32 : 
  33 :       POINTEUR IPMJ.IZAFM,IPMK.IZAFM
  34 : 
  35 : C*******************************************************************            
  36 : -INC SMELEME
  37 : -INC SMLMOTS
  38 : -INC SMCHPOI
  39 :       POINTEUR MPOV1.MPOVAL,IZCH2.MCHPOI,IZCCH2.MPOVAL
  40 :       POINTEUR MZQP.MPOVAL
  41 : -INC CCREEL
  42 :       CHARACTER*8 TYPE,NOMO,NOM
  43 :       DIMENSION IXV(3)
  44 : C
  45 : 
  46 : 
  46 :       CALL LICHT(MCHB,MPOVAL,TYPE,IGEOM)
  47 : 
  48 :       TYPE=' '
  48 :       CALL ACMO(MTABP,'LISTOPER',TYPE,MLMOTS)
  49 : 
  50 :       IF(TYPE.NE.'LISTMOTS')THEN
  51 :       RETURN
  52 :       ENDIF
  53 : 
  54 :       TYPE=' '
  54 :       CALL ACMO(MTABP,'DELTAT',TYPE,IDT)
  55 :       IF(TYPE.NE.'FLOTTANT')THEN
  56 :       DT=XGRAND
  57 :       ELSE
  57 :       CALL ACMF(MTABP,'DELTAT',DT)
  58 :       ENDIF
  59 : 
  60 :       TYPE=' '
  60 :       CALL ACMO(MTABP,'MATC',TYPE,MATRAK)
  61 :       IF(TYPE.NE.'MATRAK')THEN
  62 :       WRITE(6,*)' Pb dans KAL2P : table EQPR erronee '
  63 :       RETURN
  64 :       ENDIF
  65 :       SEGACT MATRAK
  66 : 
  67 :       SEGACT MLMOTS
  68 :       NBOP=MOTS(/2)
  69 : 
  70 :       DO 1 L=1,NBOP
  71 : 
  72 :       NOMO=MOTS(L)
  73 :       IF(L.LT.10)THEN
  74 :       NOM=NOMO(2:5)
  75 :       ELSE
  76 :       NOM=NOMO(3:6)
  77 :       ENDIF
  78 : 
  79 : C     write(6,*)' Second membre NOMO ? ',NOMO
  80 :       TYPE=' '
  80 :       CALL ACMO(MTABP,NOMO,TYPE,MTABX)
  81 :       IF(TYPE.NE.'TABLE')THEN
  82 :       WRITE(6,*)' Pb dans KAL2P : table EQPR erronee '
  83 :       RETURN
  84 :       ENDIF
  85 : 
  85 :       CALL ACME(MTABX,'IARG',IARG)
  86 :       IF(IARG.EQ.0)THEN
  87 : C     write(6,*)' pas d''argument pour ',NOMO
  88 :       GO TO 1
  89 :       ENDIF
  90 : 
  91 :       TYPE=' '
  91 :       CALL ACMO(MTABX,'IZCH2',TYPE,IZCH2)
  92 :       IF(TYPE.NE.'CHPOINT ')THEN
  93 :       IZCH2=0
  94 :       ELSE
  94 :       CALL LICHT(IZCH2,IZCCH2,TYPE,IGEOM)
  95 : 
  96 : C"    nbz=IZCCH2.VPOCHA(/1)
  97 : C"    write(6,*)' IZCCH2=',IZCCH2,' NBZ=',nbz
  98 : C"    write(6,1002)(IZCCH2.VPOCHA(II,1),ii=1,nbz)
  99 :       ENDIF
 100 : 
 101 :       N1=IDEBS(L)
 102 :       N2=IFINS(L)
 103 : 
 104 : C"    TYPE=' '
 104 : C"    CALL ACMO(MTABX,'ARG1',TYPE,ICHP)
 105 : C"    IF(TYPE.EQ.'FLOTTANT')THEN
 105 : C"    CALL ACMF(MTABX,'ARG1',XVAL)
 106 : 
 107 : 
 107 :       CALL LEKTAB(MTABP,'INCO',KINC)
 108 : 
 108 :       CALL LEKTAB(MTABX,'DOMZ',MTABZ)
 109 :       TYPE=' '
 109 :       CALL ACMO(MTABZ,'CENTRE',TYPE,MELEMC)
 110 :       TYPE=' '
 110 :       CALL ACMO(MTABZ,'SOMMET',TYPE,MELEMS)
 111 : 
 112 :       IF(NOM.EQ.'PRES    ')THEN
 113 :       IXV(1)=MELEMC
 114 :       IXV(2)=1
 115 :       IXV(3)=0
 115 :       CALL LEKCOF('Opérateur PRESSION :',
 116 :      & MTABX,KINC,1,IXV,MQP,MZQP,NPT1,NC1,IKQ,IRET)
 117 :       IF(IRET.EQ.0)RETURN
 118 :       ELSE
 119 :       IXV(1)=MELEMS
 120 :       IXV(2)=1
 121 :       IXV(3)=0
 121 :       CALL LEKCOF('Opérateur '//NOM//' :',
 122 :      & MTABX,KINC,1,IXV,MQP,MZQP,NPT1,NC1,IKQ,IRET)
 123 :       ENDIF
 124 : 
 125 : C"    IF(IKQ.EQ.1)THEN
 126 : C"
 127 : C"    XVAL= MZQP.VPOCHA(1,1)
 128 : C"
 129 : C"    IF(IZCH2.EQ.0)THEN
 130 : C"    DO 21 I=N1,N2
 131 : C"    VPOCHA(I,1)=VPOCHA(I,1)+XVAL
 132 : C21   CONTINUE
 133 : C"    ELSE
 134 : C"    II=0
 135 : C"    DO 22 I=N1,N2
 136 : C"    II=II+1
 137 : C"    VPOCHA(I,1)=VPOCHA(I,1)+XVAL*IZCCH2.VPOCHA(II,1)/DT
 138 : C22   CONTINUE
 139 : C"    SEGDES IZCCH2
 140 : C"    ENDIF
 141 : C"    ELSEIF(IKQ.EQ.0)THEN
 141 : C"     CALL LICHT(ICHP,MPOV1,TYPE,IGEOM)
 142 : C     write(6,*)' DT=',DT,MZQP.VPOCHA(1,1),' izch2',IZCH2
 143 :       IF(IZCH2.EQ.0)THEN
 144 :       II=0
 145 :       DO 31 I=N1,N2
 146 :       II=II+1
 147 :       NKQ=1+(1-IKQ)*(II-1)
 148 : C     VPOCHA(I,1)=VPOCHA(I,1)+MZQP.VPOCHA(NKQ,1)/(DT*.0.9)
 149 :       VPOCHA(I,1)=VPOCHA(I,1)+MZQP.VPOCHA(NKQ,1)/DT
 150 :  31   CONTINUE
 151 :       ELSE
 152 :       II=0
 153 :       DO 32 I=N1,N2
 154 :       II=II+1
 155 :       NKQ=1+(1-IKQ)*(II-1)
 156 :       VPOCHA(I,1)=VPOCHA(I,1)+
 157 : C    &MZQP.VPOCHA(NKQ,1)*IZCCH2.VPOCHA(II,1)
 158 :      &MZQP.VPOCHA(NKQ,1)*IZCCH2.VPOCHA(II,1)/DT
 159 :  32   CONTINUE
 160 :       SEGDES IZCCH2
 161 :       ENDIF
 162 :       SEGDES MZQP
 163 : 
 164 : C"    ELSE
 165 : C"    write(6,*)' On ne fera pas'
 166 : C"    ENDIF
 167 : 
 168 :  1    CONTINUE
 169 :       SEGDES MLMOTS,MATRAK,MPOVAL
 170 : 
 171 :       RETURN
 172 :  1001 FORMAT(20(1X,I5))
 173 :  1002 FORMAT(10(1X,1PE11.4))
 174 :       END
 175 :  
 176 :  
 177 :  
 178 :  
 179 :  

© Cast3M 2003 - All rights reserved.
Disclaimer