Download proga.eso

Back to the list

   1 : C PROGA     SOURCE    CHAT      05/01/13    02:30:52     5004           
   2 :       SUBROUTINE PROGA(F1,G,YAMB1,A,B,C,D,D2,CO)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 :       DIMENSION V(3),A(3),B(3),C(3),D(3)
   6 :       IF(D2.LT.1.E-8)THEN
   7 :          WRITE(6,*)'PB D2=0 : MAUVAIS MAILLAGE OU PB DS MITAB'
   8 :          F1=0
   9 :          RETURN
  10 :       ENDIF
  11 :       D32=0
  12 :       PS1=0
  13 :       PS2=0
  14 :       RAC=0
  15 :       DO 10 K=1,3
  16 :           V(K)=(C(K)-A(K))
  17 :           V(K)=V(K)-YAMB1*(B(K)-A(K))
  18 :           D32=D32+V(K)**2
  19 :  10   CONTINUE
  20 :       DO 20 K=1,3
  21 :            PS2=PS2+V(K)*(D(K)-C(K))
  22 :  20   CONTINUE
  23 : C                                                                               
  24 : C     IF(ABS(CO).LT.(1.E-8))THEN
  25 : C        F1=0
  26 : C        RETURN
  27 : C     ENDIF
  28 :       PS1=PS2/D2
  29 :       RAC=DSQRT(DABS(D32-PS1**2))
  30 :       D4=D32+D2**2+2*PS2
  31 :       IF (D4.LT.(1.E-8))THEN
  32 : C         WRITE(6,*)'D4=0'
  33 :           F1=DLOG(D2)-1
  34 :           RETURN
  35 :       ENDIF
  36 :       IF(D32.LT.(1.E-8))THEN
  37 : C         WRITE(6,*)'D32=0 '
  38 :           F1=DLOG(D2)-1
  39 :           RETURN
  40 :       ENDIF
  41 :       IF(RAC.LT.(1.E-8))THEN
  42 : C         WRITE(6,*)'RAC=0'
  43 :           IF (DABS(DABS(CO)-1).LT.(1.E-6))THEN
  44 :             F1=(D2+PS1)*(DLOG(D4)-2)-(PS1*(DLOG(D32)-2))
  45 :             F1=F1/D2/2
  46 :           ELSE
  47 :             F1=DLOG(D2)-1
  48 :           ENDIF
  49 :           RETURN
  50 :       ENDIF
  51 :       F1=(D2+PS1)*(DLOG(D4)-2)+2*RAC*DATAN((D2+PS1)/RAC)
  52 :       F1=F1-(PS1*DLOG(D32)-2*PS1+2*RAC*DATAN(PS1/RAC))
  53 :       F1=F1/2/D2
  54 : C     WRITE(7,*)'F1=',F1
  55 :       RETURN
  56 :       END
  57 :  

© Cast3M 2003 - All rights reserved.
Disclaimer