prebdt.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\prebdt.f
00002 !
00067                      SUBROUTINE PREBDT
00068 !                    *****************
00069 !
00070      &(X,A,B,D,MESH,PREXSM,DIADON,S)
00071 !
00072 !***********************************************************************
00073 ! BIEF   V6P1                                   21/08/2010
00074 !***********************************************************************
00075 !
00076 !
00077 !
00078 !
00079 !
00080 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00081 !| A              |-->| BLOCK OF MATRICES
00082 !| B              |-->| BLOCK OF RIGHT-HAND SIZES
00083 !| D              |<--| BLOCK OF DIAGONALS
00084 !| DIADON         |-->| .TRUE. : DIAGONALS ARE GIVEN
00085 !| MESH           |-->| MESH STRUCTURE
00086 !| PREXSM         |-->| .TRUE. : PRECONDITIONING X1,X2 AND B1,B2
00087 !| S              |-->| 0 : A NORMAL SYSTEM       (FORBIDDEN HERE)
00088 !|                |   | 1 : BLOCK OF ONE MATRIX   (FORBIDDEN HERE)
00089 !|                |   | 2 : BLOCK OF 4 MATRICES
00090 !|                |   | 3 : BLOCK OF 9 MATRICES
00091 !| X              |<->| BLOCK OF UNKNOWN VECTORS
00092 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00093 !
00094       USE BIEF, EX_PREBDT => PREBDT
00095 !
00096       IMPLICIT NONE
00097       INTEGER LNG,LU
00098       COMMON/INFO/LNG,LU
00099 !
00100 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00101 !
00102       INTEGER, INTENT(IN) :: S
00103 !
00104       LOGICAL, INTENT(IN) :: PREXSM,DIADON
00105 !
00106 !-----------------------------------------------------------------------
00107 !
00108 !  VECTOR OR VECTOR BLOCK STRUCTURES
00109 !
00110       TYPE(BIEF_OBJ), INTENT(INOUT) :: X,B,D
00111 !
00112 !-----------------------------------------------------------------------
00113 !
00114 !  MATRIX OR MATRIX BLOCK STRUCTURES
00115 !
00116       TYPE(BIEF_OBJ), INTENT(INOUT) :: A
00117 !
00118 !-----------------------------------------------------------------------
00119 !
00120 !  MESH STRUCTURE
00121 !
00122       TYPE(BIEF_MESH), INTENT(INOUT) :: MESH
00123 !
00124 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00125 !
00126 !  4-MATRIX BLOCK:
00127 !
00128       IF(S.EQ.2) THEN
00129 !
00130 !  4-MATRIX BLOCK:
00131 !
00132         CALL PREBD4(X%ADR(1)%P,X%ADR(2)%P,
00133      &              A%ADR(1)%P,A%ADR(2)%P,A%ADR(3)%P,A%ADR(4)%P,
00134      &              B%ADR(1)%P,B%ADR(2)%P,
00135      &              D%ADR(1)%P,D%ADR(2)%P,D%ADR(3)%P,D%ADR(4)%P,
00136      &              MESH,PREXSM,DIADON)
00137 !
00138       ELSEIF(S.EQ.3) THEN
00139 !
00140 !  9-MATRIX BLOCK:
00141 !
00142         CALL PREBD9(X%ADR(1)%P,X%ADR(2)%P,X%ADR(3)%P,
00143      &              A%ADR(1)%P,A%ADR(2)%P,A%ADR(3)%P,
00144      &              A%ADR(4)%P,A%ADR(5)%P,A%ADR(6)%P,
00145      &              A%ADR(7)%P,A%ADR(8)%P,A%ADR(9)%P,
00146      &              B%ADR(1)%P,B%ADR(2)%P,B%ADR(3)%P,
00147      &              D%ADR(1)%P,D%ADR(2)%P,D%ADR(3)%P,
00148      &              D%ADR(4)%P,D%ADR(5)%P,D%ADR(6)%P,
00149      &              D%ADR(7)%P,D%ADR(8)%P,D%ADR(9)%P,
00150      &              MESH,PREXSM,DIADON)
00151 !
00152       ELSE
00153 !
00154 !-----------------------------------------------------------------------
00155 !
00156 !  ERROR
00157 !
00158         IF(LNG.EQ.1) WRITE(LU,100) S
00159         IF(LNG.EQ.2) WRITE(LU,200) S
00160 100     FORMAT(1X,'PREBDT (BIEF) : S NON PREVU :',1I6)
00161 200     FORMAT(1X,'PREBDT (BIEF) : UNEXPECTED S :',1I6)
00162         CALL PLANTE(1)
00163         STOP
00164 !
00165       ENDIF
00166 !
00167 !-----------------------------------------------------------------------
00168 !                                                            -1
00169       RETURN
00170       END

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