Download calpin.eso

Back to the list

   1 : C CALPIN    SOURCE    CHAT      05/01/12    21:47:53     5004           
   2 : C CALPIN     SOURCE    INSL       24/10/96    
   3 :       SUBROUTINE CALPIN(IFOU,STRN,SIGM,SIGR,S1,DEP,NSTRS,EBC,
   4 :      1 AA,BB,DK1,DK2,ILOI,RB,EX,PXY)
   5 : C
   6 :       IMPLICIT INTEGER(I-N)
   7 :       IMPLICIT REAL*8(A-H,O-Z)
   8 :       DIMENSION S1(NSTRS),DFSI(6),STRN(NSTRS),DGSI(6),SIGR(NSTRS)
   9 :       DIMENSION DEP(NSTRS,NSTRS),D6(6,6),DP(6,6),S(6)
  10 :       DIMENSION SS(100,6),CR(100,3),SIGM(NSTRS)
  11 : C-------------------------------------------------------------------
  12 : C      WRITE(*,*) '****  ON EST DANS CALPIN ******'
  13 : C-------------------------------------------------------------------
  13 :       CALL ZERO(S1,NSTRS,1)
  13 :       CALL ZERO(DEP,NSTRS,NSTRS)
  14 : C-------------------------------------------------------------------
  15 :       TU=RB
  16 :       PRB=1.D-5
  17 :       NIB=2
  18 :       ICHOI=1
  19 :       IPREM=0
  20 : C-------------------------------------------------------------------
  21 :       BETC=EBC/EX
  22 : C-------------------------------------------------------------------
  23 :       PAEC0=EBC/(1.D0-BETC)
  23 :       CALL CRIOTO(SIGR,SEQ,FCRI,NSTRS,TU,AA,BB,DK1,DK2)
  24 :       IF(SEQ.LT.1.D-10) IPREM=1
  25 :       IF(SEQ.GT.TU) SEQ=TU
  26 : C-------------------------------------------------------------------
  27 :       DO 10 I=1,NSTRS
  28 :         IF(IPREM.EQ.0) THEN
  29 :           S1(I)=SIGR(I)
  30 :         ELSE
  31 :           S1(I)=SIGR(I)+SIGM(I)
  32 :         ENDIF
  33 :   10  CONTINUE
  34 : C-------------------------------------------------------------------
  35 :       IF(IPREM.EQ.1) THEN
  36 :         IF(NIB.EQ.1) NIB = 10
  36 :         CALL CRIOTO(S1,SEQ,FCRI,NSTRS,TU,AA,BB,DK1,DK2)
  37 :       ENDIF
  38 : C-------------------------------------------------------------------
  39 :       SEQ0=SEQ
  39 :       CALL ZERO(CR,100,3)
  39 :       CALL ZERO(SS,100,6)
  40 : C-------------------------------------------------------------------
  41 :       DO 1 II=1,NIB
  42 :       SEQ1=SEQ
  43 : C-------------------------------------------------------------------
  44 : C         **************************************
  45 : C         * BOUCLE SUR LES ITERATIONS INTERNES *
  46 : C         **************************************
  47 : C-------------------------------------------------------------------
  48 :       IF(SEQ.LT.1.D-10) THEN
  48 :          CALL ZERO(DEP,NSTRS,NSTRS)
  49 :          GOTO 40
  50 :       ENDIF
  50 :       CALL DFSIG(S1,DFSI,DGSI,SEQ1,NSTRS,RB,AA,BB,DK1,DK2,ILOI)
  51 :       H2=0.D0
  52 :       DO 92 I=1,NSTRS
  53 :         H2=H2+DFSI(I)*DGSI(I)
  54 :    92 CONTINUE
  55 :       PAEC=PAEC0*H2
  56 : C-------------------------------------------------------------------
  56 :       CALL DEPO(S1,DEP,PAEC,SEQ1,NSTRS,IFOU,D6,DP,EX,PXY,AA,BB,
  57 :      & DK1,DK2,RB,ILOI)
  58 : C-------------------------------------------------------------------
  59 :    40 CONTINUE
  59 :       CALL BST(DEP,STRN,NSTRS,NSTRS,S)
  60 :       DO 45 I=1,NSTRS
  61 :         S1(I)=SIGR(I)+S(I)
  62 :    45 CONTINUE
  62 :       CALL CRIOTO(S1,SEQ,FCRI,NSTRS,SEQ1,AA,BB,DK1,DK2)
  63 : C---------------------------------------------------------------------
  64 :       IF(DABS(FCRI).LT.PRB) GOTO 7
  65 :       DO 4 J=1,NSTRS
  66 :          SS(II,J)=S1(J)
  67 :     4 CONTINUE
  68 :       CR(II,1)=FCRI
  69 :       CR(II,2)=SEQ
  70 :       CR(II,3)=PAEC
  71 : C-------------------------------------------------------------------
  72 : C         ************************************************
  73 : C         * FIN DE LA BOUCLE SUR LES ITERATIONS INTERNES *
  74 : C         ************************************************
  75 :     1 CONTINUE
  76 : C--------------------------------------------------------------------------
  77 :       DMMN1=DABS(CR(1,1))
  78 :       NO=1
  79 :       DO 5 J=1,NIB
  80 :        ACR=DABS(CR(J,1))
  81 :        IF(DMMN1 .GE. ACR) THEN
  82 :          DMMN1=DABS(CR(J,1))
  83 :          NO=J
  84 :        ENDIF
  85 :     5 CONTINUE
  86 :       DO 6 J=1,NSTRS
  87 :         S1(J)=SS(NO,J)
  88 :         IF(DABS(S1(I)).LT.1.D-8) S1(I)=0.D0
  89 :     6 CONTINUE
  90 :         SEQ=CR(NO,2)
  91 :         PAEC=CR(NO,3)
  92 :     7 CONTINUE
  93 : C----------------------------------------------------------------------
  94 :       IF(SEQ.GT.TU) SEQ=TU
  94 :       CALL DEPO(S1,DEP,PAEC,SEQ,NSTRS,IFOU,D6,DP,EX,PXY,AA,BB,
  95 :      1 DK1,DK2,RB,ILOI)
  96 : C--------------------------------------------------------------------------
  97 :   200 CONTINUE
  98 : C--------------------------------------------------------------------------
  99 : 1991  FORMAT(18(1X,E12.5))
 100 : C--------------------------------------------------------------------------
 101 :       RETURN
 102 :       END
 103 :  
 104 :  

© Cast3M 2003 - All rights reserved.
Disclaimer