Download fpco2d.eso

Back to the list

   1 : C FPCO2D    SOURCE    PV        09/03/12    21:23:01     6325           
   2 :       SUBROUTINE FPCO2D(IPTVPR,IPMAIL,IVAFOR,IVACAR)
   3 : *____________________________________________________________________
   4 : *     
   5 : *   CALCULE LES FORCES DE PRESSIONS SUR LES FACES D ELEMENTS
   6 : *   COQUES BIDIMENSIONNELS
   7 : *     
   8 : *     
   9 : *   ENTREES :
  10 : *   ---------
  11 : *     
  12 : *    IPTVPR  POINTEUR SUR UN MELVAL CONTENANT LES PRESSIONS APPLIQUEES
  13 : *            (actif)
  14 : *    IPMAIL  POINTEUR SUR UN OBJET GEOMETRIQUE (actif)
  15 : *    IVAFOR  POINTEUR SUR UN MPTVAL ET UN MELVAL DEVANT CONTENIR LES
  16 : *            FORCES NODALES RESULTANTES
  17 : *     
  18 : *     
  19 : *      JACQUELINE BROCHARD  AVRIL 85
  20 : *      PASSAGE AUX NOUVEAU CHAMELEM PAR JM CAMPENON LE 12 09 90
  21 : *      REPRISE MILL AVRIL 91  ON SUPPOSE QUE LES PRESSIONS SONT
  22 : *                             DONNEES AUX NOEUDS
  23 : *____________________________________________________________________
  24 :       IMPLICIT INTEGER(I-N)
  25 :       IMPLICIT REAL*8(A-H,O-Z)
  26 : *     
  27 : -INC CCREEL
  28 : -INC SMCHAML
  29 : -INC SMELEME
  30 : -INC SMCOORD
  31 : -INC CCOPTIO
  32 : *     
  33 :       SEGMENT MPTVAL
  34 :       INTEGER IPOS(NS)    ,NSOF(NS)
  35 :       INTEGER      IVAL(NCOSOU)
  36 :       CHARACTER*16 TYVAL(NCOSOU)
  37 :       ENDSEGMENT
  38 : *     
  39 :       DIMENSION XE(3,3)
  40 : *     
  41 :       MELVA1=IPTVPR
  42 : *     
  43 :       MELEME=IPMAIL
  44 :       SEGACT MELEME
  45 :       NBELEM=NUM(/2)
  46 :       IGMN=MIN(2,MELVA1.VELCHE(/1))
  47 :       DIM3=1.D0
  48 : *     
  49 : *     BOUCLE SUR LES ELEMENTS
  50 : *     
  51 :       DO 1 IB=1,NBELEM
  52 : C     
  53 : C   RECUPERATION DE L'EPAISSEUR
  54 : C     
  55 :          IF (IFOUR.EQ.-2) THEN
  56 :             MPTVAL=IVACAR
  57 :             IF (IVACAR.NE.0) THEN
  58 :                MELVAL=IVAL(1)
  59 :                IF (MELVAL.NE.0) THEN
  60 :                   IBMN=MIN(IB,VELCHE(/2))
  61 :                   DIM3=VELCHE(IGMN,IBMN)
  62 :                ELSE
  63 :                   DIM3=1.D0
  64 :                ENDIF
  65 :             ENDIF
  66 :          ENDIF
  67 : *     
  67 :          CALL DOXE(XCOOR,IDIM,2,NUM,IB,XE)
  68 :          R1=XE(1,1)
  69 :          R2=XE(1,2)
  70 :          Z1=XE(2,1)
  71 :          Z2=XE(2,2)
  72 : *     
  73 :          D2=(R2-R1)*(R2-R1)+(Z2-Z1)*(Z2-Z1)
  74 :          D=SQRT(D2)
  75 :          UNSD=1.D0/D
  76 :          A=(R2-R1)*UNSD
  77 :          B=(Z2-Z1)*UNSD
  78 :          IF(IFOUR.LT.0) THEN
  79 :             R1=1.D0
  80 :             R2=1.D0
  81 :          ELSEIF(IFOUR.EQ.0.OR.(IFOUR.EQ.1.AND.
  82 :      +           NIFOUR.EQ.0)) THEN
  83 :             R1=2*XPI*R1
  84 :             R2=2*XPI*R2
  85 :          ELSEIF(IFOUR.EQ.1.AND.NIFOUR.NE.0) THEN
  86 :             R1=XPI*R1
  87 :             R2=XPI*R2
  88 :          ENDIF
  89 :          IF (IFOUR.EQ.-2) THEN
  90 :             R1=R1*DIM3
  91 :             R2=R2*DIM3
  92 :          ENDIF
  93 :          IF(IFOUR.LE.0) IFO=0
  94 :          IF(IFOUR.EQ.1) IFO=1
  95 : *     
  96 :          IBMN=MIN(IB,MELVA1.VELCHE(/2))
  97 :          P1=MELVA1.VELCHE(1,IBMN)
  98 :          P2=MELVA1.VELCHE(IGMN,IBMN)
  99 : *     
 100 :          PA=P1*R1
 101 :          PB=P1*R2+P2*R1-2.D0*P1*R1
 102 :          PC=(P2-P1)*(R2-R1)
 103 : *     
 104 :          FP1=D*(PA*0.5D0+PB*0.15D0+PC/15.D0)
 105 :          XO1=D2*(PA/12.D0+PB/30.D0+PC/60.D0)
 106 :          FP2=D*(PA*0.5D0+PB*0.35D0+PC*4.D0/15.D0)
 107 :          XO2=-D2*(PA/12.D0+PB/20.D0+PC/30.D0)
 108 : *     
 109 :          MPTVAL=IVAFOR
 110 :          MELVAL=IVAL(1)
 111 :          VELCHE(1,IB)=-B*FP1
 112 :          VELCHE(2,IB)=-B*FP2
 113 : *     
 114 :          MELVAL=IVAL(2)
 115 :          VELCHE(1,IB)=A*FP1
 116 :          VELCHE(2,IB)=A*FP2
 117 : *     
 118 :          MELVAL=IVAL(3+IFO)
 119 :          VELCHE(1,IB)=XO1
 120 :          VELCHE(2,IB)=XO2
 121 : *     
 122 :  1    CONTINUE
 123 :       RETURN
 124 :       END
 125 : 
 126 : 
 127 : 
 128 : 
 129 :  
 130 :  
 131 :  
 132 :  
 133 :  

© Cast3M 2003 - All rights reserved.
Disclaimer