lump.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\lump.f
00002 !
00063                      SUBROUTINE LUMP
00064 !                    ***************
00065 !
00066      &(DIAG,A,MESH,XMUL)
00067 !
00068 !***********************************************************************
00069 ! BIEF   V6P1                                   21/08/2010
00070 !***********************************************************************
00071 !
00072 !
00073 !
00074 !
00075 !
00076 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00077 !| A              |-->| MATRIX
00078 !| DIAG           |<--| RESULTING VECTOR
00079 !| MESH           |-->| MESH STRUCTURE
00080 !| XMUL           |-->| COEFFICIENT FOR MULTIPLICATION
00081 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00082 !
00083       USE BIEF, EX_LUMP => LUMP
00084 !
00085       IMPLICIT NONE
00086       INTEGER LNG,LU
00087       COMMON/INFO/LNG,LU
00088 !
00089 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00090 !
00091       DOUBLE PRECISION, INTENT(IN)   :: XMUL
00092       TYPE(BIEF_OBJ), INTENT(IN)     :: A
00093       TYPE(BIEF_OBJ), INTENT(INOUT)  :: DIAG
00094       TYPE(BIEF_MESH), INTENT(INOUT) :: MESH
00095 !
00096 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00097 !
00098       DOUBLE PRECISION C
00099 !
00100 !-----------------------------------------------------------------------
00101 !
00102       IF(A%ELMLIN.NE.A%ELMCOL) THEN
00103         IF (LNG.EQ.1) WRITE(LU,50)
00104         IF (LNG.EQ.2) WRITE(LU,51)
00105 50      FORMAT(1X,'LUMP (BIEF) : A N''EST PAS UNE MATRICE CARREE')
00106 51      FORMAT(1X,'LUMP (BIEF) : A IS NOT A SQUARE MATRIX')
00107         CALL PLANTE(1)
00108         STOP
00109       ENDIF
00110 !
00111 !-----------------------------------------------------------------------
00112 !
00113       CALL CPSTVC(A%D,DIAG)
00114 !
00115 !-----------------------------------------------------------------------
00116 !
00117 !  BUILDS A VECTOR THAT IS XMUL EVERYWHERE
00118 !
00119       CALL OS( 'X=C     ', X=DIAG , C=XMUL )
00120 !
00121 !  DIAG IS THE PRODUCT OF A BY THIS VECTOR
00122 !  DIAG HERE PLAYS THE ROLE OF X AND Y (CAN BE DONE)
00123 !
00124       CALL MATVEC('X=AY    ',DIAG,A,DIAG,C,MESH,.TRUE.)
00125 !
00126 !-----------------------------------------------------------------------
00127 !
00128       RETURN
00129       END

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