zeropsi.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\zeropsi.f
00002 !
00046                      SUBROUTINE ZEROPSI
00047 !                    ******************
00048 !
00049      &(X0,X,NIT,CA1,A2)
00050 !
00051 !***********************************************************************
00052 ! TELEMAC2D   V6P1                                   21/08/2010
00053 !***********************************************************************
00054 !
00055 !
00056 !
00057 !
00058 !
00059 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00060 !| A2             |-->| SECOND TERM
00061 !| CA1            |-->| INTERMEDIATE ?
00062 !| NIT            |<--| NUMBER OF ITERATIONS
00063 !| X              |<--| FINAL X
00064 !| X0             |-->| INITIAL GUESS
00065 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00066 !
00067       IMPLICIT NONE
00068       INTEGER LNG,LU
00069       COMMON/INFO/LNG,LU
00070 !
00071 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00072 !
00073       INTEGER, INTENT(INOUT)          :: NIT
00074       DOUBLE PRECISION, INTENT(IN)    :: X0,A2,CA1
00075       DOUBLE PRECISION, INTENT(INOUT) :: X
00076 !
00077 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00078 !
00079       INTEGER NITEPS
00080 !
00081       DOUBLE PRECISION EPS,EPSX,SQ32,SQ3I
00082       DOUBLE PRECISION AMPLUS,AMMOINS,PHI1,PHI,DPHIPH3,CAPHI,FDF
00083 !
00084 !-----------------------------------------------------------------------
00085 !
00086       SQ32=SQRT(1.5D0)
00087       SQ3I=1.D0/SQRT(3.D0)
00088       EPS=1.E-12
00089       EPSX=1.E-12
00090       NIT=0
00091       NITEPS=0
00092       X=X0
00093 !
00094 1     NIT=NIT+1
00095 !
00096       IF(X.LE.-SQ32) THEN
00097       X= -SQ32 + EPSX
00098       NITEPS= NITEPS +1
00099       ENDIF
00100       IF(NITEPS.EQ.3) THEN
00101       X= -SQ32
00102       GOTO 10
00103       ENDIF
00104 !
00105       AMPLUS=MAX(-X,+SQ32)
00106       AMMOINS=MAX(-X,-SQ32)
00107 !
00108       PHI1=0.5D0*(AMPLUS+AMMOINS+2.*X)
00109       PHI = PHI1*SQ3I*(AMPLUS-AMMOINS)
00110       DPHIPH3 = 1.D0/(3.D0*PHI1)
00111 !
00112       CAPHI = CA1* PHI**(1.D0/3.D0)
00113       FDF= (X - 2.D0 - A2 *CAPHI)/(1.D0- DPHIPH3*(X-2.D0))
00114 !
00115       IF(ABS(FDF).LT.EPS) GOTO 10
00116       IF(NIT.EQ.20) GOTO 10
00117 !
00118       X=X-FDF
00119       GOTO 1
00120 !
00121 10    CONTINUE
00122 !
00123 !-----------------------------------------------------------------------
00124 !
00125       RETURN
00126       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0