goup1.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\goup1.f
00002 !
00091                      SUBROUTINE GOUP1
00092 !                    ****************
00093 !
00094      &(X, A,B ,DITR,MESH,COPY)
00095 !
00096 !***********************************************************************
00097 ! BIEF   V6P1                                   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_GOUP1 => GOUP1
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
00125       TYPE(BIEF_OBJ), INTENT(IN) :: A
00126       TYPE(BIEF_MESH), INTENT(IN)   :: MESH
00127       CHARACTER(LEN=1), INTENT(IN)  :: DITR
00128       LOGICAL, INTENT(IN) :: COPY
00129 !
00130 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00131 !
00132       INTEGER IELM,NPOIN,NELEM,NELMAX
00133 !
00134       CHARACTER*1 TYPX
00135 !
00136 !-----------------------------------------------------------------------
00137 !
00138       TYPX  = A%TYPEXT
00139       NPOIN = A%D%DIM1
00140       IELM  = A%ELMLIN
00141       NELEM = MESH%NELEM
00142       NELMAX= MESH%NELMAX
00143       CALL CPSTVC(B,X)
00144 !
00145 !-----------------------------------------------------------------------
00146 !
00147 ! 1) DESCENT WITH COPY OF B IN X
00148 !
00149       IF(A%STO.EQ.1) THEN
00150         CALL REMONT(X%R, A%X%R,TYPX,
00151      &       B%R,MESH%IKLE%I,NELEM,NELMAX,NPOIN,IELM,DITR,COPY,MESH%LV)
00152       ELSEIF(A%STO.EQ.3) THEN
00153         CALL REMSEG(X%R, A%X%R,TYPX,
00154      &       B%R,MESH%GLOSEG%I,MESH%NSEG,NPOIN,DITR,COPY)
00155       ELSE
00156         WRITE(LU,*) 'GOUP1, CASE NOT IMPLEMENTED'
00157         CALL PLANTE(1)
00158         STOP
00159       ENDIF
00160 !
00161 !-----------------------------------------------------------------------
00162 !
00163       RETURN
00164       END

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