godwn1.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\godwn1.f
00002 !
00091                      SUBROUTINE GODWN1
00092 !                    *****************
00093 !
00094      &(X, A,B ,DITR,MESH,COPY)
00095 !
00096 !***********************************************************************
00097 ! BIEF   V6P0                                   21/08/2010
00098 !***********************************************************************
00099 !
00100 !
00101 !
00102 !
00103 !
00104 !
00105 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00106 !| A              |-->| MATRIX A IN LDU FORM
00107 !| B              |<--| RIGHT-HAND SIDE OF THE SYSTEM
00108 !| COPY           |-->| IF YES. B IS FIRST COPIED ON X.
00109 !| DITR           |-->| OPTION  'D' : MATRIX A IS TAKEN
00110 !|                |   |         'T' : MATRIX TRANSPOSED(A)
00111 !| MESH           |-->| MESH STRUCTURE
00112 !| X              |<--| SOLUTION OF SYSTEM AX = B
00113 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00114 !
00115       USE BIEF, EX_GODWN1 => GODWN1
00116 !
00117       IMPLICIT NONE
00118       INTEGER LNG,LU
00119       COMMON/INFO/LNG,LU
00120 !
00121 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00122 !
00123       TYPE(BIEF_OBJ), INTENT(INOUT) :: X
00124       TYPE(BIEF_OBJ), INTENT(IN)    :: B,A
00125       TYPE(BIEF_MESH), INTENT(IN)   :: MESH
00126       CHARACTER(LEN=1), INTENT(IN)  :: DITR
00127       LOGICAL, INTENT(IN) :: COPY
00128 !
00129 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00130 !
00131       INTEGER IELM,NPOIN,NELEM,NELMAX
00132 !
00133       CHARACTER*1 TYPX
00134 !
00135 !-----------------------------------------------------------------------
00136 !
00137       TYPX = A%TYPEXT
00138       NPOIN = A%D%DIM1
00139       IELM =A%ELMLIN
00140       NELEM = MESH%NELEM
00141       NELMAX= MESH%NELMAX
00142       CALL CPSTVC(B,X)
00143 !
00144 !-----------------------------------------------------------------------
00145 !
00146 ! 1) DESCENT WITH COPY OF B IN X
00147 !
00148       IF(A%STO.EQ.1) THEN
00149         CALL DESCEN(X%R, A%X%R,TYPX,
00150      &       B%R,MESH%IKLE%I,NELEM,NELMAX,NPOIN,IELM,DITR,COPY,MESH%LV)
00151       ELSEIF(A%STO.EQ.3) THEN
00152         CALL DESSEG(X%R, A%X%R,TYPX,
00153      &       B%R,MESH%GLOSEG%I,MESH%NSEG,NPOIN,DITR,COPY)
00154       ELSE
00155         WRITE(LU,*) 'GODWN1, CASE NOT IMPLEMENTED'
00156         CALL PLANTE(1)
00157         STOP
00158       ENDIF
00159 !
00160 !-----------------------------------------------------------------------
00161 !
00162       RETURN
00163       END

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