declarations_telemac.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\declarations_telemac.f
00002 !
00027                      MODULE DECLARATIONS_TELEMAC
00028 !                    ***************************
00029 !
00030 !
00031 !***********************************************************************
00032 ! BIEF
00033 !***********************************************************************
00034 !
00035 !
00036 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00037 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00038 !
00039       IMPLICIT NONE
00040 !----------------------------------------------------------------------
00041 !
00042 ! 1./ INTEGER VALUES TO DESCRIBE BOUNDARY CONDITIONS:
00043 !
00044 !
00045 !     FOR THE BOUNDARY CONDITIONS FILE:
00046 !
00047 !     ENTRANCE: PRESCRIBED VALUES (SAVE VELOCITIES)
00048       INTEGER, PARAMETER :: KENT  =  5
00049 !
00050 !     VELOCITY IMPOSED (INSTEAD OF DISCHARGE)
00051       INTEGER, PARAMETER :: KENTU =  6
00052 !
00053 !     FREE OUTPUT
00054       INTEGER, PARAMETER :: KSORT =  4
00055 !
00056 !     NO-SLIP CONDITION
00057       INTEGER, PARAMETER :: KADH  =  0
00058 !
00059 !     WALL WITH OR WITHOUT FRICTION
00060       INTEGER, PARAMETER :: KLOG  =  2
00061 !
00062 !     OPEN BOUNDARY WITH INCIDENT WAVE
00063       INTEGER, PARAMETER :: KINC  =  1
00064 !
00065 !     ESTEL-2D : FREE DRAINAGE
00066       INTEGER, PARAMETER :: KDRAIN  =  3
00067 !
00068 !     ESTEL-2D : MIXED CONDITION
00069       INTEGER, PARAMETER :: KMIX  =  4
00070 !
00071 !     DEPENDING ON ALGORITHMS AND CASES, THESE VALUES WILL BE
00072 !     TRANSFORMED INTO:
00073 !
00074 !     TECHNICAL BOUNDARY CONDITIONS
00075 !
00076 !     NEUMANN
00077       INTEGER, PARAMETER :: KNEU  =  1
00078 !
00079 !     DIRICHLET
00080       INTEGER, PARAMETER :: KDIR  =  2
00081 !
00082 !     DEGREE OF FREEDOM
00083       INTEGER, PARAMETER :: KDDL  =  3
00084 !
00085 !     INCIDENT WAVE
00086       INTEGER, PARAMETER :: KOND  =  4
00087 !
00088 !----------------------------------------------------------------------
00089 !
00090 ! 2./ INTEGER VALUES TO DESCRIBE ADVECTION SCHEMES:
00091 !
00092 !     CHARACTERISTICS
00093       INTEGER, PARAMETER :: ADV_CAR     =  1
00094 !     SUPG
00095       INTEGER, PARAMETER :: ADV_SUP     =  2
00096 !     LEO POSTMA
00097       INTEGER, PARAMETER :: ADV_LPO     =  3
00098 !     DISTRIBUTIVE N-SCHEME
00099       INTEGER, PARAMETER :: ADV_NSC     =  4
00100 !     DISTRIBUTIVE PSI SCHEME
00101       INTEGER, PARAMETER :: ADV_PSI     =  5
00102 !     NON CONSERVATIVE EQUATION, DISTRIBUTIVE PSI SCHEME
00103       INTEGER, PARAMETER :: ADV_PSI_NC  =  6
00104 !     NON CONSERVATIVE EQUATION, DISTRIBUTIVE N SCHEME
00105       INTEGER, PARAMETER :: ADV_NSC_NC  =  7
00106 !     LEO POSTMA, EDGE-BASED FOR TIDAL FLATS
00107       INTEGER, PARAMETER :: ADV_LPO_TF  = 13
00108 !     DISTRIBUTIVE N SCHEME, EDGE-BASED FOR TIDAL FLATS
00109       INTEGER, PARAMETER :: ADV_NSC_TF  = 14
00110 !     DISTRIBUTIVE PSI SCHEME, EDGE-BASED FOR TIDAL FLATS
00111       INTEGER, PARAMETER :: ADV_PSI_TF  = 15
00112 !
00113 !-----------------------------------------------------------------------
00114 !
00115 ! 3./ CODE COUPLING
00116 !
00117       CHARACTER(LEN=144) :: COUPLING
00118 !
00119 ! 4./ NAME OF CURRENT CODE (SEE BIEF_OPEN_FILES AND CONFIG_CODE)
00120 !
00121       CHARACTER(LEN=24) :: NAMECODE,NNAMECODE(3)
00122 !
00123 ! 5./ DIFFERENT WAYS OF SPLITTING PRISMS :
00124 !
00125 !     TO ENSURE MATCHING OF TETRAHEDRONS, FACES OF TRIANGLES ARE "SIGNED"
00126 !     WITH 1 OR 2 DEPENDING OF THE GLOBAL NUMBERS OF THEIR POINTS, TAKEN IN
00127 !     COUNTER-CLOCKWISE DIRECTION. A FACE 1 IN A TRIANGLE WILL BE 2 IN ITS
00128 !     NEIGHBOUR AND THIS IS USED TO HAVE A CORRECT SPLITTING. THE SPLITTING
00129 !     DEPENDING ON THE "SIGNS" OF THE 3 FACES IS GIVEN IN ARRAY TETRA.
00130 !
00131 !
00132 !     TETRA(2,2,2,3,4)
00133 !
00134 !     FIRST 3 DIMENSIONS : TYPE OF FACE
00135 !                      1 : CUT RECTANGLE BETWEEN  LOW-LEFT AND HIGH-RIGHT
00136 !                      2 : CUT RECTANGLE BETWEEN  HIGH-LEFT AND LOW-RIGHT
00137 !
00138 !     4TH DIMENSION : NUMBER OF TETRAHEDRON
00139 !     5TH DIMENSION : 4 POINTS OF THE TETRAHEDRON (IN LOCAL PRISM NUMBERING)
00140 !
00141 !     1 1 2 SPLITTING
00142 !
00143 !     TETRA(1,1,2,1,1)= 1
00144 !     TETRA(1,1,2,1,2)= 2
00145 !     TETRA(1,1,2,1,3)= 3
00146 !     TETRA(1,1,2,1,4)= 6
00147 !
00148 !     TETRA(1,1,2,2,1)= 4
00149 !     TETRA(1,1,2,2,2)= 6
00150 !     TETRA(1,1,2,2,3)= 5
00151 !     TETRA(1,1,2,2,4)= 1
00152 !
00153 !     TETRA(1,1,2,3,1)= 5
00154 !     TETRA(1,1,2,3,2)= 2
00155 !     TETRA(1,1,2,3,3)= 1
00156 !     TETRA(1,1,2,3,4)= 6
00157 !
00158 !     2 1 1 SPLITTING
00159 !
00160 !     TETRA(2,1,1,1,1)= 1
00161 !     TETRA(2,1,1,1,2)= 2
00162 !     TETRA(2,1,1,1,3)= 3
00163 !     TETRA(2,1,1,1,4)= 4
00164 !
00165 !     TETRA(2,1,1,2,1)= 4
00166 !     TETRA(2,1,1,2,2)= 6
00167 !     TETRA(2,1,1,2,3)= 5
00168 !     TETRA(2,1,1,2,4)= 2
00169 !
00170 !     TETRA(2,1,1,3,1)= 6
00171 !     TETRA(2,1,1,3,2)= 3
00172 !     TETRA(2,1,1,3,3)= 2
00173 !     TETRA(2,1,1,3,4)= 4
00174 !
00175 !     1 2 1 SPLITTING
00176 !
00177 !     TETRA(1,2,1,1,1)= 1
00178 !     TETRA(1,2,1,1,2)= 2
00179 !     TETRA(1,2,1,1,3)= 3
00180 !     TETRA(1,2,1,1,4)= 5
00181 !
00182 !     TETRA(1,2,1,2,1)= 4
00183 !     TETRA(1,2,1,2,2)= 6
00184 !     TETRA(1,2,1,2,3)= 5
00185 !     TETRA(1,2,1,2,4)= 3
00186 !
00187 !     TETRA(1,2,1,3,1)= 4
00188 !     TETRA(1,2,1,3,2)= 1
00189 !     TETRA(1,2,1,3,3)= 3
00190 !     TETRA(1,2,1,3,4)= 5
00191 !
00192 !     2 2 1 SPLITTING
00193 !
00194 !     TETRA(2,2,1,1,1)= 1
00195 !     TETRA(2,2,1,1,2)= 2
00196 !     TETRA(2,2,1,1,3)= 3
00197 !     TETRA(2,2,1,1,4)= 4
00198 !
00199 !     TETRA(2,2,1,2,1)= 4
00200 !     TETRA(2,2,1,2,2)= 6
00201 !     TETRA(2,2,1,2,3)= 5
00202 !     TETRA(2,2,1,2,4)= 3
00203 !
00204 !     TETRA(2,2,1,3,1)= 5
00205 !     TETRA(2,2,1,3,2)= 2
00206 !     TETRA(2,2,1,3,3)= 4
00207 !     TETRA(2,2,1,3,4)= 3
00208 !
00209 !     1 2 2 SPLITTING
00210 !
00211 !     TETRA(1,2,2,1,1)= 1
00212 !     TETRA(1,2,2,1,2)= 2
00213 !     TETRA(1,2,2,1,3)= 3
00214 !     TETRA(1,2,2,1,4)= 5
00215 !
00216 !     TETRA(1,2,2,2,1)= 4
00217 !     TETRA(1,2,2,2,2)= 6
00218 !     TETRA(1,2,2,2,3)= 5
00219 !     TETRA(1,2,2,2,4)= 1
00220 !
00221 !     TETRA(1,2,2,3,1)= 6
00222 !     TETRA(1,2,2,3,2)= 3
00223 !     TETRA(1,2,2,3,3)= 5
00224 !     TETRA(1,2,2,3,4)= 1
00225 !
00226 !     2 1 2 SPLITTING
00227 !
00228 !     TETRA(2,1,2,1,1)= 1
00229 !     TETRA(2,1,2,1,2)= 2
00230 !     TETRA(2,1,2,1,3)= 3
00231 !     TETRA(2,1,2,1,4)= 6
00232 !
00233 !     TETRA(2,1,2,2,1)= 4
00234 !     TETRA(2,1,2,2,2)= 6
00235 !     TETRA(2,1,2,2,3)= 5
00236 !     TETRA(2,1,2,2,4)= 2
00237 !
00238 !     TETRA(2,1,2,3,1)= 4
00239 !     TETRA(2,1,2,3,2)= 1
00240 !     TETRA(2,1,2,3,3)= 6
00241 !     TETRA(2,1,2,3,4)= 2
00242 !
00243 !     IMPORTANT : ON EACH LAYER THE BOTTOM TETRAHEDRONS MUST BE
00244 !                 TREATED FIRST, SO THAT IKLE SENT TO SUBROUTINE
00245 !                 VOISIN BE THE SAME AS WITH PRISMS OR TRIANGLES
00246 !                 FOR THE NELEM2 FIRST ELEMENTS.
00247 !                 CONSEQUENTLY THE FIRSt 3 POINTS OF TETRAHEDRON 1
00248 !                 ARE ALWAYS 1,2 AND 3.
00249 !
00250 !     TETRA : SEE EXPLANATIONS ABOVE, THE 0 CORRESPOND TO SITUATIONS
00251 !             THAT NEVER HAPPEN (TETRA(1,1,1,... OR TETRA(2,2,2,...)
00252       INTEGER TETRA(2,2,2,3,4)
00253       DATA TETRA / 0,1,1,1,1,1,1,0,0,4,4,4,4,4,4,0,0,6,4,5,5,4,6,0,
00254      &             0,2,2,2,2,2,2,0,0,6,6,6,6,6,6,0,0,3,1,2,2,1,3,0,
00255      &             0,3,3,3,3,3,3,0,0,5,5,5,5,5,5,0,0,2,3,4,1,6,5,0,
00256      &             0,4,5,4,6,6,5,0,0,2,3,3,1,2,1,0,0,4,5,3,6,2,1,0 /
00257 !
00258 !     NUMBERING OF SEGMENTS IN A TETRAHEDRON
00259 !     ISEGT(N,I) : POINT NUMBER I OF SEGMENT N. GIVES THE POINT IN
00260 !                  LOCAL NUMBERING
00261 !
00262       INTEGER ISEGT(6,2)
00263       DATA ISEGT/1,2,3,1,2,3,2,3,1,4,4,4/
00264 !
00265 ! 6./ ASSEMBLY MODE
00266 !
00267 !     1: FINITE ELEMENT ASSEMBLY IN PARALLEL DONE DIRECTLY ON
00268 !        DOUBLE PRECISION VALUES
00269 !
00270 !     2: FINITE ELEMENT ASSEMBLY IN PARALLEL DONE WITH INTEGERS TO AVOID
00271 !        TRUNCATION ERRORS IN PARALLEL, DUE TO DIFFERENT ORDER OF
00272 !        ADDITIONS OF MORE THAN 2 NUMBERS.
00273 !
00274 !     HERE INITIALISED AT 1, IN CASE NO KEYWORD IS DEDICATED TO THIS
00275 !     PARAMETER
00276 !
00277       INTEGER MODASS
00278       DATA MODASS/1/
00279 !
00280 !-----------------------------------------------------------------------
00281 !
00282       END MODULE DECLARATIONS_TELEMAC

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