bief_def.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\bief_def.f
00002 !
00030                      MODULE BIEF_DEF
00031 !                    ***************
00032 !
00033 !
00034 !***********************************************************************
00035 ! BIEF
00036 !***********************************************************************
00037 !
00038 !
00039 !
00040 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00041 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00042 !
00043       USE DECLARATIONS_SPECIAL
00044 !
00045       IMPLICIT NONE
00046 !
00047 !=======================================================================
00048 !
00049 !     COMMON VALUES FOR PARALLEL MODE
00050 !
00051 !     NPTIR: NUMBER OF INTERFACE POINTS OF THE SUB-DOMAIN
00052 !     IPID: PROCESSOR NUMBER
00053 !     NCSIZE: NUMBER OF PROCESSORS
00054       INTEGER NPTIR,IPID,NCSIZE,NHALO
00055 !
00056 !     MAXIMUM GEOMETRICAL MULTIPLICITY OF A NODE
00057       INTEGER, PARAMETER :: NBMAXNSHARE =  10
00058 !     FOR A DOMAIN, MAXIMUM NUMBER OF DOMAIN NEIGHBOURS/2
00059 !     BE CAREFUL: VARIABLE USED IN PARTEL.F TOO
00060       INTEGER, PARAMETER :: NBMAXDSHARE = 80
00061 !
00062 !=======================================================================
00063 !
00064 !  STRUCTURE OF POINTER TO A BIEF_OBJ, TO HAVE ARRAYS OF POINTERS
00065 !  IN THE BIEF_OBJ STRUCTURE FOR BLOCKS
00066 !
00067 !  BIEF RELEASE 6.0
00068 !
00069 !=======================================================================
00070 !
00071 !       THIS IS NECESSARY IN FORTRAN 90 TO HAVE ARRAYS OF POINTERS
00072 !       LIKE THE COMPONENT ADR BELOW, WHICH ENABLES TO BUILD BLOCKS
00073 !       WHICH ARE ARRAYS OF POINTERS TO BIEF_OBJ STRUCTURES
00074 !
00075         TYPE POINTER_TO_BIEF_OBJ
00076           TYPE(BIEF_OBJ), POINTER :: P
00077         END TYPE POINTER_TO_BIEF_OBJ
00078 !
00079 !=======================================================================
00080 !
00081 !  STRUCTURE OF VECTOR, MATRIX OR BLOCK IN A SINGLE OBJECT : BIEF_OBJ
00082 !
00083 !=======================================================================
00084 !
00085         TYPE BIEF_OBJ
00086 !
00087 !-----------------------------------------------------------------------
00088 !
00089 !       HEADER COMMON TO ALL OBJECTS
00090 !
00091 !         KEY : ALWAYS 123456 TO CHECK MEMORY OVERWRITING
00092           INTEGER KEY
00093 !
00094 !         TYPE: 2: VECTOR,  3: MATRIX,  4: BLOCK
00095           INTEGER TYPE
00096 !
00097 !         NAME: FORTRAN NAME OF OBJECT IN 6 CHARACTERS
00098           CHARACTER(LEN=6) NAME
00099 !
00100 !-----------------------------------------------------------------------
00101 !
00102 !       FOR VECTORS
00103 !
00104 !
00105 !         NAT: NATURE (1:DOUBLE PRECISION  2:INTEGER)
00106           INTEGER NAT
00107 !
00108 !         ELM: TYPE OF ELEMENT
00109           INTEGER ELM
00110 !
00111 !         DIM1: FIRST DIMENSION OF VECTOR
00112           INTEGER DIM1
00113 !
00114 !         MAXDIM1: MAXIMUM SIZE PER DIMENSION
00115           INTEGER MAXDIM1
00116 !
00117 !         DIM2: SECOND DIMENSION OF VECTOR
00118           INTEGER DIM2
00119 !
00120 !         MAXDIM2: MAXIMUM SECOND DIMENSION OF VECTOR
00121           INTEGER MAXDIM2
00122 !
00123 !         DIMDISC: TYPE OF ELEMENT IF VECTOR IS DISCONTINUOUS AT
00124 !                  THE BORDER BETWEEN ELEMENTS, OR 0 IF NOT
00125           INTEGER DIMDISC
00126 !
00127 !         STATUS:
00128 !         0: ANY ARRAY
00129 !         1: VECTOR DEFINED ON A MESH, NO CHANGE OF DISCRETISATION
00130 !         2: VECTOR DEFINED ON A MESH, CHANGE OF DISCRETISATION ALLOWED
00131           INTEGER STATUS
00132 !
00133 !         TYPR: TYPE OF VECTOR OF REALS
00134 !         '0' : NIL   '1' : EQUAL TO 1  'Q' : NO SPECIFIC PROPERTY
00135           CHARACTER*1 TYPR
00136 !
00137 !         TYPR: TYPE OF VECTOR OF REALS
00138 !         '0' : NIL   '1' : EQUAL TO 1  'Q' : NO SPECIFIC PROPERTY
00139           CHARACTER*1 TYPI
00140 !
00141 !         POINTER TO DOUBLE PRECISION 1-DIMENSION ARRAY
00142 !         DATA ARE STORED HERE FOR A DOUBLE PRECISION VECTOR
00143           DOUBLE PRECISION, POINTER,DIMENSION(:)::R
00144 !
00145 !         POINTER TO INTEGER 1-DIMENSION ARRAY
00146 !         DATA ARE STORED HERE FOR AN INTEGER VECTOR
00147           INTEGER, POINTER,DIMENSION(:)::I
00148 !
00149 !-----------------------------------------------------------------------
00150 !
00151 !       FOR MATRICES
00152 !
00153 !         STO: TYPE OF STORAGE  1: CLASSICAL EBE   3: EDGE-BASED STORAGE
00154           INTEGER STO
00155 !
00156 !         ELMLIN: TYPE OF ELEMENT OF ROW
00157           INTEGER ELMLIN
00158 !
00159 !         ELMCOL: TYPE OF ELEMENT OF COLUMN
00160           INTEGER ELMCOL
00161 !
00162 !         TYPDIA: TYPE OF DIAGONAL
00163 !         '0' : NIL   'I' : IDENTITY  'Q' : NO SPECIFIC PROPERTY
00164           CHARACTER*1 TYPDIA
00165 !
00166 !         TYPEXT: TYPE OF EXTRA-DIAGONAL TERMS
00167 !         '0' : NIL   'S' : SYMMETRY  'Q' : NO SPECIFIC PROPERTY
00168           CHARACTER*1 TYPEXT
00169 !
00170 !         POINTER TO A BIEF_OBJ FOR DIAGONAL
00171           TYPE(BIEF_OBJ), POINTER :: D
00172 !
00173 !         POINTER TO A BIEF_OBJ FOR EXTRA-DIAGONAL TERMS
00174           TYPE(BIEF_OBJ), POINTER :: X
00175 !
00176 !         PRO: TYPE OF MATRIX-VECTOR PRODUCT
00177           INTEGER PRO
00178 !
00179 !-----------------------------------------------------------------------
00180 !
00181 !       FOR BLOCKS
00182 !
00183 !         BLOCKS ARE IN FACT ARRAYS OF POINTERS TO BIEF_OBJ STRUCTURES
00184 !         ADR(I)%P WILL BE THE I-TH BIEF_OBJ OBJECT
00185 !
00186 !         N: NUMBER OF OBJECTS IN THE BLOCK
00187           INTEGER N
00188 !         MAXBLOCK: MAXIMUM NUMBER OF OBJECTS IN THE BLOCK
00189           INTEGER MAXBLOCK
00190 !         ADR: ARRAY OF POINTERS TO OBJECTS (WILL BE OF SIZE MAXBLOCK)
00191           TYPE(POINTER_TO_BIEF_OBJ), POINTER, DIMENSION(:) :: ADR
00192 !
00193 !-----------------------------------------------------------------------
00194 !
00195         END TYPE BIEF_OBJ
00196 !
00197 !
00198 !=======================================================================
00199 !
00200 !  STRUCTURE OF MESH : BIEF_MESH
00201 !
00202 !=======================================================================
00203 !
00204         TYPE BIEF_MESH
00205 !
00206 !         1) A HEADER
00207 !
00208 !         NAME: NAME OF MESH IN 6 CHARACTERS
00209           CHARACTER(LEN=6) NAME
00210 !
00211 !         2) A SERIES OF INTEGER VALUES (DECLARED AS POINTERS TO ENABLE
00212 !                                        ALIASES)
00213 !
00214 !         NELEM: NUMBER OF ELEMENTS IN MESH
00215           INTEGER, POINTER :: NELEM
00216 !
00217 !         NELMAX: MAXIMUM NUMBER OF ELEMENTS ENVISAGED
00218           INTEGER, POINTER :: NELMAX
00219 !
00220 !         NPTFR: NUMBER OF 1D BOUNDARY NODES, EVEN IN 3D
00221           INTEGER, POINTER :: NPTFR
00222 !
00223 !         NPTFRX: NUMBER OF 1D BOUNDARY NODES, EVEN IN 3D
00224           INTEGER, POINTER :: NPTFRX
00225 !
00226 !         NELEB: NUMBER OF BOUNDARY ELEMENTS (SEGMENTS IN 2D)
00227 !         IN 3D WITH PRISMS:
00228 !         NUMBER OF LATERAL BOUNDARY ELEMENTS FOR SIGMA MESH
00229           INTEGER, POINTER :: NELEB
00230 !
00231 !         NELEBX: MAXIMUM NELEB
00232           INTEGER, POINTER :: NELEBX
00233 !
00234 !         NSEG: NUMBER OF SEGMENTS IN THE MESH
00235           INTEGER, POINTER :: NSEG
00236 !
00237 !         NSEGBOR: NUMBER OF BORDER SEGMENTS IN THE MESH
00238           INTEGER, POINTER :: NSEGBOR
00239 !
00240 !         DIM: DIMENSION OF DOMAIN (2 OR 3)
00241           INTEGER, POINTER :: DIM
00242 !
00243 !         TYPELM: TYPE OF ELEMENT (10 FOR TRIANGLES, 40 FOR PRISMS)
00244           INTEGER, POINTER :: TYPELM
00245 !
00246 !         NPOIN: NUMBER OF VERTICES (OR LINEAR NODES) IN THE MESH
00247           INTEGER, POINTER :: NPOIN
00248 !
00249 !         NPMAX: MAXIMUM NUMBER OF VERTICES IN THE MESH
00250           INTEGER, POINTER :: NPMAX
00251 !
00252 !         MXPTVS: MAXIMUM NUMBER OF POINTS ADJACENT TO 1 POINT
00253           INTEGER, POINTER :: MXPTVS
00254 !
00255 !         MXELVS: MAXIMUM NUMBER OF ELEMENTS ADJACENT TO 1 POINT
00256           INTEGER, POINTER :: MXELVS
00257 !
00258 !         LV: MAXIMUM VECTOR LENGTH ALLOWED ON VECTOR COMPUTERS,
00259 !             DUE TO ELEMENT NUMBERING
00260           INTEGER, POINTER :: LV
00261 !
00262 !         NDS: NUMBERS OF NODES, ELEMENTS, SEGMENTS, OF DIFFERENT
00263 !              TYPES OF DISCRETISATION
00264           INTEGER, POINTER :: NDS(:,:)
00265 !
00266 !
00267 !         3) A SERIES OF BIEF_OBJ TO STORE INTEGER ARRAYS
00268 !
00269 !         IKLE: CONNECTIVITY TABLE IKLE(NELMAX,NDP) AND KLEI(NDP,NELMAX)
00270           TYPE(BIEF_OBJ), POINTER :: IKLE,KLEI
00271 !
00272 !         IFABOR: TABLE GIVING ELEMENTS BEHIND FACES OF A TRIANGLE
00273           TYPE(BIEF_OBJ), POINTER :: IFABOR
00274 !
00275 !         NELBOR: ELEMENTS OF THE BOUNDARY
00276           TYPE(BIEF_OBJ), POINTER :: NELBOR
00277 !
00278 !         NULONE: LOCAL NUMBER OF BOUNDARY POINTS FOR BOUNDARY ELEMENTS
00279           TYPE(BIEF_OBJ), POINTER :: NULONE
00280 !
00281 !         KP1BOR: POINTS FOLLOWING AND PRECEDING A BOUNDARY POINT
00282           TYPE(BIEF_OBJ), POINTER :: KP1BOR
00283 !
00284 !         NBOR: GLOBAL NUMBER OF BOUNDARY POINTS
00285           TYPE(BIEF_OBJ), POINTER :: NBOR
00286 !
00287 !         IKLBOR: CONNECTIVITY TABLE FOR BOUNDARY POINTS
00288           TYPE(BIEF_OBJ), POINTER :: IKLBOR
00289 !
00290 !         IFANUM: FOR STORAGE 2, NUMBER OF SEGMENT IN ADJACENT ELEMENT
00291 !         OF A TRIANGLE
00292           TYPE(BIEF_OBJ), POINTER :: IFANUM
00293 !
00294 !         IKLEM1: ADRESSES OF NEIGHBOURS OF POINTS FOR FRONTAL
00295 !         MATRIX-VECTOR PRODUCT
00296           TYPE(BIEF_OBJ), POINTER :: IKLEM1
00297 !
00298 !         LIMVOI: FOR FRONTAL MATRIX-VECTOR PRODUCT, ADDRESSES OF POINTS
00299 !         WITH A GIVEN NUMBER OF NEIGHBOURS
00300           TYPE(BIEF_OBJ), POINTER :: LIMVOI
00301 !
00302 !         NUBO: FOR FINITE VOLUMES, GLOBAL NUMBERS OF VERTICES OF SEGMENTS
00303           TYPE(BIEF_OBJ), POINTER :: NUBO
00304 !
00305 !         FOR SEGMENT-BASED STORAGE
00306 !
00307 !         GLOSEG: GLOBAL NUMBERS OF VERTICES OF SEGMENTS
00308           TYPE(BIEF_OBJ), POINTER :: GLOSEG
00309 !         ELTSEG: SEGMENTS FORMING AN ELEMENT
00310           TYPE(BIEF_OBJ), POINTER :: ELTSEG
00311 !         ORISEG: ORIENTATION OF SEGMENTS FORMING AN ELEMENT 1:ANTI 2:CLOCKWISE
00312           TYPE(BIEF_OBJ), POINTER :: ORISEG
00313 
00314 !         FOR UNSTRUCTURED 3D (IELM = 31 SO FAR)
00315 !         GLOSEGBOR: GLOBAL NUMBERS OF VERTICES OF SEGMENTS
00316           TYPE(BIEF_OBJ), POINTER :: GLOSEGBOR
00317 !         ELTSEGBOR: SEGMENTS FORMING AN ELEMENT
00318           TYPE(BIEF_OBJ), POINTER :: ELTSEGBOR
00319 !         ORISEGBOR: ORIENTATION OF SEGMENTS FORMING AN ELEMENT 1:ANTI 2:CLOCKWISE
00320           TYPE(BIEF_OBJ), POINTER :: ORISEGBOR
00321 !
00322 !         FOR THE METHOD OF CHARACTERISTICS
00323 !
00324 !         ELTCAR: STARTING ELEMENT FOR TREATING A POINT
00325 !         IF 0, IT IS IN ANOTHER SUBDOMAIN
00326 !
00327           TYPE(BIEF_OBJ), POINTER :: ELTCAR
00328 !
00329 !         SERIES OF ARRAYS FOR PARALLEL MODE
00330 !         HERE GLOBAL MEANS NUMBER IN THE WHOLE DOMAIN
00331 !              LOCAL  MEANS NUMBER IN THE SUB-DOMAIN
00332 !
00333 !         KNOLG: GIVES THE INITIAL GLOBAL NUMBER OF A LOCAL POINT
00334           TYPE(BIEF_OBJ), POINTER :: KNOLG
00335 !         NACHB: NUMBERS OF PROCESSORS CONTAINING A GIVEN POINT
00336           TYPE(BIEF_OBJ), POINTER :: NACHB
00337 !         ISEG: GLOBAL NUMBER OF FOLLOWING OR PRECEDING POINT IN THE BOUNDARY
00338 !         IF IT IS IN ANOTHER SUB-DOMAIN.
00339           TYPE(BIEF_OBJ), POINTER :: ISEG
00340 !         ADDRESSES IN ARRAYS SENT BETWEEN PROCESSORS
00341           TYPE(BIEF_OBJ), POINTER :: INDPU
00342 !
00343 !         DIMENSION NHP(NBMAXNSHARE,NPTIR)
00344 !         NHP(IZH,IR) IS THE GLOBAL NUMBER IN THE SUB-DOMAIN OF A POINT
00345 !         WHOSE NUMBER IS IR IN THE INTERFACE WITH THE IZ-TH HIGHER RANK PROCESSOR
00346           TYPE(BIEF_OBJ), POINTER :: NHP
00347 !         NHM IS LIKE NHP, BUT WITH LOWER RANK PROCESSORS
00348           TYPE(BIEF_OBJ), POINTER :: NHM
00349 !
00350 !         FOR FINITE VOLUMES AND KINETIC SCHEMES
00351           TYPE(BIEF_OBJ), POINTER :: JMI
00352 !         ELEMENTAL HALO NEIGHBOURHOOD DESCRIPTION IN PARALLEL
00353 !         IFAPAR(6,NELEM2)
00354 !         IFAPAR(1:3,IELEM): PROCESSOR NUMBERS BEHIND THE 3 ELEMENT EDGES
00355 !                            NUMBER FROM 0 TO NCSIZE-1
00356 !         IFAPAR(4:6,IELEM): -LOCAL- ELEMENT NUMBERS BEHIND THE 3 EDGES
00357 !                            IN THE NUMBERING OF PARTITIONS THEY BELONG TO
00358           TYPE(BIEF_OBJ), POINTER :: IFAPAR
00359 !
00360 !         4) A SERIES OF BIEF_OBJ TO STORE REAL ARRAYS
00361 !
00362 !         XEL: COORDINATES X PER ELEMENT
00363           TYPE(BIEF_OBJ), POINTER :: XEL
00364 !
00365 !         YEL: COORDINATES Y PER ELEMENT
00366           TYPE(BIEF_OBJ), POINTER :: YEL
00367 !
00368 !         ZEL: COORDINATES Z PER ELEMENT
00369           TYPE(BIEF_OBJ), POINTER :: ZEL
00370 !
00371 !         SURFAC: AREAS OF ELEMENTS (IN 2D)
00372           TYPE(BIEF_OBJ), POINTER :: SURFAC
00373 !
00374 !         SURDET: 1/DET OF ISOPARAMETRIC TRANSFORMATION
00375           TYPE(BIEF_OBJ), POINTER :: SURDET
00376 !
00377 !         LGSEG: LENGTH OF 2D BOUNDARY SEGMENTS
00378           TYPE(BIEF_OBJ), POINTER :: LGSEG
00379 !
00380 !         XSGBOR: NORMAL X TO 1D BOUNDARY SEGMENTS
00381           TYPE(BIEF_OBJ), POINTER :: XSGBOR
00382 !
00383 !         YSGBOR: NORMAL Y TO 1D BOUNDARY SEGMENTS
00384           TYPE(BIEF_OBJ), POINTER :: YSGBOR
00385 !
00386 !         ZSGBOR: NORMAL Z TO 1D BOUNDARY SEGMENTS
00387           TYPE(BIEF_OBJ), POINTER :: ZSGBOR
00388 !
00389 !         XNEBOR: NORMAL X TO 1D BOUNDARY POINTS
00390           TYPE(BIEF_OBJ), POINTER :: XNEBOR
00391 !
00392 !         YNEBOR: NORMAL Y TO 1D BOUNDARY POINTS
00393           TYPE(BIEF_OBJ), POINTER :: YNEBOR
00394 !
00395 !         ZNEBOR: NORMAL Z TO 1D BOUNDARY POINTS
00396           TYPE(BIEF_OBJ), POINTER :: ZNEBOR
00397 !
00398 !         X: COORDINATES OF POINTS
00399           TYPE(BIEF_OBJ), POINTER :: X
00400 !
00401 !         Y: COORDINATES OF POINTS
00402           TYPE(BIEF_OBJ), POINTER :: Y
00403 !
00404 !         Z: COORDINATES OF POINTS
00405           TYPE(BIEF_OBJ), POINTER :: Z
00406 !
00407 !         COSLAT: LATITUDE COSINE
00408           TYPE(BIEF_OBJ), POINTER :: COSLAT
00409 !
00410 !         SINLAT: LATITUDE SINE
00411           TYPE(BIEF_OBJ), POINTER :: SINLAT
00412 !
00413 !         DISBOR: DISTANCE TO 1D BOUNDARIES
00414           TYPE(BIEF_OBJ), POINTER :: DISBOR
00415 !
00416 !         M: WORKING MATRIX
00417           TYPE(BIEF_OBJ), POINTER :: M
00418 !
00419 !         MSEG: WORKING MATRIX FOR SEGMENT-BASED STORAGE
00420           TYPE(BIEF_OBJ), POINTER :: MSEG
00421 !
00422 !         W: WORKING ARRAY FOR A NON-ASSEMBLED VECTOR
00423           TYPE(BIEF_OBJ), POINTER :: W
00424 !
00425 !         WI8: WORKING ARRAY FOR A NON-ASSEMBLED VECTOR STORED IN INTEGERS
00426           INTEGER(KIND=K8), POINTER :: WI8(:)
00427 !
00428 !         T: WORKING ARRAY FOR AN ASSEMBLED VECTOR
00429           TYPE(BIEF_OBJ), POINTER :: T
00430 !
00431 !         TI8: WORKING ARRAY FOR AN ASSEMBLED VECTOR STORED IN INTEGERS
00432           INTEGER(KIND=K8), POINTER :: TI8(:)
00433 !
00434 !         VNOIN: FOR FINITE VOLUMES
00435           TYPE(BIEF_OBJ), POINTER :: VNOIN
00436 !
00437 !         XSEG: X COORDINATE OF FOLLOWING OR PRECEDING POINT IN THE BOUNDARY
00438 !         IF IT IS IN ANOTHER SUB-DOMAIN
00439           TYPE(BIEF_OBJ), POINTER :: XSEG
00440 !
00441 !         YSEG: Y COORDINATE OF FOLLOWING OR PRECEDING POINT IN THE BOUNDARY
00442 !         IF IT IS IN ANOTHER SUB-DOMAIN
00443           TYPE(BIEF_OBJ), POINTER :: YSEG
00444 !
00445 !         FAC: MULTIPLICATION FACTOR FOR POINTS IN THE BOUNDARY FOR
00446 !              DOT PRODUCT. FAC=1/(NUMBER OF SUBDOMAINS WITH THIS POINT)
00447           TYPE(BIEF_OBJ), POINTER :: FAC
00448 !
00449 !         FOR PARALLEL MODE AND NON BLOCKING COMMUNICATION (SEE PARINI.F)
00450 !
00451 !         NUMBER OF PROCESSORS WITH POINTS IN COMMON WITH THE SUB-DOMAIN
00452           INTEGER       , POINTER :: NB_NEIGHB
00453 !         FOR ANY NEIGHBOURING PROCESSOR, NUMBER OF POINTS
00454 !         SHARED WITH IT
00455           TYPE(BIEF_OBJ), POINTER :: NB_NEIGHB_PT
00456 !         RANK OF PROCESSORS WITH WHICH TO COMMUNICATE FOR POINTS
00457           TYPE(BIEF_OBJ), POINTER :: LIST_SEND
00458 !         NH_COM(DIM1NHCOM,NB_NEIGHB)
00459 !         WHERE DIM1NHCOM IS THE MAXIMUM NUMBER OF POINTS SHARED
00460 !         WITH ANOTHER PROCESSOR (OR SLIGHTLY MORE FOR 16 BYTES ALIGNMENT)
00461 !         NH_COM(I,J) IS THE GLOBAL NUMBER IN THE SUB-DOMAIN OF I-TH
00462 !         POINT SHARED WITH J-TH NEIGHBOURING PROCESSOR
00463           TYPE(BIEF_OBJ), POINTER :: NH_COM
00464 !
00465 !         NUMBER OF NEIGHBOURING PROCESSORS WITH EDGES
00466 !         IN COMMON WITH THE SUB-DOMAIN
00467           INTEGER       , POINTER :: NB_NEIGHB_SEG
00468 !         FOR ANY NEIGHBOURING PROCESSOR, NUMBER OF EDGES
00469 !         SHARED WITH IT
00470           TYPE(BIEF_OBJ), POINTER :: NB_NEIGHB_PT_SEG
00471 !         RANK OF PROCESSORS WITH WHICH TO COMMUNICATE FOR EDGES
00472           TYPE(BIEF_OBJ), POINTER :: LIST_SEND_SEG
00473 !         LIKE NH_COM BUT FOR EDGES
00474           TYPE(BIEF_OBJ), POINTER :: NH_COM_SEG
00475 !
00476 !         WILL BE USED AS BUFFER BY MPI IN PARALLEL
00477 !
00478           TYPE(BIEF_OBJ), POINTER :: BUF_SEND
00479           TYPE(BIEF_OBJ), POINTER :: BUF_RECV
00480           INTEGER(KIND=K8), POINTER :: BUF_SENDI8(:)
00481           INTEGER(KIND=K8), POINTER :: BUF_RECVI8(:)
00482 !
00483 !         FOR FINITE VOLUMES AND KINETIC SCHEMES
00484 !
00485           TYPE(BIEF_OBJ), POINTER :: CMI,DPX,DPY
00486           TYPE(BIEF_OBJ), POINTER :: DTHAUT,AIRST
00487 !
00488 !         CENTER OF MASS OF ELEMENTS NEIGHBORING AN EDGE
00489 !
00490           TYPE(BIEF_OBJ), POINTER :: COORDG
00491 !
00492         END TYPE BIEF_MESH
00493 !
00494 !=======================================================================
00495 !
00496 !  STRUCTURE OF SOLVER CONFIGURATION
00497 !
00498 !=======================================================================
00499 !
00500         TYPE SLVCFG
00501 !
00502 !         SLV: CHOICE OF SOLVER
00503           INTEGER SLV
00504 !
00505 !         NITMAX: MAXIMUM NUMBER OF ITERATIONS
00506           INTEGER NITMAX
00507 !
00508 !         PRECON: TYPE OF PRECONDITIONING
00509           INTEGER PRECON
00510 !
00511 !         KRYLOV: DIMENSION OF KRYLOV SPACE FOR GMRES SOLVER
00512           INTEGER KRYLOV
00513 !
00514 !         EPS: ACCURACY
00515           DOUBLE PRECISION EPS
00516 !
00517 !         ZERO: TO CHECK DIVISIONS BY ZERO
00518           DOUBLE PRECISION ZERO
00519 !
00520 !         OK: IF PRECISION EPS HAS BEEN REACHED
00521           LOGICAL OK
00522 !
00523 !         NIT: NUMBER OF ITERATIONS IF PRECISION REACHED
00524           INTEGER NIT
00525 !
00526         END TYPE SLVCFG
00527 !
00528 !=======================================================================
00529 !
00530 !  STRUCTURE OF FILE
00531 !
00532 !=======================================================================
00533 !
00534         TYPE BIEF_FILE
00535 !
00536 !         LU: LOGICAL UNIT TO OPEN THE FILE
00537           INTEGER LU
00538 !
00539 !         NAME: NAME OF FILE
00540           CHARACTER(LEN=144) NAME
00541 !
00542 !         TELNAME: NAME OF FILE IN TEMPORARY DIRECTORY
00543           CHARACTER(LEN=6) TELNAME
00544 !
00545 !         FMT: FORMAT (SERAFIN, MED, ETC.)
00546           CHARACTER(LEN=8) FMT
00547 !
00548 !         ACTION: READ, WRITE OR READWRITE
00549           CHARACTER(LEN=9) ACTION
00550 !
00551 !         BINASC: ASC FOR ASCII OR BIN FOR BINARY
00552           CHARACTER(LEN=3) BINASC
00553 !
00554 !         TYPE: KIND OF FILE
00555           CHARACTER(LEN=12) TYPE
00556 !
00557         END TYPE BIEF_FILE
00558 !
00559 !=======================================================================
00560 !
00561 !  STRUCTURE OF CONTROL SECTION
00562 !
00563 !  ADDED BY JACEK JANKOWSKI, BAW KARLSRUHE,
00564 !  USED BY TELEMAC-2D AND SISYPHE
00565 !
00566 !=======================================================================
00567 !
00568       TYPE CHAIN_TYPE
00569         INTEGER :: NPAIR(2)
00570         DOUBLE PRECISION :: XYBEG(2), XYEND(2)
00571         CHARACTER(LEN=24) :: DESCR
00572         INTEGER :: NSEG
00573         INTEGER, POINTER :: LISTE(:,:)
00574       END TYPE CHAIN_TYPE
00575 !
00576 !=======================================================================
00577 !
00578 !  STRUCTURES FOR OIL SPILLS
00579 !
00580 !=======================================================================
00581 !
00582       TYPE COMPO
00583         DOUBLE PRECISION::SOL
00584         DOUBLE PRECISION::MASS
00585         DOUBLE PRECISION::TB
00586       END TYPE COMPO
00587 
00588       TYPE OIL_PART
00589         INTEGER::STATE
00590         INTEGER::ELTOIL,ETAOIL
00591         INTEGER::TPSECH
00592         INTEGER::ID
00593         DOUBLE PRECISION::XOIL,YOIL,ZOIL
00594         DOUBLE PRECISION::MASS0
00595         DOUBLE PRECISION::MASS
00596         DOUBLE PRECISION::MASS_EVAP,MASS_DISS
00597         DOUBLE PRECISION::SURFACE,SHZOIL
00598         DOUBLE PRECISION,DIMENSION(3)::SHPOIL
00599         TYPE(COMPO),DIMENSION(:),ALLOCATABLE::COMPO
00600         TYPE(COMPO),DIMENSION(:),ALLOCATABLE::HAP
00601       END TYPE OIL_PART
00602 !
00603 !=======================================================================
00604 !
00605       END MODULE BIEF_DEF

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