propin_telemac2d.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\propin_telemac2d.f
00002 !
00073                      SUBROUTINE PROPIN_TELEMAC2D
00074 !                    ***************************
00075 !
00076      &(LIMPRO,LIMDIM,MASK,LIUBOR,LIVBOR,LIHBOR,NBOR,NPTFR,
00077      & KENT,KENTU,KSORT,KADH,KLOG,KNEU,KDIR,KDDL,
00078      & CLH,CLU,CLV,IELMU,U,V,GRAV,H,LT,NPOIN,NELBOR,NELMAX,MSK,MASKEL,
00079      & NFRLIQ,THOMFR,NUMLIQ,FRTYPE,XNEBOR,YNEBOR,IKLBOR,ENTET,
00080      & NELEBX,NELEB)
00081 !
00082 !***********************************************************************
00083 ! TELEMAC2D   V7P0                                   21/08/2010
00084 !***********************************************************************
00085 !
00086 !
00087 !
00088 !
00089 !
00090 !
00091 !
00092 !
00093 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00094 !| CLH            |<->| COPY OF LIHBOR
00095 !| CLU            |<->| COPY OF LIUBOR
00096 !| CLV            |<->| COPY OF LIVBOR
00097 !| ENTET          |-->| IF YES, MESSAGES PRINTED
00098 !| FRTYPE         |-->| TYPE OF TREATMENT FOR LIQUID BOUNDARIES
00099 !| GRAV           |-->| GRAVITY
00100 !| IELMU          |-->| TYPE OF ELEMENT FOR U
00101 !| IKLBOR         |-->| CONNECTIVITY TABLE FOR BOUNDARY ELEMENTS
00102 !| KADH           |-->| CONVENTION FOR NO SLIP BOUNDARY CONDITION
00103 !| KDDL           |-->| CONVENTION FOR DEGREE OF FREEDOM
00104 !| KDIR           |-->| CONVENTION FOR DIRICHLET POINT
00105 !| KENT           |-->| CONVENTION FOR LIQUID INPUT WITH PRESCRIBED VALUE
00106 !| KENTU          |-->| CONVENTION FOR LIQUID INPUT WITH PRESCRIBED VELOCITY
00107 !| KLOG           |-->| CONVENTION FOR SOLID BOUNDARY
00108 !| KNEU           |-->| CONVENTION FOR NEUMANN CONDITION
00109 !| KSORT          |-->| CONVENTION FOR FREE OUTPUT
00110 !| LIHBOR         |-->| TYPE OF BOUNDARY CONDITIONS ON DEPTH
00111 !| LIMDIM         |-->| FIRST DIMENSION OF LIMPRO
00112 !| LIMPRO         |<--| TYPES OF BOUNDARY CONDITIONS FOR PROPAGATION
00113 !|                |   | PER POINT   :    .1:H  .2:U  .3:V
00114 !|                |   | PER SEGMENT :    .4:H  .5:U  .6:V
00115 !| LIUBOR         |-->| TYPE OF BOUNDARY CONDITIONS ON U
00116 !| LIVBOR         |-->| TYPE OF BOUNDARY CONDITIONS ON V
00117 !| LT             |-->| CURRENT TIME STEP
00118 !| MASK           |<--| BLOCK OF MASKS FOR SEGMENTS :
00119 !|                |   | MASK(NPTFR,1) : 1. IF KDIR ON U 0. SINON
00120 !|                |   | MASK(NPTFR,2) : 1. IF KDIR ON V 0. SINON
00121 !|                |   | MASK(NPTFR,3) : 1. IF KDDL ON U 0. SINON
00122 !|                |   | MASK(NPTFR,4) : 1. IF KDDL ON V 0. SINON
00123 !|                |   | MASK(NPTFR,5) : 1. IF KNEU ON U 0. SINON
00124 !|                |   | MASK(NPTFR,6) : 1. IF KNEU ON V 0. SINON
00125 !|                |   | MASK(NPTFR,7) : NOT USED
00126 !|                |   | MASK(NPTFR,8) : 1. - MASK( ,5)
00127 !|                |   | MASK(NPTFR,9) : 1. IF H DIRICHLET
00128 !|                |   | MASK(NPTFR,10): 1. IF H NEUMANN
00129 !|                |   | MASK(NPTFR,11): 1. IF H DEGREE OF FREEDOM
00130 !| MASKEL         |-->| MASKING OF ELEMENTS
00131 !|                |   | =1. : NORMAL   =0. : MASKED ELEMENT
00132 !| MSK            |-->| IF YES, THERE IS MASKED ELEMENTS.
00133 !| NBOR           |-->| GLOBAL NUMBER OF BOUNDARY POINTS
00134 !| NELBOR         |-->| FOR THE KTH BOUNDARY EDGE, GIVES THE CORRESPONDING
00135 !|                |   | ELEMENT.
00136 !| NELEB          |-->| NUMBER OF BOUNDARY ELEMENTS
00137 !| NELEBX         |-->| MAXIMUM NUMBER OF BOUNDARY ELEMENTS
00138 !| NELMAX         |-->| MAXIMUM NUMBER OF ELEMENTS
00139 !| NFRLIQ         |-->| NUMBER OF LIQUID BOUNDARIES
00140 !| NPOIN          |-->| NUMBER OF POINTS
00141 !| NPTFR          |-->| NUMBER OF BOUNDARY POINTS
00142 !| THOMFR         |-->| IF YES, THOMPSON BOUNDARY CONDITIONS
00143 !| XNEBOR         |<--| X-COMPONENT OF NORMAL AT NODES
00144 !| YNEBOR         |<--| Y-COMPONENT OF NORMAL AT NODES
00145 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00146 !
00147       USE BIEF
00148 !
00149       IMPLICIT NONE
00150       INTEGER LNG,LU
00151       COMMON/INFO/LNG,LU
00152 !
00153 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00154 !
00155       INTEGER, INTENT(IN) :: NPOIN,NELMAX,NPTFR,KENTU,LT,NFRLIQ
00156       INTEGER, INTENT(IN) :: KENT,KSORT,KADH,KLOG,KNEU,KDIR,KDDL
00157       INTEGER, INTENT(IN) :: LIMDIM,IELMU,NELEBX,NELEB
00158       INTEGER, INTENT(IN) :: NELBOR(NELEBX),LIVBOR(NPTFR),LIHBOR(NPTFR)
00159       INTEGER, INTENT(IN) :: LIUBOR(NPTFR),FRTYPE(NFRLIQ)
00160       INTEGER, INTENT(IN) :: IKLBOR(NELEBX,*)
00161       INTEGER, INTENT(INOUT) :: LIMPRO(LIMDIM,6)
00162       INTEGER, INTENT(IN) :: NBOR(NPTFR),NUMLIQ(NPTFR)
00163       INTEGER, INTENT(INOUT) :: CLH(NPTFR),CLU(NPTFR),CLV(NPTFR)
00164       LOGICAL, INTENT(IN) :: MSK,THOMFR,ENTET
00165       DOUBLE PRECISION, INTENT(IN)   :: XNEBOR(NPTFR),YNEBOR(NPTFR)
00166       DOUBLE PRECISION, INTENT(IN)   :: U(NPOIN),V(NPOIN),H(NPOIN)
00167       DOUBLE PRECISION, INTENT(IN)   :: GRAV,MASKEL(NELMAX)
00168       TYPE(BIEF_OBJ), INTENT(INOUT)  :: MASK
00169 !
00170 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00171 !
00172       INTEGER K,N,IFRLIQ,IELEM,KP1
00173 !
00174       INTEGER, PARAMETER :: UDIR    =  1
00175       INTEGER, PARAMETER :: VDIR    =  2
00176       INTEGER, PARAMETER :: UDDL    =  3
00177       INTEGER, PARAMETER :: VDDL    =  4
00178       INTEGER, PARAMETER :: UNEU    =  5
00179       INTEGER, PARAMETER :: VNEU    =  6
00180       INTEGER, PARAMETER :: UNONNEU =  8
00181       INTEGER, PARAMETER :: HDIR    =  9
00182       INTEGER, PARAMETER :: HNEU    = 10
00183       INTEGER, PARAMETER :: HDDL    = 11
00184 !
00185       DOUBLE PRECISION YY,F2,F3
00186 !
00187       LOGICAL ALERTE1,ALERTE2
00188 !
00189       INTEGER IGUILT1,IGUILT2,ISEG
00190 !
00191       INTRINSIC MAX
00192 !
00193 !-----------------------------------------------------------------------
00194 !
00195       DO K=1,NPTFR
00196         CLH(K) = LIHBOR(K)
00197         CLU(K) = LIUBOR(K)
00198         CLV(K) = LIVBOR(K)
00199       ENDDO
00200 !
00201 !     FOR THOMPSON TREATMENT
00202 !
00203       IF(NFRLIQ.NE.0.AND.THOMFR) THEN
00204 !
00205         DO K = 1 , NPTFR
00206           IFRLIQ=NUMLIQ(K)
00207           IF(IFRLIQ.NE.0) THEN
00208             IF(FRTYPE(IFRLIQ).EQ.2.AND.H(NBOR(K)).GT.1.D-3) THEN
00209               CLH(K) = KENT
00210               CLU(K) = KENTU
00211               CLV(K) = KENTU
00212             ENDIF
00213           ENDIF
00214         ENDDO
00215 !
00216       ENDIF
00217 !
00218 !  CHECKS AND MODIFIES THE CONDITIONS (IF REQUIRED) TO AVOID NON
00219 !  PHYSICAL CASES : COMPLETELY FREE EXIT IN RIVER FLOW
00220 !
00221       ALERTE1=.FALSE.
00222       ALERTE2=.FALSE.
00223 !
00224       DO K=1,NPTFR
00225 !
00226         N = NBOR(K)
00227         F2 = (U(N)**2+V(N)**2) / GRAV / MAX(H(N),1.D-8)
00228 !
00229 !       INCOMING FREE VELOCITY
00230 !
00231         IF(CLU(K).EQ.KSORT.AND.CLV(K).EQ.KSORT) THEN
00232           F3 = U(N)*XNEBOR(K)+V(N)*YNEBOR(K)
00233           IF(F3.LE.-1.D-2) THEN
00234             ALERTE1=.TRUE.
00235             IGUILT1=K
00236           ENDIF
00237         ENDIF
00238 !
00239 !       SUPERCRITICAL INFLOW WITH FREE ELEVATION
00240 !
00241         IF(CLH(K).EQ.KSORT.AND.F2.GE.1.D0) THEN
00242           F3 = U(N)*XNEBOR(K)+V(N)*YNEBOR(K)
00243           IF(F3.LE.-1.D-2) THEN
00244             ALERTE2=.TRUE.
00245             IGUILT2=K
00246           ENDIF
00247         ENDIF
00248 !
00249       ENDDO
00250 !
00251       IF(ALERTE1.AND.ENTET) THEN
00252         IF(LNG.EQ.1) THEN
00253           WRITE(LU,*) 'PROBLEME MAL POSE, VITESSE LIBRE ENTRANTE'
00254           WRITE(LU,*) 'PAR EXEMPLE AU POINT DE BORD NUMERO ',IGUILT1
00255         ENDIF
00256         IF(LNG.EQ.2) THEN
00257           WRITE(LU,*) 'ILL-POSED PROBLEM, ENTERING FREE VELOCITY'
00258           WRITE(LU,*) 'FOR EXAMPLE AT BOUNDARY POINT NUMBER ',IGUILT1
00259         ENDIF
00260       ENDIF
00261 !
00262       IF(ALERTE2.AND.ENTET) THEN
00263         IF(LNG.EQ.1) THEN
00264           WRITE(LU,*) 'PROBLEME MAL POSE, HAUTEUR LIBRE'
00265           WRITE(LU,*) 'SUR FRONTIERE AVEC VITESSE ENTRANTE'
00266           WRITE(LU,*) 'ET ECOULEMENT TORRENTIEL'
00267           WRITE(LU,*) 'PAR EXEMPLE AU POINT DE BORD NUMERO ',IGUILT2
00268         ENDIF
00269         IF(LNG.EQ.2) THEN
00270           WRITE(LU,*) 'ILL-POSED PROBLEM, FREE DEPTH'
00271           WRITE(LU,*) 'ON BOUNDARY WITH ENTERING VELOCITY'
00272           WRITE(LU,*) 'AND SUPERCRITICAL FLOW'
00273           WRITE(LU,*) 'FOR EXAMPLE AT BOUNDARY POINT NUMBER ',IGUILT2
00274         ENDIF
00275       ENDIF
00276 !
00277 !-----------------------------------------------------------------------
00278 !
00279 !     INITIALISES THE BOUNDARY CONDITIONS FOR PROPAGATION:
00280 !
00281 !-----------------------------------------------------------------------
00282 !
00283 !     NODAL VALUES: LIMPRO(K,1 2 AND 3)
00284 !
00285       DO K=1,NPTFR
00286         IF(CLH(K).EQ.KENT) THEN
00287           LIMPRO(K,1) = KDIR
00288         ELSEIF(CLH(K).EQ.KSORT) THEN
00289           LIMPRO(K,1) = KDDL
00290         ELSEIF(CLH(K).EQ.KLOG ) THEN
00291           LIMPRO(K,1) = KNEU
00292         ELSE
00293           IF(LNG.EQ.1) WRITE(LU,10) K
00294           IF(LNG.EQ.2) WRITE(LU,11) K
00295           CALL PLANTE(1)
00296           STOP
00297         ENDIF
00298         IF(CLU(K).EQ.KENT.OR.CLU(K).EQ.KENTU.OR.CLU(K).EQ.KADH) THEN
00299           LIMPRO(K,2) = KDIR
00300         ELSEIF(CLU(K).EQ.KSORT) THEN
00301           LIMPRO(K,2) = KDDL
00302         ELSEIF(CLU(K).EQ.KLOG) THEN
00303           LIMPRO(K,2) = KNEU
00304         ELSE
00305           IF(LNG.EQ.1) WRITE(LU,20) K
00306           IF(LNG.EQ.2) WRITE(LU,21) K
00307           CALL PLANTE(1)
00308           STOP
00309         ENDIF
00310         IF(CLV(K).EQ.KENT.OR.CLV(K).EQ.KENTU.OR.CLV(K).EQ.KADH) THEN
00311           LIMPRO(K,3) = KDIR
00312         ELSEIF(CLV(K).EQ.KSORT) THEN
00313           LIMPRO(K,3) = KDDL
00314         ELSEIF(CLV(K).EQ.KLOG) THEN
00315           LIMPRO(K,3) = KNEU
00316         ELSE
00317           IF(LNG.EQ.1) WRITE(LU,30) K
00318           IF(LNG.EQ.2) WRITE(LU,31) K
00319           CALL PLANTE(1)
00320           STOP
00321         ENDIF
00322       ENDDO
00323 !
00324 !     SEGMENT VALUES
00325 !
00326 !     INITIALISES ALL THE VECTORS OF THE BLOCK TO 0
00327 !
00328       CALL OS('X=0     ',X=MASK)
00329 !
00330       DO ISEG=1,NELEB
00331 !
00332       K=  IKLBOR(ISEG,1)
00333       KP1=IKLBOR(ISEG,2)
00334 !
00335 !-----------------------------------------------------------------------
00336 !
00337 !     BOUNDARY CONDITIONS ON ELEVATION
00338 !
00339       IF(CLH(K).EQ.KENT) THEN
00340         IF(CLH(KP1).EQ.KENT) THEN
00341           MASK%ADR(HDIR)%P%R(ISEG)=1.D0
00342         ELSEIF(CLH(KP1).EQ.KLOG) THEN
00343           MASK%ADR(HNEU)%P%R(ISEG)=1.D0
00344         ELSEIF(CLH(KP1).EQ.KSORT) THEN
00345           MASK%ADR(HDDL)%P%R(ISEG)=1.D0
00346         ELSE
00347           IF(LNG.EQ.1) WRITE(LU,10) K
00348           IF(LNG.EQ.2) WRITE(LU,11) K
00349           CALL PLANTE(1)
00350           STOP
00351         ENDIF
00352       ELSEIF(CLH(K).EQ.KSORT) THEN
00353         IF(CLH(KP1).EQ.KSORT) THEN
00354           MASK%ADR(HDDL)%P%R(ISEG)=1.D0
00355         ELSEIF(CLH(KP1).EQ.KLOG) THEN
00356           MASK%ADR(HNEU)%P%R(ISEG)=1.D0
00357         ELSEIF(CLH(KP1).EQ.KENT) THEN
00358           MASK%ADR(HDDL)%P%R(ISEG)=1.D0
00359         ELSE
00360           IF(LNG.EQ.1) WRITE(LU,10) K
00361           IF(LNG.EQ.2) WRITE(LU,11) K
00362           CALL PLANTE(1)
00363           STOP
00364         ENDIF
00365       ELSEIF(CLH(K).EQ.KLOG ) THEN
00366         MASK%ADR(HNEU)%P%R(ISEG)=1.D0
00367       ENDIF
00368 !
00369 !     BOUNDARY CONDITIONS ON U
00370 !
00371       IF(CLU(K).EQ.KENT.OR.CLU(K).EQ.KENTU) THEN
00372         IF(CLU(KP1).EQ.KENT.OR.CLU(KP1).EQ.KENTU) THEN
00373           MASK%ADR(UDIR)%P%R(ISEG)=1.D0
00374         ELSEIF(CLU(KP1).EQ.KADH) THEN
00375           MASK%ADR(UDIR)%P%R(ISEG)=1.D0
00376         ELSEIF(CLU(KP1).EQ.KLOG) THEN
00377           MASK%ADR(UNEU)%P%R(ISEG)=1.D0
00378         ELSEIF(CLU(KP1).EQ.KSORT) THEN
00379           MASK%ADR(UDDL)%P%R(ISEG)=1.D0
00380         ELSE
00381           IF(LNG.EQ.1) WRITE(LU,20) K
00382           IF(LNG.EQ.2) WRITE(LU,21) K
00383           CALL PLANTE(1)
00384           STOP
00385         ENDIF
00386       ELSEIF(CLU(K).EQ.KADH) THEN
00387         MASK%ADR(UNEU)%P%R(ISEG)=1.D0
00388       ELSEIF(CLU(K).EQ.KSORT) THEN
00389         IF(CLU(KP1).EQ.KSORT) THEN
00390           MASK%ADR(UDDL)%P%R(ISEG)=1.D0
00391         ELSEIF(CLU(KP1).EQ.KLOG) THEN
00392           MASK%ADR(UNEU)%P%R(ISEG)=1.D0
00393         ELSEIF(CLU(KP1).EQ.KENT) THEN
00394           MASK%ADR(UDDL)%P%R(ISEG)=1.D0
00395         ELSEIF(CLU(KP1).EQ.KENTU) THEN
00396           MASK%ADR(UDDL)%P%R(ISEG)=1.D0
00397         ELSEIF(CLU(KP1).EQ.KADH) THEN
00398           MASK%ADR(UNEU)%P%R(ISEG)=1.D0
00399         ELSE
00400           IF(LNG.EQ.1) WRITE(LU,20) K
00401           IF(LNG.EQ.2) WRITE(LU,21) K
00402           CALL PLANTE(1)
00403           STOP
00404         ENDIF
00405       ELSEIF(CLU(K).EQ.KLOG) THEN
00406         MASK%ADR(UNEU)%P%R(ISEG)=1.D0
00407       ENDIF
00408 !
00409 !     BOUNDARY CONDITIONS ON V
00410 !
00411       IF(CLV(K).EQ.KENT.OR.CLV(K).EQ.KENTU) THEN
00412         IF(CLV(KP1).EQ.KENT.OR.CLV(KP1).EQ.KENTU) THEN
00413           MASK%ADR(VDIR)%P%R(ISEG)=1.D0
00414         ELSEIF(CLV(KP1).EQ.KADH) THEN
00415           MASK%ADR(VDIR)%P%R(ISEG)=1.D0
00416         ELSEIF(CLV(KP1).EQ.KLOG) THEN
00417           MASK%ADR(VNEU)%P%R(ISEG)=1.D0
00418         ELSEIF(CLV(KP1).EQ.KSORT) THEN
00419           MASK%ADR(VDDL)%P%R(ISEG)=1.D0
00420         ELSE
00421           IF(LNG.EQ.1) WRITE(LU,30) K
00422           IF(LNG.EQ.2) WRITE(LU,31) K
00423           CALL PLANTE(1)
00424           STOP
00425         ENDIF
00426       ELSEIF(CLV(K).EQ.KADH) THEN
00427         MASK%ADR(VNEU)%P%R(ISEG)=1.D0
00428       ELSEIF(CLV(K).EQ.KSORT) THEN
00429         IF(CLV(KP1).EQ.KSORT) THEN
00430           MASK%ADR(VDDL)%P%R(ISEG)=1.D0
00431         ELSEIF(CLV(KP1).EQ.KLOG) THEN
00432           MASK%ADR(VNEU)%P%R(ISEG)=1.D0
00433         ELSEIF(CLV(KP1).EQ.KENT) THEN
00434           MASK%ADR(VDDL)%P%R(ISEG)=1.D0
00435         ELSEIF(CLV(KP1).EQ.KENTU) THEN
00436           MASK%ADR(VDDL)%P%R(ISEG)=1.D0
00437         ELSEIF(CLV(KP1).EQ.KADH) THEN
00438           MASK%ADR(VDDL)%P%R(ISEG)=1.D0
00439         ELSE
00440           IF(LNG.EQ.1) WRITE(LU,30) K
00441           IF(LNG.EQ.2) WRITE(LU,31) K
00442           CALL PLANTE(1)
00443           STOP
00444         ENDIF
00445       ELSEIF(CLV(K).EQ.KLOG ) THEN
00446         MASK%ADR(VNEU)%P%R(ISEG)=1.D0
00447       ENDIF
00448 !
00449       ENDDO
00450 !
00451 !-----------------------------------------------------------------------
00452 !
00453 !     LIQUID BOUNDARIES MASK
00454 !
00455       DO ISEG=1,NELEB
00456         MASK%ADR(UNONNEU)%P%R(ISEG)=1.D0-MASK%ADR(UNEU)%P%R(ISEG)
00457       ENDDO
00458 !
00459 !     DEDUCES ARRAYS LIMPRO (K, 4 5 AND 6) FROM THE MASKS
00460 !     SEGMENTS WHICH ARE NOT IN THE DOMAIN WILL GET 0
00461 !
00462       DO K=1,NPTFR
00463         LIMPRO(K,4)=0
00464         LIMPRO(K,5)=0
00465         LIMPRO(K,6)=0
00466       ENDDO
00467 !
00468       DO ISEG=1,NELEB
00469         K=IKLBOR(ISEG,1)
00470         IF(MASK%ADR(HDIR)%P%R(ISEG).GT.0.5D0) THEN
00471           LIMPRO(K,4)=KDIR
00472         ELSEIF(MASK%ADR(HDDL)%P%R(ISEG).GT.0.5D0) THEN
00473           LIMPRO(K,4)=KDDL
00474         ELSEIF(MASK%ADR(HNEU)%P%R(ISEG).GT.0.5D0) THEN
00475           LIMPRO(K,4)=KNEU
00476         ENDIF
00477         IF(MASK%ADR(UDIR)%P%R(ISEG).GT.0.5D0) THEN
00478           LIMPRO(K,5)=KDIR
00479         ELSEIF(MASK%ADR(UDDL)%P%R(ISEG).GT.0.5D0) THEN
00480           LIMPRO(K,5)=KDDL
00481         ELSEIF(MASK%ADR(UNEU)%P%R(ISEG).GT.0.5D0) THEN
00482           LIMPRO(K,5)=KNEU
00483         ENDIF
00484         IF(MASK%ADR(VDIR)%P%R(ISEG).GT.0.5D0) THEN
00485           LIMPRO(K,6)=KDIR
00486         ELSEIF(MASK%ADR(VDDL)%P%R(ISEG).GT.0.5D0) THEN
00487           LIMPRO(K,6)=KDDL
00488         ELSEIF(MASK%ADR(VNEU)%P%R(ISEG).GT.0.5D0) THEN
00489           LIMPRO(K,6)=KNEU
00490         ENDIF
00491       ENDDO
00492 !
00493 !     SUPPLEMENT FOR QUADRATIC SPEEDS
00494 !     THE POINT IN THE MIDDLE OF A SEGMENT HAS THE SAME CONDITION AS THE SEGMENT
00495 !
00496       IF(IELMU.EQ.13) THEN
00497 !       LOOP ON BOUNDARY SEGMENTS
00498         DO ISEG=1,NELEB
00499           K=  IKLBOR(ISEG,1)
00500           KP1=IKLBOR(ISEG,2)
00501           LIMPRO(IKLBOR(ISEG,3),2)=LIMPRO(K,5)
00502           LIMPRO(IKLBOR(ISEG,3),3)=LIMPRO(K,6)
00503         ENDDO
00504       ENDIF
00505 !
00506 !     MASKS USING THE MASK OF THE ELEMENTS
00507 !
00508       IF(MSK) THEN
00509         DO ISEG=1,NELEB
00510           IELEM=NELBOR(ISEG)
00511           YY = MASKEL(IELEM)
00512           MASK%ADR(UDIR   )%P%R(ISEG) = MASK%ADR(UDIR   )%P%R(ISEG) * YY
00513           MASK%ADR(VDIR   )%P%R(ISEG) = MASK%ADR(VDIR   )%P%R(ISEG) * YY
00514           MASK%ADR(UDDL   )%P%R(ISEG) = MASK%ADR(UDDL   )%P%R(ISEG) * YY
00515           MASK%ADR(VDDL   )%P%R(ISEG) = MASK%ADR(VDDL   )%P%R(ISEG) * YY
00516           MASK%ADR(UNEU   )%P%R(ISEG) = MASK%ADR(UNEU   )%P%R(ISEG) * YY
00517           MASK%ADR(VNEU   )%P%R(ISEG) = MASK%ADR(VNEU   )%P%R(ISEG) * YY
00518           MASK%ADR(HDIR   )%P%R(ISEG) = MASK%ADR(HDIR   )%P%R(ISEG) * YY
00519           MASK%ADR(HNEU   )%P%R(ISEG) = MASK%ADR(HNEU   )%P%R(ISEG) * YY
00520           MASK%ADR(HDDL   )%P%R(ISEG) = MASK%ADR(HDDL   )%P%R(ISEG) * YY
00521           MASK%ADR(UNONNEU)%P%R(ISEG) = MASK%ADR(UNONNEU)%P%R(ISEG) * YY
00522         ENDDO
00523       ENDIF
00524 !
00525 !-----------------------------------------------------------------------
00526 !
00527 10    FORMAT(1X,'PROPIN : POINT DE BORD',1I5,' CAS NON PREVU SUR H')
00528 11    FORMAT(1X,'PROPIN: BOUNDARY POINT',1I5,' UNKNOWN PARAMETER FOR H')
00529 20    FORMAT(1X,'PROPIN : POINT DE BORD',1I5,' CAS NON PREVU SUR U')
00530 21    FORMAT(1X,'PROPIN: BOUNDARY POINT',1I5,' UNKNOWN PARAMETER FOR U')
00531 30    FORMAT(1X,'PROPIN : POINT DE BORD',1I5,' CAS NON PREVU SUR V')
00532 31    FORMAT(1X,'PROPIN: BOUNDARY POINT',1I5,' UNKNOWN PARAMETER FOR V')
00533 !
00534 !-----------------------------------------------------------------------
00535 !
00536       RETURN
00537       END

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