rotne0.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\rotne0.f
00002 !
00057                      SUBROUTINE ROTNE0
00058 !                    *****************
00059 !
00060      &(MESH,M1,A11,A12,A21,A22,SMU,SMV,UN,VN,H0,MSK,MASKEL,S,DT)
00061 !
00062 !***********************************************************************
00063 ! TELEMAC2D   V6P1                                   21/08/2010
00064 !***********************************************************************
00065 !
00066 !
00067 !
00068 !
00069 !
00070 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00071 !| A11            |<--| MATRIX WHICH MULTIPLIES U IN THE EQUATION FOR U
00072 !| A12            |<--| MATRIX WHICH MULTIPLIES V IN THE EQUATION FOR U
00073 !| A21            |<--| MATRIX WHICH MULTIPLIES U IN THE EQUATION FOR V
00074 !| A22            |<--| MATRIX WHICH MULTIPLIES V IN THE EQUATION FOR V
00075 !| H0             |-->| REFERENCE DEPTH
00076 !| M1             |<->| WORK MATRIX
00077 !| MASKEL         |-->| MASKING OF ELEMENTS
00078 !|                |   | =1. : NORMAL   =0. : MASKED ELEMENT
00079 !| MESH           |-->| MESH STRUCTURE
00080 !| MSK            |-->| IF YES, THERE IS MASKED ELEMENTS
00081 !| S              |-->| VOID STRUCTURE
00082 !| SMU            |<--| SECOND MEMBER IN THE EQUATION FOR U
00083 !| SMV            |<--| SECOND MEMBER IN THE EQUATION FOR V
00084 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00085 !
00086       USE BIEF
00087 !
00088       IMPLICIT NONE
00089       INTEGER LNG,LU
00090       COMMON/INFO/LNG,LU
00091 !
00092 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00093 !
00094       LOGICAL, INTENT(IN) :: MSK
00095       DOUBLE PRECISION, INTENT(IN)   :: DT
00096       TYPE(BIEF_OBJ), INTENT(IN)     :: MASKEL,H0,S,UN,VN
00097       TYPE(BIEF_OBJ), INTENT(INOUT)  :: SMU,SMV
00098       TYPE(BIEF_OBJ), INTENT(INOUT)  :: A11,A12,A21,A22,M1
00099       TYPE(BIEF_MESH), INTENT(INOUT) :: MESH
00100 !
00101 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00102 !
00103       INTEGER IELMU
00104 !
00105       DOUBLE PRECISION SL11,C,SURDT
00106 !
00107       CHARACTER(LEN=16) FORMUL
00108 !
00109 !-----------------------------------------------------------------------
00110 !
00111       IELMU=UN%ELM
00112 !
00113 !------------------------------------------------------------------
00114 !
00115       SURDT = 1.D0 / DT
00116 !
00117 !     MATRIX FOR U IN THE EQUATION FOR U (INITIALLY STORED IN M1)
00118 !
00119       FORMUL='FFBT        0XX0'
00120       SL11 = SURDT / 6.D0
00121       CALL MATRIX(M1,'M=N     ',FORMUL,IELMU,IELMU,
00122      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00123 !
00124       FORMUL='FFBT        XX00'
00125       SL11 = SURDT / 2.D0
00126       CALL MATRIX(M1,'M=M+N   ',FORMUL,IELMU,IELMU,
00127      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00128 !
00129 !     FORMUL='FFBT        0X0X'
00130       FORMUL='FFBT        0XX0'
00131       SL11 = SURDT / 2.D0
00132       CALL MATRIX(M1,'M=M+TN  ',FORMUL,IELMU,IELMU,
00133      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00134 !
00135       FORMUL='FFBT        00XX'
00136       SL11 = SURDT / 3.D0
00137       CALL MATRIX(M1,'M=M+N   ',FORMUL,IELMU,IELMU,
00138      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00139 !
00140 !     ADDITION TO A11 MATRIX
00141 !
00142       IF(A11%TYPEXT.EQ.'S') CALL OM( 'M=X(M)  ' ,A11,A11,S,C,MESH)
00143       CALL OM( 'M=M+N   ' , A11 , M1 , S , C , MESH )
00144 !
00145 !     SECOND MEMBER SMU
00146 !
00147       CALL MATVEC( 'X=X+AY  ',SMU,M1,UN,C,MESH)
00148 !
00149 !------------------------------------------------------------------
00150 !
00151 !     MATRIX FOR V IN THE EQUATION FOR U (INITIALLY STORED IN M1)
00152 !
00153       FORMUL='FFBT        0Y0X'
00154       SL11 = SURDT / 2.D0
00155       CALL MATRIX(M1,'M=N     ',FORMUL,IELMU,IELMU,
00156      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00157 !
00158       FORMUL='FFBT        XY00'
00159       SL11 = SURDT / 2.D0
00160       CALL MATRIX(M1,'M=M+N   ',FORMUL,IELMU,IELMU,
00161      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00162 !
00163       FORMUL='FFBT        00XY'
00164       SL11 = SURDT / 3.D0
00165       CALL MATRIX(M1,'M=M+TN  ',FORMUL,IELMU,IELMU,
00166      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00167 !
00168       FORMUL='FFBT        0X0Y'
00169       SL11 = SURDT / 6.D0
00170       CALL MATRIX(M1,'M=M+TN  ',FORMUL,IELMU,IELMU,
00171      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00172 !
00173       CALL OM( 'M=N     ' , A12 , M1 , S , C , MESH )
00174 !
00175 !     SECOND MEMBER SMU
00176 !
00177       CALL MATVEC( 'X=X+AY  ',SMU,M1,VN,C,MESH)
00178 !
00179 !------------------------------------------------------------------
00180 !
00181 !     MATRIX FOR V IN THE EQUATION FOR V (INITIALLY STORED IN M1)
00182 !
00183       FORMUL='FFBT        0YY0'
00184       SL11 = SURDT / 6.D0
00185       CALL MATRIX(M1,'M=N     ',FORMUL,IELMU,IELMU,
00186      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00187 !
00188       FORMUL='FFBT        YY00'
00189       SL11 = SURDT / 2.D0
00190       CALL MATRIX(M1,'M=M+N   ',FORMUL,IELMU,IELMU,
00191      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00192 !
00193       FORMUL='FFBT        0YY0'
00194       SL11 = SURDT / 2.D0
00195       CALL MATRIX(M1,'M=M+TN  ',FORMUL,IELMU,IELMU,
00196      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00197 !
00198       FORMUL='FFBT        00YY'
00199       SL11 = SURDT / 3.D0
00200       CALL MATRIX(M1,'M=M+N   ',FORMUL,IELMU,IELMU,
00201      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00202 !
00203 !     ADDITION TO A22 MATRIX
00204 !
00205       IF(A22%TYPEXT.EQ.'S') CALL OM( 'M=X(M)  ' ,A22,A22,S,C,MESH)
00206       CALL OM( 'M=M+N   ' , A22 , M1 , S , C , MESH )
00207 !
00208 !     SECOND MEMBER SMV
00209 !
00210       CALL MATVEC( 'X=X+AY  ',SMV,M1,VN,C,MESH)
00211 !
00212 !------------------------------------------------------------------
00213 !
00214 !     MATRIX FOR U IN THE EQUATION FOR V (INITIALLY STORED IN M1)
00215 !
00216       FORMUL='FFBT        0X0Y'
00217       SL11 = SURDT / 2.D0
00218       CALL MATRIX(M1,'M=N     ',FORMUL,IELMU,IELMU,
00219      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00220 !
00221       FORMUL='FFBT        00XY'
00222       SL11 = SURDT / 3.D0
00223       CALL MATRIX(M1,'M=M+N   ',FORMUL,IELMU,IELMU,
00224      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00225 !
00226       FORMUL='FFBT        XY00'
00227       SL11 = SURDT / 2.D0
00228       CALL MATRIX(M1,'M=M+N   ',FORMUL,IELMU,IELMU,
00229      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00230 !
00231       FORMUL='FFBT        0Y0X'
00232       SL11 = SURDT / 6.D0
00233       CALL MATRIX(M1,'M=M+TN  ',FORMUL,IELMU,IELMU,
00234      &            SL11,H0,S,S,S,S,S,MESH,MSK,MASKEL)
00235 !
00236       CALL OM( 'M=N     ' , A21 , M1 , S , C , MESH )
00237 !
00238 !     SECOND MEMBER SMV
00239 !
00240       CALL MATVEC( 'X=X+AY  ',SMV,M1,UN,C,MESH)
00241 !
00242 !------------------------------------------------------------------
00243 !
00244       RETURN
00245       END

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