[cig-commits] commit: Remove trailing characters at column 73 and explicitly convert from

Mercurial hg at geodynamics.org
Thu May 10 13:59:30 PDT 2012


changeset:   85:e5d4e0694bab
user:        Walter Landry <wlandry at caltech.edu>
date:        Thu May 10 06:57:38 2012 -0700
files:       src/okada/dc3d.f
description:
Remove trailing characters at column 73 and explicitly convert from
REAL*8 to REAL*4.


diff -r 43f42e533f75 -r e5d4e0694bab src/okada/dc3d.f
--- a/src/okada/dc3d.f	Thu May 10 06:53:30 2012 -0700
+++ b/src/okada/dc3d.f	Thu May 10 06:57:38 2012 -0700
@@ -1,665 +1,665 @@
-      SUBROUTINE  DC3D(ALPHA,X,Y,Z,DEPTH,DIP,                           04610005
-     *              AL1,AL2,AW1,AW2,DISL1,DISL2,DISL3,                  04620005
-     *              UX,UY,UZ,UXX,UYX,UZX,UXY,UYY,UZY,UXZ,UYZ,UZZ,IRET)  04630005
-      IMPLICIT REAL*8 (A-H,O-Z)                                         04640005
-      REAL*4   ALPHA,X,Y,Z,DEPTH,DIP,AL1,AL2,AW1,AW2,DISL1,DISL2,DISL3, 04650005
-     *         UX,UY,UZ,UXX,UYX,UZX,UXY,UYY,UZY,UXZ,UYZ,UZZ,EPS         04660005
-C                                                                       04670005
-C********************************************************************   04680005
-C*****                                                          *****   04690005
-C*****    DISPLACEMENT AND STRAIN AT DEPTH                      *****   04700005
-C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   04710005
-C*****              CODED BY  Y.OKADA ... SEP.1991              *****   04720005
-C*****              REVISED ... NOV.1991, APR.1992, MAY.1993,   *****   04730005
-C*****                          JUL.1993                        *****   04740005
-C********************************************************************   04750005
-C                                                                       04760005
-C***** INPUT                                                            04770005
-C*****   ALPHA : MEDIUM CONSTANT  (LAMBDA+MYU)/(LAMBDA+2*MYU)           04780005
-C*****   X,Y,Z : COORDINATE OF OBSERVING POINT                          04790005
-C*****   DEPTH : DEPTH OF REFERENCE POINT                               04800005
-C*****   DIP   : DIP-ANGLE (DEGREE)                                     04810005
-C*****   AL1,AL2   : FAULT LENGTH RANGE                                 04820005
-C*****   AW1,AW2   : FAULT WIDTH RANGE                                  04830005
-C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              04840005
-C                                                                       04850005
-C***** OUTPUT                                                           04860005
-C*****   UX, UY, UZ  : DISPLACEMENT ( UNIT=(UNIT OF DISL)               04870005
-C*****   UXX,UYX,UZX : X-DERIVATIVE ( UNIT=(UNIT OF DISL) /             04880005
-C*****   UXY,UYY,UZY : Y-DERIVATIVE        (UNIT OF X,Y,Z,DEPTH,AL,AW) )04890005
-C*****   UXZ,UYZ,UZZ : Z-DERIVATIVE                                     04900005
-C*****   IRET        : RETURN CODE  ( =0....NORMAL,   =1....SINGULAR )  04910005
-C                                                                       04920005
-      COMMON /C0/DUMMY(5),SD,CD,dumm(5)                                 04930005
-      DIMENSION  XI(2),ET(2),KXI(2),KET(2)                              04940005
-      DIMENSION  U(12),DU(12),DUA(12),DUB(12),DUC(12)                   04950005
-      DATA  F0,EPS/ 0.D0, 1.D-6 /                                       04960005
-C-----                                                                  04970005
-      IF(Z.GT.0.) WRITE(*,'('' ** POSITIVE Z WAS GIVEN IN SUB-DC3D'')') 04980005
-      DO 111 I=1,12                                                     04990005
-        U  (I)=F0                                                       05000005
-        DUA(I)=F0                                                       05010005
-        DUB(I)=F0                                                       05020005
-        DUC(I)=F0                                                       05030005
-  111 CONTINUE                                                          05040005
-      AALPHA=ALPHA                                                      05050005
-      DDIP=DIP                                                          05060005
-      CALL DCCON0(AALPHA,DDIP)                                          05070005
-C-----                                                                  05080005
-      ZZ=Z                                                              05090005
-      DD1=DISL1                                                         05100005
-      DD2=DISL2                                                         05110005
-      DD3=DISL3                                                         05120005
-      XI(1)=X-AL1                                                       05130005
-      XI(2)=X-AL2                                                       05140005
-      IF(DABS(XI(1)).LT.EPS) XI(1)=F0                                   05150005
-      IF(DABS(XI(2)).LT.EPS) XI(2)=F0                                   05160005
-C======================================                                 05170005
-C=====  REAL-SOURCE CONTRIBUTION  =====                                 05180005
-C======================================                                 05190005
-      D=DEPTH+Z                                                         05200005
-      P=Y*CD+D*SD                                                       05210005
-      Q=Y*SD-D*CD                                                       05220005
-      ET(1)=P-AW1                                                       05230005
-      ET(2)=P-AW2                                                       05240005
-      IF(DABS(Q).LT.EPS)  Q=F0                                          05250005
-      IF(DABS(ET(1)).LT.EPS) ET(1)=F0                                   05260005
-      IF(DABS(ET(2)).LT.EPS) ET(2)=F0                                   05270005
-C--------------------------------                                       05280005
-C----- REJECT SINGULAR CASE -----                                       05290005
-C--------------------------------                                       05300005
-C----- ON FAULT EDGE                                                    05310014
-      IF(Q.EQ.F0                                                        05320014
-     *   .AND.(    (XI(1)*XI(2).LE.F0 .AND. ET(1)*ET(2).EQ.F0)          05330014
-     *         .OR.(ET(1)*ET(2).LE.F0 .AND. XI(1)*XI(2).EQ.F0) ))       05340014
-     *   GO TO 99                                                       05350005
-C----- ON NEGATIVE EXTENSION OF FAULT EDGE                              05360014
-      KXI(1)=0                                                          05370005
-      KXI(2)=0                                                          05380005
-      KET(1)=0                                                          05390005
-      KET(2)=0                                                          05400005
-      R12=DSQRT(XI(1)*XI(1)+ET(2)*ET(2)+Q*Q)                            05410005
-      R21=DSQRT(XI(2)*XI(2)+ET(1)*ET(1)+Q*Q)                            05420005
-      R22=DSQRT(XI(2)*XI(2)+ET(2)*ET(2)+Q*Q)                            05430005
-      IF(XI(1).LT.F0 .AND. R21+XI(2).LT.EPS) KXI(1)=1                   05440011
-      IF(XI(1).LT.F0 .AND. R22+XI(2).LT.EPS) KXI(2)=1                   05450011
-      IF(ET(1).LT.F0 .AND. R12+ET(2).LT.EPS) KET(1)=1                   05460011
-      IF(ET(1).LT.F0 .AND. R22+ET(2).LT.EPS) KET(2)=1                   05470011
-C=====                                                                  05480015
-      DO 223 K=1,2                                                      05490005
-      DO 222 J=1,2                                                      05500005
-        CALL DCCON2(XI(J),ET(K),Q,SD,CD,KXI(K),KET(J))                  05510014
-        CALL UA(XI(J),ET(K),Q,DD1,DD2,DD3,DUA)                          05520005
-C-----                                                                  05530005
-        DO 220 I=1,10,3                                                 05540005
-          DU(I)  =-DUA(I)                                               05550005
-          DU(I+1)=-DUA(I+1)*CD+DUA(I+2)*SD                              05560005
-          DU(I+2)=-DUA(I+1)*SD-DUA(I+2)*CD                              05570005
-          IF(I.LT.10) GO TO 220                                         05580005
-          DU(I)  =-DU(I)                                                05590005
-          DU(I+1)=-DU(I+1)                                              05600005
-          DU(I+2)=-DU(I+2)                                              05610005
-  220   CONTINUE                                                        05620005
-        DO 221 I=1,12                                                   05630005
-          IF(J+K.NE.3) U(I)=U(I)+DU(I)                                  05640005
-          IF(J+K.EQ.3) U(I)=U(I)-DU(I)                                  05650005
-  221   CONTINUE                                                        05660005
-C-----                                                                  05670005
-  222 CONTINUE                                                          05680005
-  223 CONTINUE                                                          05690005
-C=======================================                                05700005
-C=====  IMAGE-SOURCE CONTRIBUTION  =====                                05710005
-C=======================================                                05720005
-      D=DEPTH-Z                                                         05730005
-      P=Y*CD+D*SD                                                       05740005
-      Q=Y*SD-D*CD                                                       05750005
-      ET(1)=P-AW1                                                       05760005
-      ET(2)=P-AW2                                                       05770005
-      IF(DABS(Q).LT.EPS)  Q=F0                                          05780005
-      IF(DABS(ET(1)).LT.EPS) ET(1)=F0                                   05790005
-      IF(DABS(ET(2)).LT.EPS) ET(2)=F0                                   05800005
-C--------------------------------                                       05810005
-C----- REJECT SINGULAR CASE -----                                       05820005
-C--------------------------------                                       05830005
-C----- ON FAULT EDGE                                                    05840015
-      IF(Q.EQ.F0                                                        05850015
-     *   .AND.(    (XI(1)*XI(2).LE.F0 .AND. ET(1)*ET(2).EQ.F0)          05860015
-     *         .OR.(ET(1)*ET(2).LE.F0 .AND. XI(1)*XI(2).EQ.F0) ))       05870015
-     *   GO TO 99                                                       05880015
-C----- ON NEGATIVE EXTENSION OF FAULT EDGE                              05890015
-      KXI(1)=0                                                          05900005
-      KXI(2)=0                                                          05910005
-      KET(1)=0                                                          05920005
-      KET(2)=0                                                          05930005
-      R12=DSQRT(XI(1)*XI(1)+ET(2)*ET(2)+Q*Q)                            05940005
-      R21=DSQRT(XI(2)*XI(2)+ET(1)*ET(1)+Q*Q)                            05950005
-      R22=DSQRT(XI(2)*XI(2)+ET(2)*ET(2)+Q*Q)                            05960005
-      IF(XI(1).LT.F0 .AND. R21+XI(2).LT.EPS) KXI(1)=1                   05970011
-      IF(XI(1).LT.F0 .AND. R22+XI(2).LT.EPS) KXI(2)=1                   05980011
-      IF(ET(1).LT.F0 .AND. R12+ET(2).LT.EPS) KET(1)=1                   05990011
-      IF(ET(1).LT.F0 .AND. R22+ET(2).LT.EPS) KET(2)=1                   06000011
-C=====                                                                  06010015
-      DO 334 K=1,2                                                      06020005
-      DO 333 J=1,2                                                      06030005
-        CALL DCCON2(XI(J),ET(K),Q,SD,CD,KXI(K),KET(J))                  06040014
-        CALL UA(XI(J),ET(K),Q,DD1,DD2,DD3,DUA)                          06050005
-        CALL UB(XI(J),ET(K),Q,DD1,DD2,DD3,DUB)                          06060005
-        CALL UC(XI(J),ET(K),Q,ZZ,DD1,DD2,DD3,DUC)                       06070005
-C-----                                                                  06080005
-        DO 330 I=1,10,3                                                 06090005
-          DU(I)=DUA(I)+DUB(I)+Z*DUC(I)                                  06100005
-          DU(I+1)=(DUA(I+1)+DUB(I+1)+Z*DUC(I+1))*CD                     06110005
-     *           -(DUA(I+2)+DUB(I+2)+Z*DUC(I+2))*SD                     06120005
-          DU(I+2)=(DUA(I+1)+DUB(I+1)-Z*DUC(I+1))*SD                     06130005
-     *           +(DUA(I+2)+DUB(I+2)-Z*DUC(I+2))*CD                     06140005
-          IF(I.LT.10) GO TO 330                                         06150005
-          DU(10)=DU(10)+DUC(1)                                          06160005
-          DU(11)=DU(11)+DUC(2)*CD-DUC(3)*SD                             06170005
-          DU(12)=DU(12)-DUC(2)*SD-DUC(3)*CD                             06180005
-  330   CONTINUE                                                        06190005
-        DO 331 I=1,12                                                   06200005
-          IF(J+K.NE.3) U(I)=U(I)+DU(I)                                  06210005
-          IF(J+K.EQ.3) U(I)=U(I)-DU(I)                                  06220005
-  331   CONTINUE                                                        06230005
-C-----                                                                  06240005
-  333 CONTINUE                                                          06250005
-  334 CONTINUE                                                          06260005
-C=====                                                                  06270005
-      UX=U(1)                                                           06280005
-      UY=U(2)                                                           06290005
-      UZ=U(3)                                                           06300005
-      UXX=U(4)                                                          06310005
-      UYX=U(5)                                                          06320005
-      UZX=U(6)                                                          06330005
-      UXY=U(7)                                                          06340005
-      UYY=U(8)                                                          06350005
-      UZY=U(9)                                                          06360005
-      UXZ=U(10)                                                         06370005
-      UYZ=U(11)                                                         06380005
-      UZZ=U(12)                                                         06390005
-      IRET=0                                                            06400005
-      RETURN                                                            06410005
-C===========================================                            06420005
-C=====  IN CASE OF SINGULAR (ON EDGE)  =====                            06430005
-C===========================================                            06440005
-   99 UX=F0                                                             06450005
-      UY=F0                                                             06460005
-      UZ=F0                                                             06470005
-      UXX=F0                                                            06480005
-      UYX=F0                                                            06490005
-      UZX=F0                                                            06500005
-      UXY=F0                                                            06510005
-      UYY=F0                                                            06520005
-      UZY=F0                                                            06530005
-      UXZ=F0                                                            06540005
-      UYZ=F0                                                            06550005
-      UZZ=F0                                                            06560005
-      IRET=1                                                            06570005
-      RETURN                                                            06580005
-      END                                                               06590005
-      SUBROUTINE  UA(XI,ET,Q,DISL1,DISL2,DISL3,U)                       06600005
-      IMPLICIT REAL*8 (A-H,O-Z)                                         06610005
-      DIMENSION U(12),DU(12)                                            06620005
-C                                                                       06630005
-C********************************************************************   06640005
-C*****    DISPLACEMENT AND STRAIN AT DEPTH (PART-A)             *****   06650005
-C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   06660005
-C********************************************************************   06670005
-C                                                                       06680005
-C***** INPUT                                                            06690005
-C*****   XI,ET,Q : STATION COORDINATES IN FAULT SYSTEM                  06700005
-C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              06710005
-C***** OUTPUT                                                           06720005
-C*****   U(12) : DISPLACEMENT AND THEIR DERIVATIVES                     06730005
-C                                                                       06740005
-      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  06750005
-      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  06760005
-     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                06770005
-      DATA F0,F2,PI2/0.D0,2.D0,6.283185307179586D0/                     06780005
-C-----                                                                  06790005
-      DO 111  I=1,12                                                    06800005
-  111 U(I)=F0                                                           06810005
-      XY=XI*Y11                                                         06820005
-      QX=Q *X11                                                         06830005
-      QY=Q *Y11                                                         06840005
-C======================================                                 06850005
-C=====  STRIKE-SLIP CONTRIBUTION  =====                                 06860005
-C======================================                                 06870005
-      IF(DISL1.NE.F0) THEN                                              06880005
-        DU( 1)=    TT/F2 +ALP2*XI*QY                                    06890005
-        DU( 2)=           ALP2*Q/R                                      06900005
-        DU( 3)= ALP1*ALE -ALP2*Q*QY                                     06910005
-        DU( 4)=-ALP1*QY  -ALP2*XI2*Q*Y32                                06920005
-        DU( 5)=          -ALP2*XI*Q/R3                                  06930005
-        DU( 6)= ALP1*XY  +ALP2*XI*Q2*Y32                                06940005
-        DU( 7)= ALP1*XY*SD        +ALP2*XI*FY+D/F2*X11                  06950005
-        DU( 8)=                    ALP2*EY                              06960005
-        DU( 9)= ALP1*(CD/R+QY*SD) -ALP2*Q*FY                            06970005
-        DU(10)= ALP1*XY*CD        +ALP2*XI*FZ+Y/F2*X11                  06980005
-        DU(11)=                    ALP2*EZ                              06990005
-        DU(12)=-ALP1*(SD/R-QY*CD) -ALP2*Q*FZ                            07000005
-        DO 222 I=1,12                                                   07010005
-  222   U(I)=U(I)+DISL1/PI2*DU(I)                                       07020005
-      ENDIF                                                             07030005
-C======================================                                 07040005
-C=====    DIP-SLIP CONTRIBUTION   =====                                 07050005
-C======================================                                 07060005
-      IF(DISL2.NE.F0) THEN                                              07070005
-        DU( 1)=           ALP2*Q/R                                      07080005
-        DU( 2)=    TT/F2 +ALP2*ET*QX                                    07090005
-        DU( 3)= ALP1*ALX -ALP2*Q*QX                                     07100005
-        DU( 4)=        -ALP2*XI*Q/R3                                    07110005
-        DU( 5)= -QY/F2 -ALP2*ET*Q/R3                                    07120005
-        DU( 6)= ALP1/R +ALP2*Q2/R3                                      07130005
-        DU( 7)=                      ALP2*EY                            07140005
-        DU( 8)= ALP1*D*X11+XY/F2*SD +ALP2*ET*GY                         07150005
-        DU( 9)= ALP1*Y*X11          -ALP2*Q*GY                          07160005
-        DU(10)=                      ALP2*EZ                            07170005
-        DU(11)= ALP1*Y*X11+XY/F2*CD +ALP2*ET*GZ                         07180005
-        DU(12)=-ALP1*D*X11          -ALP2*Q*GZ                          07190005
-        DO 333 I=1,12                                                   07200005
-  333   U(I)=U(I)+DISL2/PI2*DU(I)                                       07210005
-      ENDIF                                                             07220005
-C========================================                               07230005
-C=====  TENSILE-FAULT CONTRIBUTION  =====                               07240005
-C========================================                               07250005
-      IF(DISL3.NE.F0) THEN                                              07260005
-        DU( 1)=-ALP1*ALE -ALP2*Q*QY                                     07270005
-        DU( 2)=-ALP1*ALX -ALP2*Q*QX                                     07280005
-        DU( 3)=    TT/F2 -ALP2*(ET*QX+XI*QY)                            07290005
-        DU( 4)=-ALP1*XY  +ALP2*XI*Q2*Y32                                07300005
-        DU( 5)=-ALP1/R   +ALP2*Q2/R3                                    07310005
-        DU( 6)=-ALP1*QY  -ALP2*Q*Q2*Y32                                 07320005
-        DU( 7)=-ALP1*(CD/R+QY*SD)  -ALP2*Q*FY                           07330005
-        DU( 8)=-ALP1*Y*X11         -ALP2*Q*GY                           07340005
-        DU( 9)= ALP1*(D*X11+XY*SD) +ALP2*Q*HY                           07350005
-        DU(10)= ALP1*(SD/R-QY*CD)  -ALP2*Q*FZ                           07360005
-        DU(11)= ALP1*D*X11         -ALP2*Q*GZ                           07370005
-        DU(12)= ALP1*(Y*X11+XY*CD) +ALP2*Q*HZ                           07380005
-        DO 444 I=1,12                                                   07390005
-  444   U(I)=U(I)+DISL3/PI2*DU(I)                                       07400005
-      ENDIF                                                             07410005
-      RETURN                                                            07420005
-      END                                                               07430005
-      SUBROUTINE  UB(XI,ET,Q,DISL1,DISL2,DISL3,U)                       07440005
-      IMPLICIT REAL*8 (A-H,O-Z)                                         07450005
-      DIMENSION U(12),DU(12)                                            07460005
-C                                                                       07470005
-C********************************************************************   07480005
-C*****    DISPLACEMENT AND STRAIN AT DEPTH (PART-B)             *****   07490005
-C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   07500005
-C********************************************************************   07510005
-C                                                                       07520005
-C***** INPUT                                                            07530005
-C*****   XI,ET,Q : STATION COORDINATES IN FAULT SYSTEM                  07540005
-C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              07550005
-C***** OUTPUT                                                           07560005
-C*****   U(12) : DISPLACEMENT AND THEIR DERIVATIVES                     07570005
-C                                                                       07580005
-      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  07590005
-      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  07600005
-     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                07610005
-      DATA  F0,F1,F2,PI2/0.D0,1.D0,2.D0,6.283185307179586D0/            07620005
-C-----                                                                  07630005
-      RD=R+D                                                            07640005
-      D11=F1/(R*RD)                                                     07650005
-      AJ2=XI*Y/RD*D11                                                   07660005
-      AJ5=-(D+Y*Y/RD)*D11                                               07670005
-      IF(CD.NE.F0) THEN                                                 07680005
-        IF(XI.EQ.F0) THEN                                               07690005
-          AI4=F0                                                        07700005
-        ELSE                                                            07710005
-          X=DSQRT(XI2+Q2)                                               07720005
-          AI4=F1/CDCD*( XI/RD*SDCD                                      07730005
-     *       +F2*DATAN((ET*(X+Q*CD)+X*(R+X)*SD)/(XI*(R+X)*CD)) )        07740005
-        ENDIF                                                           07750005
-        AI3=(Y*CD/RD-ALE+SD*DLOG(RD))/CDCD                              07760005
-        AK1=XI*(D11-Y11*SD)/CD                                          07770005
-        AK3=(Q*Y11-Y*D11)/CD                                            07780005
-        AJ3=(AK1-AJ2*SD)/CD                                             07790005
-        AJ6=(AK3-AJ5*SD)/CD                                             07800005
-      ELSE                                                              07810005
-        RD2=RD*RD                                                       07820005
-        AI3=(ET/RD+Y*Q/RD2-ALE)/F2                                      07830005
-        AI4=XI*Y/RD2/F2                                                 07840005
-        AK1=XI*Q/RD*D11                                                 07850005
-        AK3=SD/RD*(XI2*D11-F1)                                          07860005
-        AJ3=-XI/RD2*(Q2*D11-F1/F2)                                      07870005
-        AJ6=-Y/RD2*(XI2*D11-F1/F2)                                      07880005
-      ENDIF                                                             07890005
-C-----                                                                  07900005
-      XY=XI*Y11                                                         07910005
-      AI1=-XI/RD*CD-AI4*SD                                              07920005
-      AI2= DLOG(RD)+AI3*SD                                              07930005
-      AK2= F1/R+AK3*SD                                                  07940005
-      AK4= XY*CD-AK1*SD                                                 07950005
-      AJ1= AJ5*CD-AJ6*SD                                                07960005
-      AJ4=-XY-AJ2*CD+AJ3*SD                                             07970005
-C=====                                                                  07980005
-      DO 111  I=1,12                                                    07990005
-  111 U(I)=F0                                                           08000005
-      QX=Q*X11                                                          08010005
-      QY=Q*Y11                                                          08020005
-C======================================                                 08030005
-C=====  STRIKE-SLIP CONTRIBUTION  =====                                 08040005
-C======================================                                 08050005
-      IF(DISL1.NE.F0) THEN                                              08060005
-        DU( 1)=-XI*QY-TT -ALP3*AI1*SD                                   08070005
-        DU( 2)=-Q/R      +ALP3*Y/RD*SD                                  08080005
-        DU( 3)= Q*QY     -ALP3*AI2*SD                                   08090005
-        DU( 4)= XI2*Q*Y32 -ALP3*AJ1*SD                                  08100005
-        DU( 5)= XI*Q/R3   -ALP3*AJ2*SD                                  08110005
-        DU( 6)=-XI*Q2*Y32 -ALP3*AJ3*SD                                  08120005
-        DU( 7)=-XI*FY-D*X11 +ALP3*(XY+AJ4)*SD                           08130005
-        DU( 8)=-EY          +ALP3*(F1/R+AJ5)*SD                         08140005
-        DU( 9)= Q*FY        -ALP3*(QY-AJ6)*SD                           08150005
-        DU(10)=-XI*FZ-Y*X11 +ALP3*AK1*SD                                08160005
-        DU(11)=-EZ          +ALP3*Y*D11*SD                              08170005
-        DU(12)= Q*FZ        +ALP3*AK2*SD                                08180005
-        DO 222 I=1,12                                                   08190005
-  222   U(I)=U(I)+DISL1/PI2*DU(I)                                       08200005
-      ENDIF                                                             08210005
-C======================================                                 08220005
-C=====    DIP-SLIP CONTRIBUTION   =====                                 08230005
-C======================================                                 08240005
-      IF(DISL2.NE.F0) THEN                                              08250005
-        DU( 1)=-Q/R      +ALP3*AI3*SDCD                                 08260005
-        DU( 2)=-ET*QX-TT -ALP3*XI/RD*SDCD                               08270005
-        DU( 3)= Q*QX     +ALP3*AI4*SDCD                                 08280005
-        DU( 4)= XI*Q/R3     +ALP3*AJ4*SDCD                              08290005
-        DU( 5)= ET*Q/R3+QY  +ALP3*AJ5*SDCD                              08300005
-        DU( 6)=-Q2/R3       +ALP3*AJ6*SDCD                              08310005
-        DU( 7)=-EY          +ALP3*AJ1*SDCD                              08320005
-        DU( 8)=-ET*GY-XY*SD +ALP3*AJ2*SDCD                              08330005
-        DU( 9)= Q*GY        +ALP3*AJ3*SDCD                              08340005
-        DU(10)=-EZ          -ALP3*AK3*SDCD                              08350005
-        DU(11)=-ET*GZ-XY*CD -ALP3*XI*D11*SDCD                           08360005
-        DU(12)= Q*GZ        -ALP3*AK4*SDCD                              08370005
-        DO 333 I=1,12                                                   08380005
-  333   U(I)=U(I)+DISL2/PI2*DU(I)                                       08390005
-      ENDIF                                                             08400005
-C========================================                               08410005
-C=====  TENSILE-FAULT CONTRIBUTION  =====                               08420005
-C========================================                               08430005
-      IF(DISL3.NE.F0) THEN                                              08440005
-        DU( 1)= Q*QY           -ALP3*AI3*SDSD                           08450005
-        DU( 2)= Q*QX           +ALP3*XI/RD*SDSD                         08460005
-        DU( 3)= ET*QX+XI*QY-TT -ALP3*AI4*SDSD                           08470005
-        DU( 4)=-XI*Q2*Y32 -ALP3*AJ4*SDSD                                08480005
-        DU( 5)=-Q2/R3     -ALP3*AJ5*SDSD                                08490005
-        DU( 6)= Q*Q2*Y32  -ALP3*AJ6*SDSD                                08500005
-        DU( 7)= Q*FY -ALP3*AJ1*SDSD                                     08510005
-        DU( 8)= Q*GY -ALP3*AJ2*SDSD                                     08520005
-        DU( 9)=-Q*HY -ALP3*AJ3*SDSD                                     08530005
-        DU(10)= Q*FZ +ALP3*AK3*SDSD                                     08540005
-        DU(11)= Q*GZ +ALP3*XI*D11*SDSD                                  08550005
-        DU(12)=-Q*HZ +ALP3*AK4*SDSD                                     08560005
-        DO 444 I=1,12                                                   08570005
-  444   U(I)=U(I)+DISL3/PI2*DU(I)                                       08580005
-      ENDIF                                                             08590005
-      RETURN                                                            08600005
-      END                                                               08610005
-      SUBROUTINE  UC(XI,ET,Q,Z,DISL1,DISL2,DISL3,U)                     08620005
-      IMPLICIT REAL*8 (A-H,O-Z)                                         08630005
-      DIMENSION U(12),DU(12)                                            08640005
-C                                                                       08650005
-C********************************************************************   08660005
-C*****    DISPLACEMENT AND STRAIN AT DEPTH (PART-C)             *****   08670005
-C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   08680005
-C********************************************************************   08690005
-C                                                                       08700005
-C***** INPUT                                                            08710005
-C*****   XI,ET,Q,Z   : STATION COORDINATES IN FAULT SYSTEM              08720005
-C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              08730005
-C***** OUTPUT                                                           08740005
-C*****   U(12) : DISPLACEMENT AND THEIR DERIVATIVES                     08750005
-C                                                                       08760005
-      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  08770005
-      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  08780005
-     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                08790005
-      DATA F0,F1,F2,F3,PI2/0.D0,1.D0,2.D0,3.D0,6.283185307179586D0/     08800005
-C-----                                                                  08810005
-      C=D+Z                                                             08820005
-      X53=(8.D0*R2+9.D0*R*XI+F3*XI2)*X11*X11*X11/R2                     08830005
-      Y53=(8.D0*R2+9.D0*R*ET+F3*ET2)*Y11*Y11*Y11/R2                     08840005
-      H=Q*CD-Z                                                          08850005
-      Z32=SD/R3-H*Y32                                                   08860005
-      Z53=F3*SD/R5-H*Y53                                                08870005
-      Y0=Y11-XI2*Y32                                                    08880005
-      Z0=Z32-XI2*Z53                                                    08890005
-      PPY=CD/R3+Q*Y32*SD                                                08900005
-      PPZ=SD/R3-Q*Y32*CD                                                08910005
-      QQ=Z*Y32+Z32+Z0                                                   08920005
-      QQY=F3*C*D/R5-QQ*SD                                               08930005
-      QQZ=F3*C*Y/R5-QQ*CD+Q*Y32                                         08940005
-      XY=XI*Y11                                                         08950005
-      QX=Q*X11                                                          08960005
-      QY=Q*Y11                                                          08970005
-      QR=F3*Q/R5                                                        08980005
-      CQX=C*Q*X53                                                       08990005
-      CDR=(C+D)/R3                                                      09000005
-      YY0=Y/R3-Y0*CD                                                    09010005
-C=====                                                                  09020005
-      DO 111  I=1,12                                                    09030005
-  111 U(I)=F0                                                           09040005
-C======================================                                 09050005
-C=====  STRIKE-SLIP CONTRIBUTION  =====                                 09060005
-C======================================                                 09070005
-      IF(DISL1.NE.F0) THEN                                              09080005
-        DU( 1)= ALP4*XY*CD           -ALP5*XI*Q*Z32                     09090005
-        DU( 2)= ALP4*(CD/R+F2*QY*SD) -ALP5*C*Q/R3                       09100005
-        DU( 3)= ALP4*QY*CD           -ALP5*(C*ET/R3-Z*Y11+XI2*Z32)      09110005
-        DU( 4)= ALP4*Y0*CD                  -ALP5*Q*Z0                  09120005
-        DU( 5)=-ALP4*XI*(CD/R3+F2*Q*Y32*SD) +ALP5*C*XI*QR               09130005
-        DU( 6)=-ALP4*XI*Q*Y32*CD            +ALP5*XI*(F3*C*ET/R5-QQ)    09140005
-        DU( 7)=-ALP4*XI*PPY*CD    -ALP5*XI*QQY                          09150005
-        DU( 8)= ALP4*F2*(D/R3-Y0*SD)*SD-Y/R3*CD                         09160005
-     *                            -ALP5*(CDR*SD-ET/R3-C*Y*QR)           09170005
-        DU( 9)=-ALP4*Q/R3+YY0*SD  +ALP5*(CDR*CD+C*D*QR-(Y0*CD+Q*Z0)*SD) 09180005
-        DU(10)= ALP4*XI*PPZ*CD    -ALP5*XI*QQZ                          09190005
-        DU(11)= ALP4*F2*(Y/R3-Y0*CD)*SD+D/R3*CD -ALP5*(CDR*CD+C*D*QR)   09200005
-        DU(12)=         YY0*CD    -ALP5*(CDR*SD-C*Y*QR-Y0*SDSD+Q*Z0*CD) 09210005
-        DO 222 I=1,12                                                   09220005
-  222   U(I)=U(I)+DISL1/PI2*DU(I)                                       09230005
-      ENDIF                                                             09240005
-C======================================                                 09250005
-C=====    DIP-SLIP CONTRIBUTION   =====                                 09260005
-C======================================                                 09270005
-      IF(DISL2.NE.F0) THEN                                              09280005
-        DU( 1)= ALP4*CD/R -QY*SD -ALP5*C*Q/R3                           09290005
-        DU( 2)= ALP4*Y*X11       -ALP5*C*ET*Q*X32                       09300005
-        DU( 3)=     -D*X11-XY*SD -ALP5*C*(X11-Q2*X32)                   09310005
-        DU( 4)=-ALP4*XI/R3*CD +ALP5*C*XI*QR +XI*Q*Y32*SD                09320005
-        DU( 5)=-ALP4*Y/R3     +ALP5*C*ET*QR                             09330005
-        DU( 6)=    D/R3-Y0*SD +ALP5*C/R3*(F1-F3*Q2/R2)                  09340005
-        DU( 7)=-ALP4*ET/R3+Y0*SDSD -ALP5*(CDR*SD-C*Y*QR)                09350005
-        DU( 8)= ALP4*(X11-Y*Y*X32) -ALP5*C*((D+F2*Q*CD)*X32-Y*ET*Q*X53) 09360005
-        DU( 9)=  XI*PPY*SD+Y*D*X32 +ALP5*C*((Y+F2*Q*SD)*X32-Y*Q2*X53)   09370005
-        DU(10)=      -Q/R3+Y0*SDCD -ALP5*(CDR*CD+C*D*QR)                09380005
-        DU(11)= ALP4*Y*D*X32       -ALP5*C*((Y-F2*Q*SD)*X32+D*ET*Q*X53) 09390005
-        DU(12)=-XI*PPZ*SD+X11-D*D*X32-ALP5*C*((D-F2*Q*CD)*X32-D*Q2*X53) 09400005
-        DO 333 I=1,12                                                   09410005
-  333   U(I)=U(I)+DISL2/PI2*DU(I)                                       09420005
-      ENDIF                                                             09430005
-C========================================                               09440005
-C=====  TENSILE-FAULT CONTRIBUTION  =====                               09450005
-C========================================                               09460005
-      IF(DISL3.NE.F0) THEN                                              09470005
-        DU( 1)=-ALP4*(SD/R+QY*CD)   -ALP5*(Z*Y11-Q2*Z32)                09480005
-        DU( 2)= ALP4*F2*XY*SD+D*X11 -ALP5*C*(X11-Q2*X32)                09490005
-        DU( 3)= ALP4*(Y*X11+XY*CD)  +ALP5*Q*(C*ET*X32+XI*Z32)           09500005
-        DU( 4)= ALP4*XI/R3*SD+XI*Q*Y32*CD+ALP5*XI*(F3*C*ET/R5-F2*Z32-Z0)09510005
-        DU( 5)= ALP4*F2*Y0*SD-D/R3 +ALP5*C/R3*(F1-F3*Q2/R2)             09520005
-        DU( 6)=-ALP4*YY0           -ALP5*(C*ET*QR-Q*Z0)                 09530005
-        DU( 7)= ALP4*(Q/R3+Y0*SDCD)   +ALP5*(Z/R3*CD+C*D*QR-Q*Z0*SD)    09540005
-        DU( 8)=-ALP4*F2*XI*PPY*SD-Y*D*X32                               09550005
-     *                    +ALP5*C*((Y+F2*Q*SD)*X32-Y*Q2*X53)            09560005
-        DU( 9)=-ALP4*(XI*PPY*CD-X11+Y*Y*X32)                            09570005
-     *                    +ALP5*(C*((D+F2*Q*CD)*X32-Y*ET*Q*X53)+XI*QQY) 09580005
-        DU(10)=  -ET/R3+Y0*CDCD -ALP5*(Z/R3*SD-C*Y*QR-Y0*SDSD+Q*Z0*CD)  09590005
-        DU(11)= ALP4*F2*XI*PPZ*SD-X11+D*D*X32                           09600005
-     *                    -ALP5*C*((D-F2*Q*CD)*X32-D*Q2*X53)            09610005
-        DU(12)= ALP4*(XI*PPZ*CD+Y*D*X32)                                09620005
-     *                    +ALP5*(C*((Y-F2*Q*SD)*X32+D*ET*Q*X53)+XI*QQZ) 09630005
-        DO 444 I=1,12                                                   09640005
-  444   U(I)=U(I)+DISL3/PI2*DU(I)                                       09650005
-      ENDIF                                                             09660005
-      RETURN                                                            09670005
-      END                                                               09680005
-      SUBROUTINE  DCCON0(ALPHA,DIP)                                     09690005
-      IMPLICIT REAL*8 (A-H,O-Z)                                         09700005
-C                                                                       09710005
-C*******************************************************************    09720005
-C*****   CALCULATE MEDIUM CONSTANTS AND FAULT-DIP CONSTANTS    *****    09730005
-C*******************************************************************    09740005
-C                                                                       09750005
-C***** INPUT                                                            09760005
-C*****   ALPHA : MEDIUM CONSTANT  (LAMBDA+MYU)/(LAMBDA+2*MYU)           09770005
-C*****   DIP   : DIP-ANGLE (DEGREE)                                     09780005
-C### CAUTION ### IF COS(DIP) IS SUFFICIENTLY SMALL, IT IS SET TO ZERO   09790005
-C                                                                       09800005
-      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  09810005
-      DATA F0,F1,F2,PI2/0.D0,1.D0,2.D0,6.283185307179586D0/             09820005
-      DATA EPS/1.D-6/                                                   09830005
-C-----                                                                  09840005
-      ALP1=(F1-ALPHA)/F2                                                09850005
-      ALP2= ALPHA/F2                                                    09860005
-      ALP3=(F1-ALPHA)/ALPHA                                             09870005
-      ALP4= F1-ALPHA                                                    09880005
-      ALP5= ALPHA                                                       09890005
-C-----                                                                  09900005
-      P18=PI2/360.D0                                                    09910005
-      SD=DSIN(DIP*P18)                                                  09920005
-      CD=DCOS(DIP*P18)                                                  09930005
-      IF(DABS(CD).LT.EPS) THEN                                          09940005
-        CD=F0                                                           09950005
-        IF(SD.GT.F0) SD= F1                                             09960005
-        IF(SD.LT.F0) SD=-F1                                             09970005
-      ENDIF                                                             09980005
-      SDSD=SD*SD                                                        09990005
-      CDCD=CD*CD                                                        10000005
-      SDCD=SD*CD                                                        10010005
-      S2D=F2*SDCD                                                       10020005
-      C2D=CDCD-SDSD                                                     10030005
-      RETURN                                                            10040005
-      END                                                               10050005
-      SUBROUTINE  DCCON1(X,Y,D)                                         10060005
-      IMPLICIT REAL*8 (A-H,O-Z)                                         10070005
-C                                                                       10080005
-C********************************************************************** 10090005
-C*****   CALCULATE STATION GEOMETRY CONSTANTS FOR POINT SOURCE    ***** 10100005
-C********************************************************************** 10110005
-C                                                                       10120005
-C***** INPUT                                                            10130005
-C*****   X,Y,D : STATION COORDINATES IN FAULT SYSTEM                    10140005
-C### CAUTION ### IF X,Y,D ARE SUFFICIENTLY SMALL, THEY ARE SET TO ZERO  10150005
-C                                                                       10160005
-      COMMON /C0/DUMMY(5),SD,CD,dumm(5)                                 10170005
-      COMMON /C1/P,Q,S,T,XY,X2,Y2,D2,R,R2,R3,R5,QR,QRX,A3,A5,B3,C3,     10180005
-     *           UY,VY,WY,UZ,VZ,WZ                                      10190005
-      DATA  F0,F1,F3,F5,EPS/0.D0,1.D0,3.D0,5.D0,1.D-6/                  10200005
-C-----                                                                  10210005
-      IF(DABS(X).LT.EPS) X=F0                                           10220005
-      IF(DABS(Y).LT.EPS) Y=F0                                           10230005
-      IF(DABS(D).LT.EPS) D=F0                                           10240005
-      P=Y*CD+D*SD                                                       10250005
-      Q=Y*SD-D*CD                                                       10260005
-      S=P*SD+Q*CD                                                       10270005
-      T=P*CD-Q*SD                                                       10280005
-      XY=X*Y                                                            10290005
-      X2=X*X                                                            10300005
-      Y2=Y*Y                                                            10310005
-      D2=D*D                                                            10320005
-      R2=X2+Y2+D2                                                       10330005
-      R =DSQRT(R2)                                                      10340005
-      IF(R.EQ.F0) RETURN                                                10350005
-      R3=R *R2                                                          10360005
-      R5=R3*R2                                                          10370005
-      R7=R5*R2                                                          10380005
-C-----                                                                  10390005
-      A3=F1-F3*X2/R2                                                    10400005
-      A5=F1-F5*X2/R2                                                    10410005
-      B3=F1-F3*Y2/R2                                                    10420005
-      C3=F1-F3*D2/R2                                                    10430005
-C-----                                                                  10440005
-      QR=F3*Q/R5                                                        10450005
-      QRX=F5*QR*X/R2                                                    10460005
-C-----                                                                  10470005
-      UY=SD-F5*Y*Q/R2                                                   10480005
-      UZ=CD+F5*D*Q/R2                                                   10490005
-      VY=S -F5*Y*P*Q/R2                                                 10500005
-      VZ=T +F5*D*P*Q/R2                                                 10510005
-      WY=UY+SD                                                          10520005
-      WZ=UZ+CD                                                          10530005
-      RETURN                                                            10540005
-      END                                                               10550005
-      SUBROUTINE  DCCON2(XI,ET,Q,SD,CD,KXI,KET)                         10560005
-      IMPLICIT REAL*8 (A-H,O-Z)                                         10570005
-C                                                                       10580005
-C********************************************************************** 10590005
-C*****   CALCULATE STATION GEOMETRY CONSTANTS FOR FINITE SOURCE   ***** 10600005
-C********************************************************************** 10610005
-C                                                                       10620005
-C***** INPUT                                                            10630005
-C*****   XI,ET,Q : STATION COORDINATES IN FAULT SYSTEM                  10640005
-C*****   SD,CD   : SIN, COS OF DIP-ANGLE                                10650005
-C*****   KXI,KET : KXI=1, KET=1 MEANS R+XI<EPS, R+ET<EPS, RESPECTIVELY  10660005
-C                                                                       10670005
-C### CAUTION ### IF XI,ET,Q ARE SUFFICIENTLY SMALL, THEY ARE SET TO ZER010680005
-C                                                                       10690005
-      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  10700005
-     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                10710005
-      DATA  F0,F1,F2,EPS/0.D0,1.D0,2.D0,1.D-6/                          10720005
-C-----                                                                  10730005
-      IF(DABS(XI).LT.EPS) XI=F0                                         10740005
-      IF(DABS(ET).LT.EPS) ET=F0                                         10750005
-      IF(DABS( Q).LT.EPS)  Q=F0                                         10760005
-      XI2=XI*XI                                                         10770005
-      ET2=ET*ET                                                         10780005
-      Q2=Q*Q                                                            10790005
-      R2=XI2+ET2+Q2                                                     10800005
-      R =DSQRT(R2)                                                      10810005
-      IF(R.EQ.F0) RETURN                                                10820005
-      R3=R *R2                                                          10830005
-      R5=R3*R2                                                          10840005
-      Y =ET*CD+Q*SD                                                     10850005
-      D =ET*SD-Q*CD                                                     10860005
-C-----                                                                  10870005
-      IF(Q.EQ.F0) THEN                                                  10880005
-        TT=F0                                                           10890005
-      ELSE                                                              10900005
-        TT=DATAN(XI*ET/(Q*R))                                           10910005
-      ENDIF                                                             10920005
-C-----                                                                  10930005
-      IF(KXI.EQ.1) THEN                                                 10940005
-        ALX=-DLOG(R-XI)                                                 10950005
-        X11=F0                                                          10960005
-        X32=F0                                                          10970005
-      ELSE                                                              10980005
-        RXI=R+XI                                                        10990005
-        ALX=DLOG(RXI)                                                   11000005
-        X11=F1/(R*RXI)                                                  11010005
-        X32=(R+RXI)*X11*X11/R                                           11020005
-      ENDIF                                                             11030005
-C-----                                                                  11040005
-      IF(KET.EQ.1) THEN                                                 11050005
-        ALE=-DLOG(R-ET)                                                 11060005
-        Y11=F0                                                          11070005
-        Y32=F0                                                          11080005
-      ELSE                                                              11090005
-        RET=R+ET                                                        11100005
-        ALE=DLOG(RET)                                                   11110005
-        Y11=F1/(R*RET)                                                  11120005
-        Y32=(R+RET)*Y11*Y11/R                                           11130005
-      ENDIF                                                             11140005
-C-----                                                                  11150005
-      EY=SD/R-Y*Q/R3                                                    11160005
-      EZ=CD/R+D*Q/R3                                                    11170005
-      FY=D/R3+XI2*Y32*SD                                                11180005
-      FZ=Y/R3+XI2*Y32*CD                                                11190005
-      GY=F2*X11*SD-Y*Q*X32                                              11200005
-      GZ=F2*X11*CD+D*Q*X32                                              11210005
-      HY=D*Q*X32+XI*Q*Y32*SD                                            11220005
-      HZ=Y*Q*X32+XI*Q*Y32*CD                                            11230005
-      RETURN                                                            11240005
-      END                                                               11250005
+      SUBROUTINE  DC3D(ALPHA,X,Y,Z,DEPTH,DIP,                           
+     *              AL1,AL2,AW1,AW2,DISL1,DISL2,DISL3,                  
+     *              UX,UY,UZ,UXX,UYX,UZX,UXY,UYY,UZY,UXZ,UYZ,UZZ,IRET)  
+      IMPLICIT REAL*8 (A-H,O-Z)                                         
+      REAL*4   ALPHA,X,Y,Z,DEPTH,DIP,AL1,AL2,AW1,AW2,DISL1,DISL2,DISL3, 
+     *         UX,UY,UZ,UXX,UYX,UZX,UXY,UYY,UZY,UXZ,UYZ,UZZ,EPS         
+C                                                                       
+C********************************************************************   
+C*****                                                          *****   
+C*****    DISPLACEMENT AND STRAIN AT DEPTH                      *****   
+C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   
+C*****              CODED BY  Y.OKADA ... SEP.1991              *****   
+C*****              REVISED ... NOV.1991, APR.1992, MAY.1993,   *****   
+C*****                          JUL.1993                        *****   
+C********************************************************************   
+C                                                                       
+C***** INPUT                                                            
+C*****   ALPHA : MEDIUM CONSTANT  (LAMBDA+MYU)/(LAMBDA+2*MYU)           
+C*****   X,Y,Z : COORDINATE OF OBSERVING POINT                          
+C*****   DEPTH : DEPTH OF REFERENCE POINT                               
+C*****   DIP   : DIP-ANGLE (DEGREE)                                     
+C*****   AL1,AL2   : FAULT LENGTH RANGE                                 
+C*****   AW1,AW2   : FAULT WIDTH RANGE                                  
+C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              
+C                                                                       
+C***** OUTPUT                                                           
+C*****   UX, UY, UZ  : DISPLACEMENT ( UNIT=(UNIT OF DISL)               
+C*****   UXX,UYX,UZX : X-DERIVATIVE ( UNIT=(UNIT OF DISL) /             
+C*****   UXY,UYY,UZY : Y-DERIVATIVE        (UNIT OF X,Y,Z,DEPTH,AL,AW) )
+C*****   UXZ,UYZ,UZZ : Z-DERIVATIVE                                     
+C*****   IRET        : RETURN CODE  ( =0....NORMAL,   =1....SINGULAR )  
+C                                                                       
+      COMMON /C0/DUMMY(5),SD,CD,dumm(5)                                 
+      DIMENSION  XI(2),ET(2),KXI(2),KET(2)                              
+      DIMENSION  U(12),DU(12),DUA(12),DUB(12),DUC(12)                   
+      DATA  F0,EPS/ 0.D0, 1.D-6 /                                       
+C-----                                                                  
+      IF(Z.GT.0.) WRITE(*,'('' ** POSITIVE Z WAS GIVEN IN SUB-DC3D'')') 
+      DO 111 I=1,12                                                     
+        U  (I)=F0                                                       
+        DUA(I)=F0                                                       
+        DUB(I)=F0                                                       
+        DUC(I)=F0                                                       
+  111 CONTINUE                                                          
+      AALPHA=ALPHA                                                      
+      DDIP=DIP                                                          
+      CALL DCCON0(AALPHA,DDIP)                                          
+C-----                                                                  
+      ZZ=Z                                                              
+      DD1=DISL1                                                         
+      DD2=DISL2                                                         
+      DD3=DISL3                                                         
+      XI(1)=X-AL1                                                       
+      XI(2)=X-AL2                                                       
+      IF(DABS(XI(1)).LT.EPS) XI(1)=F0                                   
+      IF(DABS(XI(2)).LT.EPS) XI(2)=F0                                   
+C======================================                                 
+C=====  REAL-SOURCE CONTRIBUTION  =====                                 
+C======================================                                 
+      D=DEPTH+Z                                                         
+      P=Y*CD+D*SD                                                       
+      Q=Y*SD-D*CD                                                       
+      ET(1)=P-AW1                                                       
+      ET(2)=P-AW2                                                       
+      IF(DABS(Q).LT.EPS)  Q=F0                                          
+      IF(DABS(ET(1)).LT.EPS) ET(1)=F0                                   
+      IF(DABS(ET(2)).LT.EPS) ET(2)=F0                                   
+C--------------------------------                                       
+C----- REJECT SINGULAR CASE -----                                       
+C--------------------------------                                       
+C----- ON FAULT EDGE                                                    
+      IF(Q.EQ.F0                                                        
+     *   .AND.(    (XI(1)*XI(2).LE.F0 .AND. ET(1)*ET(2).EQ.F0)          
+     *         .OR.(ET(1)*ET(2).LE.F0 .AND. XI(1)*XI(2).EQ.F0) ))       
+     *   GO TO 99                                                       
+C----- ON NEGATIVE EXTENSION OF FAULT EDGE                              
+      KXI(1)=0                                                          
+      KXI(2)=0                                                          
+      KET(1)=0                                                          
+      KET(2)=0                                                          
+      R12=DSQRT(XI(1)*XI(1)+ET(2)*ET(2)+Q*Q)                            
+      R21=DSQRT(XI(2)*XI(2)+ET(1)*ET(1)+Q*Q)                            
+      R22=DSQRT(XI(2)*XI(2)+ET(2)*ET(2)+Q*Q)                            
+      IF(XI(1).LT.F0 .AND. R21+XI(2).LT.EPS) KXI(1)=1                   
+      IF(XI(1).LT.F0 .AND. R22+XI(2).LT.EPS) KXI(2)=1                   
+      IF(ET(1).LT.F0 .AND. R12+ET(2).LT.EPS) KET(1)=1                   
+      IF(ET(1).LT.F0 .AND. R22+ET(2).LT.EPS) KET(2)=1                   
+C=====                                                                  
+      DO 223 K=1,2                                                      
+      DO 222 J=1,2                                                      
+        CALL DCCON2(XI(J),ET(K),Q,SD,CD,KXI(K),KET(J))                  
+        CALL UA(XI(J),ET(K),Q,DD1,DD2,DD3,DUA)                          
+C-----                                                                  
+        DO 220 I=1,10,3                                                 
+          DU(I)  =-DUA(I)                                               
+          DU(I+1)=-DUA(I+1)*CD+DUA(I+2)*SD                              
+          DU(I+2)=-DUA(I+1)*SD-DUA(I+2)*CD                              
+          IF(I.LT.10) GO TO 220                                         
+          DU(I)  =-DU(I)                                                
+          DU(I+1)=-DU(I+1)                                              
+          DU(I+2)=-DU(I+2)                                              
+  220   CONTINUE                                                        
+        DO 221 I=1,12                                                   
+          IF(J+K.NE.3) U(I)=U(I)+DU(I)                                  
+          IF(J+K.EQ.3) U(I)=U(I)-DU(I)                                  
+  221   CONTINUE                                                        
+C-----                                                                  
+  222 CONTINUE                                                          
+  223 CONTINUE                                                          
+C=======================================                                
+C=====  IMAGE-SOURCE CONTRIBUTION  =====                                
+C=======================================                                
+      D=DEPTH-Z                                                         
+      P=Y*CD+D*SD                                                       
+      Q=Y*SD-D*CD                                                       
+      ET(1)=P-AW1                                                       
+      ET(2)=P-AW2                                                       
+      IF(DABS(Q).LT.EPS)  Q=F0                                          
+      IF(DABS(ET(1)).LT.EPS) ET(1)=F0                                   
+      IF(DABS(ET(2)).LT.EPS) ET(2)=F0                                   
+C--------------------------------                                       
+C----- REJECT SINGULAR CASE -----                                       
+C--------------------------------                                       
+C----- ON FAULT EDGE                                                    
+      IF(Q.EQ.F0                                                        
+     *   .AND.(    (XI(1)*XI(2).LE.F0 .AND. ET(1)*ET(2).EQ.F0)          
+     *         .OR.(ET(1)*ET(2).LE.F0 .AND. XI(1)*XI(2).EQ.F0) ))       
+     *   GO TO 99                                                       
+C----- ON NEGATIVE EXTENSION OF FAULT EDGE                              
+      KXI(1)=0                                                          
+      KXI(2)=0                                                          
+      KET(1)=0                                                          
+      KET(2)=0                                                          
+      R12=DSQRT(XI(1)*XI(1)+ET(2)*ET(2)+Q*Q)                            
+      R21=DSQRT(XI(2)*XI(2)+ET(1)*ET(1)+Q*Q)                            
+      R22=DSQRT(XI(2)*XI(2)+ET(2)*ET(2)+Q*Q)                            
+      IF(XI(1).LT.F0 .AND. R21+XI(2).LT.EPS) KXI(1)=1                   
+      IF(XI(1).LT.F0 .AND. R22+XI(2).LT.EPS) KXI(2)=1                   
+      IF(ET(1).LT.F0 .AND. R12+ET(2).LT.EPS) KET(1)=1                   
+      IF(ET(1).LT.F0 .AND. R22+ET(2).LT.EPS) KET(2)=1                   
+C=====                                                                  
+      DO 334 K=1,2                                                      
+      DO 333 J=1,2                                                      
+        CALL DCCON2(XI(J),ET(K),Q,SD,CD,KXI(K),KET(J))                  
+        CALL UA(XI(J),ET(K),Q,DD1,DD2,DD3,DUA)                          
+        CALL UB(XI(J),ET(K),Q,DD1,DD2,DD3,DUB)                          
+        CALL UC(XI(J),ET(K),Q,ZZ,DD1,DD2,DD3,DUC)                       
+C-----                                                                  
+        DO 330 I=1,10,3                                                 
+          DU(I)=DUA(I)+DUB(I)+Z*DUC(I)                                  
+          DU(I+1)=(DUA(I+1)+DUB(I+1)+Z*DUC(I+1))*CD                     
+     *           -(DUA(I+2)+DUB(I+2)+Z*DUC(I+2))*SD                     
+          DU(I+2)=(DUA(I+1)+DUB(I+1)-Z*DUC(I+1))*SD                     
+     *           +(DUA(I+2)+DUB(I+2)-Z*DUC(I+2))*CD                     
+          IF(I.LT.10) GO TO 330                                         
+          DU(10)=DU(10)+DUC(1)                                          
+          DU(11)=DU(11)+DUC(2)*CD-DUC(3)*SD                             
+          DU(12)=DU(12)-DUC(2)*SD-DUC(3)*CD                             
+  330   CONTINUE                                                        
+        DO 331 I=1,12                                                   
+          IF(J+K.NE.3) U(I)=U(I)+DU(I)                                  
+          IF(J+K.EQ.3) U(I)=U(I)-DU(I)                                  
+  331   CONTINUE                                                        
+C-----                                                                  
+  333 CONTINUE                                                          
+  334 CONTINUE                                                          
+C=====                                                                  
+      UX=REAL(U(1),4)
+      UY=REAL(U(2),4)
+      UZ=REAL(U(3),4)
+      UXX=REAL(U(4),4)
+      UYX=REAL(U(5),4)
+      UZX=REAL(U(6),4)
+      UXY=REAL(U(7),4)
+      UYY=REAL(U(8),4)
+      UZY=REAL(U(9),4)
+      UXZ=REAL(U(10),4)
+      UYZ=REAL(U(11),4)
+      UZZ=REAL(U(12),4)
+      IRET=0                                                            
+      RETURN                                                            
+C===========================================                            
+C=====  IN CASE OF SINGULAR (ON EDGE)  =====                            
+C===========================================                            
+   99 UX=REAL(F0,4)
+      UY=REAL(F0,4)
+      UZ=REAL(F0,4)
+      UXX=REAL(F0,4)
+      UYX=REAL(F0,4)
+      UZX=REAL(F0,4)
+      UXY=REAL(F0,4)
+      UYY=REAL(F0,4)
+      UZY=REAL(F0,4)
+      UXZ=REAL(F0,4)
+      UYZ=REAL(F0,4)
+      UZZ=REAL(F0,4)
+      IRET=1                                                            
+      RETURN                                                            
+      END                                                               
+      SUBROUTINE  UA(XI,ET,Q,DISL1,DISL2,DISL3,U)                       
+      IMPLICIT REAL*8 (A-H,O-Z)                                         
+      DIMENSION U(12),DU(12)                                            
+C                                                                       
+C********************************************************************   
+C*****    DISPLACEMENT AND STRAIN AT DEPTH (PART-A)             *****   
+C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   
+C********************************************************************   
+C                                                                       
+C***** INPUT                                                            
+C*****   XI,ET,Q : STATION COORDINATES IN FAULT SYSTEM                  
+C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              
+C***** OUTPUT                                                           
+C*****   U(12) : DISPLACEMENT AND THEIR DERIVATIVES                     
+C                                                                       
+      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  
+      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  
+     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                
+      DATA F0,F2,PI2/0.D0,2.D0,6.283185307179586D0/                     
+C-----                                                                  
+      DO 111  I=1,12                                                    
+  111 U(I)=F0                                                           
+      XY=XI*Y11                                                         
+      QX=Q *X11                                                         
+      QY=Q *Y11                                                         
+C======================================                                 
+C=====  STRIKE-SLIP CONTRIBUTION  =====                                 
+C======================================                                 
+      IF(DISL1.NE.F0) THEN                                              
+        DU( 1)=    TT/F2 +ALP2*XI*QY                                    
+        DU( 2)=           ALP2*Q/R                                      
+        DU( 3)= ALP1*ALE -ALP2*Q*QY                                     
+        DU( 4)=-ALP1*QY  -ALP2*XI2*Q*Y32                                
+        DU( 5)=          -ALP2*XI*Q/R3                                  
+        DU( 6)= ALP1*XY  +ALP2*XI*Q2*Y32                                
+        DU( 7)= ALP1*XY*SD        +ALP2*XI*FY+D/F2*X11                  
+        DU( 8)=                    ALP2*EY                              
+        DU( 9)= ALP1*(CD/R+QY*SD) -ALP2*Q*FY                            
+        DU(10)= ALP1*XY*CD        +ALP2*XI*FZ+Y/F2*X11                  
+        DU(11)=                    ALP2*EZ                              
+        DU(12)=-ALP1*(SD/R-QY*CD) -ALP2*Q*FZ                            
+        DO 222 I=1,12                                                   
+  222   U(I)=U(I)+DISL1/PI2*DU(I)                                       
+      ENDIF                                                             
+C======================================                                 
+C=====    DIP-SLIP CONTRIBUTION   =====                                 
+C======================================                                 
+      IF(DISL2.NE.F0) THEN                                              
+        DU( 1)=           ALP2*Q/R                                      
+        DU( 2)=    TT/F2 +ALP2*ET*QX                                    
+        DU( 3)= ALP1*ALX -ALP2*Q*QX                                     
+        DU( 4)=        -ALP2*XI*Q/R3                                    
+        DU( 5)= -QY/F2 -ALP2*ET*Q/R3                                    
+        DU( 6)= ALP1/R +ALP2*Q2/R3                                      
+        DU( 7)=                      ALP2*EY                            
+        DU( 8)= ALP1*D*X11+XY/F2*SD +ALP2*ET*GY                         
+        DU( 9)= ALP1*Y*X11          -ALP2*Q*GY                          
+        DU(10)=                      ALP2*EZ                            
+        DU(11)= ALP1*Y*X11+XY/F2*CD +ALP2*ET*GZ                         
+        DU(12)=-ALP1*D*X11          -ALP2*Q*GZ                          
+        DO 333 I=1,12                                                   
+  333   U(I)=U(I)+DISL2/PI2*DU(I)                                       
+      ENDIF                                                             
+C========================================                               
+C=====  TENSILE-FAULT CONTRIBUTION  =====                               
+C========================================                               
+      IF(DISL3.NE.F0) THEN                                              
+        DU( 1)=-ALP1*ALE -ALP2*Q*QY                                     
+        DU( 2)=-ALP1*ALX -ALP2*Q*QX                                     
+        DU( 3)=    TT/F2 -ALP2*(ET*QX+XI*QY)                            
+        DU( 4)=-ALP1*XY  +ALP2*XI*Q2*Y32                                
+        DU( 5)=-ALP1/R   +ALP2*Q2/R3                                    
+        DU( 6)=-ALP1*QY  -ALP2*Q*Q2*Y32                                 
+        DU( 7)=-ALP1*(CD/R+QY*SD)  -ALP2*Q*FY                           
+        DU( 8)=-ALP1*Y*X11         -ALP2*Q*GY                           
+        DU( 9)= ALP1*(D*X11+XY*SD) +ALP2*Q*HY                           
+        DU(10)= ALP1*(SD/R-QY*CD)  -ALP2*Q*FZ                           
+        DU(11)= ALP1*D*X11         -ALP2*Q*GZ                           
+        DU(12)= ALP1*(Y*X11+XY*CD) +ALP2*Q*HZ                           
+        DO 444 I=1,12                                                   
+  444   U(I)=U(I)+DISL3/PI2*DU(I)                                       
+      ENDIF                                                             
+      RETURN                                                            
+      END                                                               
+      SUBROUTINE  UB(XI,ET,Q,DISL1,DISL2,DISL3,U)                       
+      IMPLICIT REAL*8 (A-H,O-Z)                                         
+      DIMENSION U(12),DU(12)                                            
+C                                                                       
+C********************************************************************   
+C*****    DISPLACEMENT AND STRAIN AT DEPTH (PART-B)             *****   
+C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   
+C********************************************************************   
+C                                                                       
+C***** INPUT                                                            
+C*****   XI,ET,Q : STATION COORDINATES IN FAULT SYSTEM                  
+C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              
+C***** OUTPUT                                                           
+C*****   U(12) : DISPLACEMENT AND THEIR DERIVATIVES                     
+C                                                                       
+      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  
+      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  
+     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                
+      DATA  F0,F1,F2,PI2/0.D0,1.D0,2.D0,6.283185307179586D0/            
+C-----                                                                  
+      RD=R+D                                                            
+      D11=F1/(R*RD)                                                     
+      AJ2=XI*Y/RD*D11                                                   
+      AJ5=-(D+Y*Y/RD)*D11                                               
+      IF(CD.NE.F0) THEN                                                 
+        IF(XI.EQ.F0) THEN                                               
+          AI4=F0                                                        
+        ELSE                                                            
+          X=DSQRT(XI2+Q2)                                               
+          AI4=F1/CDCD*( XI/RD*SDCD                                      
+     *       +F2*DATAN((ET*(X+Q*CD)+X*(R+X)*SD)/(XI*(R+X)*CD)) )        
+        ENDIF                                                           
+        AI3=(Y*CD/RD-ALE+SD*DLOG(RD))/CDCD                              
+        AK1=XI*(D11-Y11*SD)/CD                                          
+        AK3=(Q*Y11-Y*D11)/CD                                            
+        AJ3=(AK1-AJ2*SD)/CD                                             
+        AJ6=(AK3-AJ5*SD)/CD                                             
+      ELSE                                                              
+        RD2=RD*RD                                                       
+        AI3=(ET/RD+Y*Q/RD2-ALE)/F2                                      
+        AI4=XI*Y/RD2/F2                                                 
+        AK1=XI*Q/RD*D11                                                 
+        AK3=SD/RD*(XI2*D11-F1)                                          
+        AJ3=-XI/RD2*(Q2*D11-F1/F2)                                      
+        AJ6=-Y/RD2*(XI2*D11-F1/F2)                                      
+      ENDIF                                                             
+C-----                                                                  
+      XY=XI*Y11                                                         
+      AI1=-XI/RD*CD-AI4*SD                                              
+      AI2= DLOG(RD)+AI3*SD                                              
+      AK2= F1/R+AK3*SD                                                  
+      AK4= XY*CD-AK1*SD                                                 
+      AJ1= AJ5*CD-AJ6*SD                                                
+      AJ4=-XY-AJ2*CD+AJ3*SD                                             
+C=====                                                                  
+      DO 111  I=1,12                                                    
+  111 U(I)=F0                                                           
+      QX=Q*X11                                                          
+      QY=Q*Y11                                                          
+C======================================                                 
+C=====  STRIKE-SLIP CONTRIBUTION  =====                                 
+C======================================                                 
+      IF(DISL1.NE.F0) THEN                                              
+        DU( 1)=-XI*QY-TT -ALP3*AI1*SD                                   
+        DU( 2)=-Q/R      +ALP3*Y/RD*SD                                  
+        DU( 3)= Q*QY     -ALP3*AI2*SD                                   
+        DU( 4)= XI2*Q*Y32 -ALP3*AJ1*SD                                  
+        DU( 5)= XI*Q/R3   -ALP3*AJ2*SD                                  
+        DU( 6)=-XI*Q2*Y32 -ALP3*AJ3*SD                                  
+        DU( 7)=-XI*FY-D*X11 +ALP3*(XY+AJ4)*SD                           
+        DU( 8)=-EY          +ALP3*(F1/R+AJ5)*SD                         
+        DU( 9)= Q*FY        -ALP3*(QY-AJ6)*SD                           
+        DU(10)=-XI*FZ-Y*X11 +ALP3*AK1*SD                                
+        DU(11)=-EZ          +ALP3*Y*D11*SD                              
+        DU(12)= Q*FZ        +ALP3*AK2*SD                                
+        DO 222 I=1,12                                                   
+  222   U(I)=U(I)+DISL1/PI2*DU(I)                                       
+      ENDIF                                                             
+C======================================                                 
+C=====    DIP-SLIP CONTRIBUTION   =====                                 
+C======================================                                 
+      IF(DISL2.NE.F0) THEN                                              
+        DU( 1)=-Q/R      +ALP3*AI3*SDCD                                 
+        DU( 2)=-ET*QX-TT -ALP3*XI/RD*SDCD                               
+        DU( 3)= Q*QX     +ALP3*AI4*SDCD                                 
+        DU( 4)= XI*Q/R3     +ALP3*AJ4*SDCD                              
+        DU( 5)= ET*Q/R3+QY  +ALP3*AJ5*SDCD                              
+        DU( 6)=-Q2/R3       +ALP3*AJ6*SDCD                              
+        DU( 7)=-EY          +ALP3*AJ1*SDCD                              
+        DU( 8)=-ET*GY-XY*SD +ALP3*AJ2*SDCD                              
+        DU( 9)= Q*GY        +ALP3*AJ3*SDCD                              
+        DU(10)=-EZ          -ALP3*AK3*SDCD                              
+        DU(11)=-ET*GZ-XY*CD -ALP3*XI*D11*SDCD                           
+        DU(12)= Q*GZ        -ALP3*AK4*SDCD                              
+        DO 333 I=1,12                                                   
+  333   U(I)=U(I)+DISL2/PI2*DU(I)                                       
+      ENDIF                                                             
+C========================================                               
+C=====  TENSILE-FAULT CONTRIBUTION  =====                               
+C========================================                               
+      IF(DISL3.NE.F0) THEN                                              
+        DU( 1)= Q*QY           -ALP3*AI3*SDSD                           
+        DU( 2)= Q*QX           +ALP3*XI/RD*SDSD                         
+        DU( 3)= ET*QX+XI*QY-TT -ALP3*AI4*SDSD                           
+        DU( 4)=-XI*Q2*Y32 -ALP3*AJ4*SDSD                                
+        DU( 5)=-Q2/R3     -ALP3*AJ5*SDSD                                
+        DU( 6)= Q*Q2*Y32  -ALP3*AJ6*SDSD                                
+        DU( 7)= Q*FY -ALP3*AJ1*SDSD                                     
+        DU( 8)= Q*GY -ALP3*AJ2*SDSD                                     
+        DU( 9)=-Q*HY -ALP3*AJ3*SDSD                                     
+        DU(10)= Q*FZ +ALP3*AK3*SDSD                                     
+        DU(11)= Q*GZ +ALP3*XI*D11*SDSD                                  
+        DU(12)=-Q*HZ +ALP3*AK4*SDSD                                     
+        DO 444 I=1,12                                                   
+  444   U(I)=U(I)+DISL3/PI2*DU(I)                                       
+      ENDIF                                                             
+      RETURN                                                            
+      END                                                               
+      SUBROUTINE  UC(XI,ET,Q,Z,DISL1,DISL2,DISL3,U)                     
+      IMPLICIT REAL*8 (A-H,O-Z)                                         
+      DIMENSION U(12),DU(12)                                            
+C                                                                       
+C********************************************************************   
+C*****    DISPLACEMENT AND STRAIN AT DEPTH (PART-C)             *****   
+C*****    DUE TO BURIED FINITE FAULT IN A SEMIINFINITE MEDIUM   *****   
+C********************************************************************   
+C                                                                       
+C***** INPUT                                                            
+C*****   XI,ET,Q,Z   : STATION COORDINATES IN FAULT SYSTEM              
+C*****   DISL1-DISL3 : STRIKE-, DIP-, TENSILE-DISLOCATIONS              
+C***** OUTPUT                                                           
+C*****   U(12) : DISPLACEMENT AND THEIR DERIVATIVES                     
+C                                                                       
+      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  
+      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  
+     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                
+      DATA F0,F1,F2,F3,PI2/0.D0,1.D0,2.D0,3.D0,6.283185307179586D0/     
+C-----                                                                  
+      C=D+Z                                                             
+      X53=(8.D0*R2+9.D0*R*XI+F3*XI2)*X11*X11*X11/R2                     
+      Y53=(8.D0*R2+9.D0*R*ET+F3*ET2)*Y11*Y11*Y11/R2                     
+      H=Q*CD-Z                                                          
+      Z32=SD/R3-H*Y32                                                   
+      Z53=F3*SD/R5-H*Y53                                                
+      Y0=Y11-XI2*Y32                                                    
+      Z0=Z32-XI2*Z53                                                    
+      PPY=CD/R3+Q*Y32*SD                                                
+      PPZ=SD/R3-Q*Y32*CD                                                
+      QQ=Z*Y32+Z32+Z0                                                   
+      QQY=F3*C*D/R5-QQ*SD                                               
+      QQZ=F3*C*Y/R5-QQ*CD+Q*Y32                                         
+      XY=XI*Y11                                                         
+      QX=Q*X11                                                          
+      QY=Q*Y11                                                          
+      QR=F3*Q/R5                                                        
+      CQX=C*Q*X53                                                       
+      CDR=(C+D)/R3                                                      
+      YY0=Y/R3-Y0*CD                                                    
+C=====                                                                  
+      DO 111  I=1,12                                                    
+  111 U(I)=F0                                                           
+C======================================                                 
+C=====  STRIKE-SLIP CONTRIBUTION  =====                                 
+C======================================                                 
+      IF(DISL1.NE.F0) THEN                                              
+        DU( 1)= ALP4*XY*CD           -ALP5*XI*Q*Z32                     
+        DU( 2)= ALP4*(CD/R+F2*QY*SD) -ALP5*C*Q/R3                       
+        DU( 3)= ALP4*QY*CD           -ALP5*(C*ET/R3-Z*Y11+XI2*Z32)      
+        DU( 4)= ALP4*Y0*CD                  -ALP5*Q*Z0                  
+        DU( 5)=-ALP4*XI*(CD/R3+F2*Q*Y32*SD) +ALP5*C*XI*QR               
+        DU( 6)=-ALP4*XI*Q*Y32*CD            +ALP5*XI*(F3*C*ET/R5-QQ)    
+        DU( 7)=-ALP4*XI*PPY*CD    -ALP5*XI*QQY                          
+        DU( 8)= ALP4*F2*(D/R3-Y0*SD)*SD-Y/R3*CD                         
+     *                            -ALP5*(CDR*SD-ET/R3-C*Y*QR)           
+        DU( 9)=-ALP4*Q/R3+YY0*SD  +ALP5*(CDR*CD+C*D*QR-(Y0*CD+Q*Z0)*SD) 
+        DU(10)= ALP4*XI*PPZ*CD    -ALP5*XI*QQZ                          
+        DU(11)= ALP4*F2*(Y/R3-Y0*CD)*SD+D/R3*CD -ALP5*(CDR*CD+C*D*QR)   
+        DU(12)=         YY0*CD    -ALP5*(CDR*SD-C*Y*QR-Y0*SDSD+Q*Z0*CD) 
+        DO 222 I=1,12                                                   
+  222   U(I)=U(I)+DISL1/PI2*DU(I)                                       
+      ENDIF                                                             
+C======================================                                 
+C=====    DIP-SLIP CONTRIBUTION   =====                                 
+C======================================                                 
+      IF(DISL2.NE.F0) THEN                                              
+        DU( 1)= ALP4*CD/R -QY*SD -ALP5*C*Q/R3                           
+        DU( 2)= ALP4*Y*X11       -ALP5*C*ET*Q*X32                       
+        DU( 3)=     -D*X11-XY*SD -ALP5*C*(X11-Q2*X32)                   
+        DU( 4)=-ALP4*XI/R3*CD +ALP5*C*XI*QR +XI*Q*Y32*SD                
+        DU( 5)=-ALP4*Y/R3     +ALP5*C*ET*QR                             
+        DU( 6)=    D/R3-Y0*SD +ALP5*C/R3*(F1-F3*Q2/R2)                  
+        DU( 7)=-ALP4*ET/R3+Y0*SDSD -ALP5*(CDR*SD-C*Y*QR)                
+        DU( 8)= ALP4*(X11-Y*Y*X32) -ALP5*C*((D+F2*Q*CD)*X32-Y*ET*Q*X53) 
+        DU( 9)=  XI*PPY*SD+Y*D*X32 +ALP5*C*((Y+F2*Q*SD)*X32-Y*Q2*X53)   
+        DU(10)=      -Q/R3+Y0*SDCD -ALP5*(CDR*CD+C*D*QR)                
+        DU(11)= ALP4*Y*D*X32       -ALP5*C*((Y-F2*Q*SD)*X32+D*ET*Q*X53) 
+        DU(12)=-XI*PPZ*SD+X11-D*D*X32-ALP5*C*((D-F2*Q*CD)*X32-D*Q2*X53) 
+        DO 333 I=1,12                                                   
+  333   U(I)=U(I)+DISL2/PI2*DU(I)                                       
+      ENDIF                                                             
+C========================================                               
+C=====  TENSILE-FAULT CONTRIBUTION  =====                               
+C========================================                               
+      IF(DISL3.NE.F0) THEN                                              
+        DU( 1)=-ALP4*(SD/R+QY*CD)   -ALP5*(Z*Y11-Q2*Z32)                
+        DU( 2)= ALP4*F2*XY*SD+D*X11 -ALP5*C*(X11-Q2*X32)                
+        DU( 3)= ALP4*(Y*X11+XY*CD)  +ALP5*Q*(C*ET*X32+XI*Z32)           
+        DU( 4)= ALP4*XI/R3*SD+XI*Q*Y32*CD+ALP5*XI*(F3*C*ET/R5-F2*Z32-Z0)
+        DU( 5)= ALP4*F2*Y0*SD-D/R3 +ALP5*C/R3*(F1-F3*Q2/R2)             
+        DU( 6)=-ALP4*YY0           -ALP5*(C*ET*QR-Q*Z0)                 
+        DU( 7)= ALP4*(Q/R3+Y0*SDCD)   +ALP5*(Z/R3*CD+C*D*QR-Q*Z0*SD)    
+        DU( 8)=-ALP4*F2*XI*PPY*SD-Y*D*X32                               
+     *                    +ALP5*C*((Y+F2*Q*SD)*X32-Y*Q2*X53)            
+        DU( 9)=-ALP4*(XI*PPY*CD-X11+Y*Y*X32)                            
+     *                    +ALP5*(C*((D+F2*Q*CD)*X32-Y*ET*Q*X53)+XI*QQY) 
+        DU(10)=  -ET/R3+Y0*CDCD -ALP5*(Z/R3*SD-C*Y*QR-Y0*SDSD+Q*Z0*CD)  
+        DU(11)= ALP4*F2*XI*PPZ*SD-X11+D*D*X32                           
+     *                    -ALP5*C*((D-F2*Q*CD)*X32-D*Q2*X53)            
+        DU(12)= ALP4*(XI*PPZ*CD+Y*D*X32)                                
+     *                    +ALP5*(C*((Y-F2*Q*SD)*X32+D*ET*Q*X53)+XI*QQZ) 
+        DO 444 I=1,12                                                   
+  444   U(I)=U(I)+DISL3/PI2*DU(I)                                       
+      ENDIF                                                             
+      RETURN                                                            
+      END                                                               
+      SUBROUTINE  DCCON0(ALPHA,DIP)                                     
+      IMPLICIT REAL*8 (A-H,O-Z)                                         
+C                                                                       
+C*******************************************************************    
+C*****   CALCULATE MEDIUM CONSTANTS AND FAULT-DIP CONSTANTS    *****    
+C*******************************************************************    
+C                                                                       
+C***** INPUT                                                            
+C*****   ALPHA : MEDIUM CONSTANT  (LAMBDA+MYU)/(LAMBDA+2*MYU)           
+C*****   DIP   : DIP-ANGLE (DEGREE)                                     
+C### CAUTION ### IF COS(DIP) IS SUFFICIENTLY SMALL, IT IS SET TO ZERO   
+C                                                                       
+      COMMON /C0/ALP1,ALP2,ALP3,ALP4,ALP5,SD,CD,SDSD,CDCD,SDCD,S2D,C2D  
+      DATA F0,F1,F2,PI2/0.D0,1.D0,2.D0,6.283185307179586D0/             
+      DATA EPS/1.D-6/                                                   
+C-----                                                                  
+      ALP1=(F1-ALPHA)/F2                                                
+      ALP2= ALPHA/F2                                                    
+      ALP3=(F1-ALPHA)/ALPHA                                             
+      ALP4= F1-ALPHA                                                    
+      ALP5= ALPHA                                                       
+C-----                                                                  
+      P18=PI2/360.D0                                                    
+      SD=DSIN(DIP*P18)                                                  
+      CD=DCOS(DIP*P18)                                                  
+      IF(DABS(CD).LT.EPS) THEN                                          
+        CD=F0                                                           
+        IF(SD.GT.F0) SD= F1                                             
+        IF(SD.LT.F0) SD=-F1                                             
+      ENDIF                                                             
+      SDSD=SD*SD                                                        
+      CDCD=CD*CD                                                        
+      SDCD=SD*CD                                                        
+      S2D=F2*SDCD                                                       
+      C2D=CDCD-SDSD                                                     
+      RETURN                                                            
+      END                                                               
+      SUBROUTINE  DCCON1(X,Y,D)                                         
+      IMPLICIT REAL*8 (A-H,O-Z)                                         
+C                                                                       
+C********************************************************************** 
+C*****   CALCULATE STATION GEOMETRY CONSTANTS FOR POINT SOURCE    ***** 
+C********************************************************************** 
+C                                                                       
+C***** INPUT                                                            
+C*****   X,Y,D : STATION COORDINATES IN FAULT SYSTEM                    
+C### CAUTION ### IF X,Y,D ARE SUFFICIENTLY SMALL, THEY ARE SET TO ZERO  
+C                                                                       
+      COMMON /C0/DUMMY(5),SD,CD,dumm(5)                                 
+      COMMON /C1/P,Q,S,T,XY,X2,Y2,D2,R,R2,R3,R5,QR,QRX,A3,A5,B3,C3,     
+     *           UY,VY,WY,UZ,VZ,WZ                                      
+      DATA  F0,F1,F3,F5,EPS/0.D0,1.D0,3.D0,5.D0,1.D-6/                  
+C-----                                                                  
+      IF(DABS(X).LT.EPS) X=F0                                           
+      IF(DABS(Y).LT.EPS) Y=F0                                           
+      IF(DABS(D).LT.EPS) D=F0                                           
+      P=Y*CD+D*SD                                                       
+      Q=Y*SD-D*CD                                                       
+      S=P*SD+Q*CD                                                       
+      T=P*CD-Q*SD                                                       
+      XY=X*Y                                                            
+      X2=X*X                                                            
+      Y2=Y*Y                                                            
+      D2=D*D                                                            
+      R2=X2+Y2+D2                                                       
+      R =DSQRT(R2)                                                      
+      IF(R.EQ.F0) RETURN                                                
+      R3=R *R2                                                          
+      R5=R3*R2                                                          
+      R7=R5*R2                                                          
+C-----                                                                  
+      A3=F1-F3*X2/R2                                                    
+      A5=F1-F5*X2/R2                                                    
+      B3=F1-F3*Y2/R2                                                    
+      C3=F1-F3*D2/R2                                                    
+C-----                                                                  
+      QR=F3*Q/R5                                                        
+      QRX=F5*QR*X/R2                                                    
+C-----                                                                  
+      UY=SD-F5*Y*Q/R2                                                   
+      UZ=CD+F5*D*Q/R2                                                   
+      VY=S -F5*Y*P*Q/R2                                                 
+      VZ=T +F5*D*P*Q/R2                                                 
+      WY=UY+SD                                                          
+      WZ=UZ+CD                                                          
+      RETURN                                                            
+      END                                                               
+      SUBROUTINE  DCCON2(XI,ET,Q,SD,CD,KXI,KET)                         
+      IMPLICIT REAL*8 (A-H,O-Z)                                         
+C                                                                       
+C********************************************************************** 
+C*****   CALCULATE STATION GEOMETRY CONSTANTS FOR FINITE SOURCE   ***** 
+C********************************************************************** 
+C                                                                       
+C***** INPUT                                                            
+C*****   XI,ET,Q : STATION COORDINATES IN FAULT SYSTEM                  
+C*****   SD,CD   : SIN, COS OF DIP-ANGLE                                
+C*****   KXI,KET : KXI=1, KET=1 MEANS R+XI<EPS, R+ET<EPS, RESPECTIVELY  
+C                                                                       
+C### CAUTION ### IF XI,ET,Q ARE SUFFICIENTLY SMALL, THEY ARE SET TO ZER0
+C                                                                       
+      COMMON /C2/XI2,ET2,Q2,R,R2,R3,R5,Y,D,TT,ALX,ALE,X11,Y11,X32,Y32,  
+     *           EY,EZ,FY,FZ,GY,GZ,HY,HZ                                
+      DATA  F0,F1,F2,EPS/0.D0,1.D0,2.D0,1.D-6/                          
+C-----                                                                  
+      IF(DABS(XI).LT.EPS) XI=F0                                         
+      IF(DABS(ET).LT.EPS) ET=F0                                         
+      IF(DABS( Q).LT.EPS)  Q=F0                                         
+      XI2=XI*XI                                                         
+      ET2=ET*ET                                                         
+      Q2=Q*Q                                                            
+      R2=XI2+ET2+Q2                                                     
+      R =DSQRT(R2)                                                      
+      IF(R.EQ.F0) RETURN                                                
+      R3=R *R2                                                          
+      R5=R3*R2                                                          
+      Y =ET*CD+Q*SD                                                     
+      D =ET*SD-Q*CD                                                     
+C-----                                                                  
+      IF(Q.EQ.F0) THEN                                                  
+        TT=F0                                                           
+      ELSE                                                              
+        TT=DATAN(XI*ET/(Q*R))                                           
+      ENDIF                                                             
+C-----                                                                  
+      IF(KXI.EQ.1) THEN                                                 
+        ALX=-DLOG(R-XI)                                                 
+        X11=F0                                                          
+        X32=F0                                                          
+      ELSE                                                              
+        RXI=R+XI                                                        
+        ALX=DLOG(RXI)                                                   
+        X11=F1/(R*RXI)                                                  
+        X32=(R+RXI)*X11*X11/R                                           
+      ENDIF                                                             
+C-----                                                                  
+      IF(KET.EQ.1) THEN                                                 
+        ALE=-DLOG(R-ET)                                                 
+        Y11=F0                                                          
+        Y32=F0                                                          
+      ELSE                                                              
+        RET=R+ET                                                        
+        ALE=DLOG(RET)                                                   
+        Y11=F1/(R*RET)                                                  
+        Y32=(R+RET)*Y11*Y11/R                                           
+      ENDIF                                                             
+C-----                                                                  
+      EY=SD/R-Y*Q/R3                                                    
+      EZ=CD/R+D*Q/R3                                                    
+      FY=D/R3+XI2*Y32*SD                                                
+      FZ=Y/R3+XI2*Y32*CD                                                
+      GY=F2*X11*SD-Y*Q*X32                                              
+      GZ=F2*X11*CD+D*Q*X32                                              
+      HY=D*Q*X32+XI*Q*Y32*SD                                            
+      HZ=Y*Q*X32+XI*Q*Y32*CD                                            
+      RETURN                                                            
+      END                                                               



More information about the CIG-COMMITS mailing list