decldu.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\decldu.f
00002 !
00100                      SUBROUTINE DECLDU
00101 !                    *****************
00102 !
00103      &(B,A,MESH,COPY,LV)
00104 !
00105 !***********************************************************************
00106 ! BIEF   V6P1                                   21/08/2010
00107 !***********************************************************************
00108 !
00109 !
00110 !
00111 !
00112 !
00113 !
00114 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00115 !| A              |<--| MATRIX A.
00116 !| B              |<--| MATRICE B, THE RESULT.
00117 !| COPY           |-->| IF .TRUE. A IS COPIED INTO B.
00118 !|                |   | IF .FALSE. B IS CONSIDERED ALREADY INITIALISED
00119 !| LV             |-->| VECTOR LENGTH OF THE COMPUTER
00120 !| MESH           |-->| MESH STRUCTURE
00121 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00122 !
00123       USE BIEF, EX_DECLDU => DECLDU
00124 !
00125       IMPLICIT NONE
00126       INTEGER LNG,LU
00127       COMMON/INFO/LNG,LU
00128 !
00129 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00130 !
00131       TYPE(BIEF_OBJ) , INTENT(INOUT) :: B
00132       TYPE(BIEF_OBJ) , INTENT(IN)    :: A
00133       TYPE(BIEF_MESH), INTENT(INOUT) :: MESH
00134       LOGICAL        , INTENT(IN)    :: COPY
00135       INTEGER        , INTENT(IN)    :: LV
00136 !
00137 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00138 !
00139       INTEGER NELMAX,IELM,NPOIN,NELEM
00140 !
00141       CHARACTER*1 TYPDA,TYPEA
00142 !
00143 !-----------------------------------------------------------------------
00144 !
00145       IELM   = A%ELMLIN
00146       NELEM  = MESH%NELEM
00147       NELMAX = MESH%NELMAX
00148 !
00149       TYPDA = A%TYPDIA
00150       TYPEA = A%TYPEXT
00151 !
00152       NPOIN = A%D%DIM1
00153 !
00154 !-----------------------------------------------------------------------
00155 !
00156       IF(A%STO.EQ.1) THEN
00157 !
00158       IF(IELM.EQ.11) THEN
00159 !
00160         CALL DLDU11(B%D%R,B%X%R,TYPDA,A%X%R,TYPEA,
00161      &              MESH%IKLE%I,NELEM,NELMAX,NPOIN,MESH%W%R,COPY,LV)
00162 !
00163       ELSEIF(IELM.EQ.21.OR.IELM.EQ.12.OR.IELM.EQ.31.OR.IELM.EQ.51) THEN
00164 !
00165         CALL DLDU21(B%D%R,B%X%R,TYPDA,A%X%R,TYPEA,
00166      &              MESH%IKLE%I,NELEM,NELMAX,NPOIN,MESH%W%R,COPY,LV)
00167 !
00168       ELSEIF(IELM.EQ.41) THEN
00169 !
00170         CALL DLDU41(B%D%R,B%X%R,TYPDA,A%X%R,TYPEA,
00171      &              MESH%IKLE%I,NELEM,NELMAX,NPOIN,MESH%W%R,COPY,LV)
00172 !
00173 !  IELM NOT IMPLEMENTED: ERROR
00174 !
00175       ELSE
00176         IF (LNG.EQ.1) WRITE(LU,100) IELM
00177         IF (LNG.EQ.2) WRITE(LU,101) IELM
00178 100   FORMAT(1X,'DECLDU (BIEF) : IELM = ',1I6,' ELEMENT NON PREVU')
00179 101   FORMAT(1X,'DECLDU (BIEF) : IELM = ',1I6,' ELEMENT NOT AVAILABLE')
00180         CALL PLANTE(1)
00181         STOP
00182       ENDIF
00183 !
00184       ELSEIF(A%STO.EQ.3) THEN
00185         CALL DLDUSEG(B%D%R,B%X%R,TYPDA,A%X%R,TYPEA,
00186      &               MESH%GLOSEG%I,MESH%NSEG,NPOIN,COPY)
00187       ELSE
00188         WRITE(LU,*) 'UNKNOWN MATRIX STORAGE IN DECLDU'
00189         CALL PLANTE(1)
00190         STOP
00191       ENDIF
00192 !
00193 !-----------------------------------------------------------------------
00194 !
00195 !  DESCRIPTION OF B
00196 !
00197       B%TYPDIA='Q'
00198       B%TYPEXT=TYPEA
00199 !
00200 !-----------------------------------------------------------------------
00201 !
00202       RETURN
00203       END

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