airwik2.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac3d\airwik2.f
00002 !
00059                      SUBROUTINE AIRWIK2
00060 !                    ******************
00061 !
00062      &(LIHBOR,UBORF,VBORF,WBORF,LIUBOF,LIVBOF,LIWBOF,UBORL,VBORL,WBORL,
00063      & LIUBOL,LIVBOL,LIWBOL,
00064      & UBORS,VBORS,WBORS,LIUBOS,LIVBOS,LIWBOS,U,V,W,XNEBOR,YNEBOR,NBOR,
00065      & NPTFR,NPLAN,NPOIN2,KENT,KADH,KLOG,KDEB,KP1BOR,VELPROLAT)
00066 !
00067 !***********************************************************************
00068 ! TELEMAC3D   V6P1                                   21/08/2010
00069 !***********************************************************************
00070 !
00071 !
00072 !
00073 !
00074 !
00075 !
00076 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00077 !| KADH           |-->| CONVENTION FOR NO SLIP BOUNDARY CONDITION
00078 !| KDEB           |-->| CONVENTION FOR LIQUID INPUT WITH PRESCRIBED VELOCITY
00079 !| KENT           |-->| CONVENTION FOR LIQUID INPUT WITH PRESCRIBED VALUE
00080 !| KLOG           |-->| CONVENTION FOR SOLID BOUNDARY
00081 !| KP1BOR         |-->| GIVES THE NEXT BOUNDARY POINT IN A CONTOUR
00082 !| LIHBOR         |-->| TYPE OF BOUNDARY CONDITIONS ON DEPTH
00083 !| LIUBOF         |-->| TYPE OF BOUNDARY CONDITIONS ON U AT THE BOTTOM
00084 !| LIUBOL         |-->| TYPE OF BOUNDARY CONDITIONS ON U ON LATERAL WALLS
00085 !| LIUBOS         |-->| TYPE OF BOUNDARY CONDITIONS ON U AT THE SURFACE
00086 !| LIVBOF         |-->| TYPE OF BOUNDARY CONDITIONS ON V AT THE BOTTOM
00087 !| LIVBOL         |-->| TYPE OF BOUNDARY CONDITIONS ON V ON LATERAL WALLS
00088 !| LIVBOS         |-->| TYPE OF BOUNDARY CONDITIONS ON V AT THE SURFACE
00089 !| LIVBOF         |-->| TYPE OF BOUNDARY CONDITIONS ON W AT THE BOTTOM
00090 !| LIVBOL         |-->| TYPE OF BOUNDARY CONDITIONS ON W ON LATERAL WALLS
00091 !| LIVBOS         |-->| TYPE OF BOUNDARY CONDITIONS ON W AT THE SURFACE
00092 !| NBOR           |-->| GLOBAL NUMBER OF BOUNDARY POINTS IN 2D
00093 !| NPLAN          |-->| NUMBER OF PLANES IN THE 3D MESH OF PRISMS
00094 !| NPOIN2         |-->| NUMBER OF POINTS IN 2D
00095 !| NPTFR          |-->| NUMBER OF BOUNDARY POINTS IN 2D
00096 !| U              |<->| X COMPONENT OF VELOCITY
00097 !| UBORF          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY U
00098 !|                |   | AT THE BOTTOM
00099 !| UBORL          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY U
00100 !|                |   | ON LATERAL WALLS
00101 !| UBORS          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY U
00102 !|                |   | AT THE SURFACE
00103 !| V              |<->| Y COMPONENT OF VELOCITY
00104 !| VBORF          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY V
00105 !|                |   | AT THE BOTTOM
00106 !| VBORL          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY V
00107 !|                |   | ON LATERAL WALLS
00108 !| VBORS          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY V
00109 !|                |   | AT THE SURFACE
00110 !| VELPROLAT      |-->| PROJECTION OF VELOCITY ON LATERAL SOLID BOUNDARIES
00111 !| W              |<->| Z COMPONENT OF VELOCITY
00112 !| WBORF          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY W
00113 !|                |   | AT THE BOTTOM
00114 !| WBORL          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY W
00115 !|                |   | ON LATERAL WALLS
00116 !| WBORS          |-->| PRESCRIBED BOUNDARY CONDITION ON VELOCITY W
00117 !|                |   | AT THE SURFACE
00118 !| XNEBOR         |-->| X COMPONENT OF NORMAL VECTOR FOR BOUNDARY POINTS
00119 !| YNEBOR         |-->| Y COMPONENT OF NORMAL VECTOR FOR BOUNDARY POINTS
00120 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00121 !
00122       USE BIEF
00123       IMPLICIT NONE
00124       INTEGER LNG,LU
00125       COMMON/INFO/LNG,LU
00126 !
00127 !----------------------------------------------------------------------
00128 !
00129       INTEGER, INTENT(IN) :: NPTFR, NPLAN, NPOIN2
00130       INTEGER, INTENT(IN) :: KENT, KADH, KLOG, KDEB
00131 !
00132       INTEGER, INTENT(IN) :: KP1BOR(NPTFR,2)
00133       INTEGER, INTENT(IN) :: LIUBOF(NPOIN2), LIUBOS(NPOIN2)
00134       INTEGER, INTENT(IN) :: LIUBOL(NPTFR,NPLAN),LIWBOF(NPOIN2)
00135       INTEGER, INTENT(IN) :: LIHBOR(NPTFR),LIWBOS(NPOIN2)
00136       INTEGER, INTENT(IN) :: LIVBOF(NPOIN2), LIVBOS(NPOIN2)
00137       INTEGER, INTENT(IN) :: LIVBOL(NPTFR,NPLAN),LIWBOL(NPTFR,NPLAN)
00138       INTEGER, INTENT(IN) :: NBOR(NPTFR)
00139 !
00140       DOUBLE PRECISION, INTENT(IN)    :: UBORF(NPOIN2),UBORS(NPOIN2)
00141       DOUBLE PRECISION, INTENT(IN)    :: WBORF(NPOIN2),WBORS(NPOIN2)
00142       DOUBLE PRECISION, INTENT(IN)    :: UBORL(NPTFR,NPLAN)
00143       DOUBLE PRECISION, INTENT(IN)    :: WBORL(NPTFR,NPLAN)
00144       DOUBLE PRECISION, INTENT(IN)    :: VBORF(NPOIN2), VBORS(NPOIN2)
00145       DOUBLE PRECISION, INTENT(IN)    :: VBORL(NPTFR,NPLAN)
00146       DOUBLE PRECISION, INTENT(IN)    :: XNEBOR(NPTFR),YNEBOR(NPTFR)
00147       DOUBLE PRECISION, INTENT(INOUT) :: U(NPOIN2,NPLAN),V(NPOIN2,NPLAN)
00148       DOUBLE PRECISION, INTENT(INOUT) :: W(NPOIN2,NPLAN)
00149 !
00150       LOGICAL, INTENT(IN)             :: VELPROLAT
00151 !
00152 !-----------------------------------------------------------------------
00153 !
00154       INTEGER IPTFR,IPLAN,IPOIN
00155       DOUBLE PRECISION PSCAL
00156 !
00157 !-----------------------------------------------------------------------
00158 !
00159 ! ENFORCES U.N = 0
00160 !
00161       IF(VELPROLAT) THEN
00162         DO IPLAN=1,NPLAN
00163           DO IPTFR=1,NPTFR
00164             IF(LIHBOR(IPTFR).EQ.KLOG) THEN
00165               IPOIN=NBOR(IPTFR)
00166               PSCAL = U(IPOIN,IPLAN)*XNEBOR(IPTFR)
00167      &              + V(IPOIN,IPLAN)*YNEBOR(IPTFR)
00168               U(IPOIN,IPLAN) = U(IPOIN,IPLAN) - PSCAL*XNEBOR(IPTFR)
00169               V(IPOIN,IPLAN) = V(IPOIN,IPLAN) - PSCAL*YNEBOR(IPTFR)
00170             ENDIF
00171           ENDDO
00172         ENDDO
00173       ENDIF
00174 !
00175 !-----------------------------------------------------------------------
00176 !
00177 ! DIRICHLET AND NO SLIP CONDITION
00178 !
00179       DO IPLAN=1,NPLAN
00180         DO IPTFR=1,NPTFR
00181            IF (LIUBOL(IPTFR,IPLAN).EQ.KENT.OR.
00182      &         LIUBOL(IPTFR,IPLAN).EQ.KDEB)
00183      &          U(NBOR(IPTFR),IPLAN) = UBORL(IPTFR,IPLAN)
00184            IF (LIVBOL(IPTFR,IPLAN).EQ.KENT.OR.
00185      &         LIVBOL(IPTFR,IPLAN).EQ.KDEB)
00186      &          V(NBOR(IPTFR),IPLAN) = VBORL(IPTFR,IPLAN)
00187            IF (LIWBOL(IPTFR,IPLAN).EQ.KENT.OR.
00188      &         LIWBOL(IPTFR,IPLAN).EQ.KDEB)
00189      &          W(NBOR(IPTFR),IPLAN) = WBORL(IPTFR,IPLAN)
00190            IF(LIUBOL(IPTFR,IPLAN).EQ.KADH) U(NBOR(IPTFR),IPLAN) = 0.D0
00191            IF(LIVBOL(IPTFR,IPLAN).EQ.KADH) V(NBOR(IPTFR),IPLAN) = 0.D0
00192            IF(LIWBOL(IPTFR,IPLAN).EQ.KADH) W(NBOR(IPTFR),IPLAN) = 0.D0
00193         ENDDO
00194       ENDDO
00195 !
00196 ! BOTTOM AND FREE SURFACE
00197 !
00198       DO IPOIN=1,NPOIN2
00199         IF (LIUBOF(IPOIN).EQ.KENT.OR.LIUBOF(IPOIN).EQ.KADH)
00200      &      U(IPOIN,1) = UBORF(IPOIN)
00201         IF (LIVBOF(IPOIN).EQ.KENT.OR.LIVBOF(IPOIN).EQ.KADH)
00202      &      V(IPOIN,1) = VBORF(IPOIN)
00203         IF (LIWBOF(IPOIN).EQ.KENT.OR.LIWBOF(IPOIN).EQ.KADH)
00204      &      W(IPOIN,1) = WBORF(IPOIN)
00205         IF (LIUBOS(IPOIN).EQ.KENT.OR.LIUBOS(IPOIN).EQ.KADH)
00206      &      U(IPOIN,NPLAN)=UBORS(IPOIN)
00207         IF (LIVBOS(IPOIN).EQ.KENT.OR.LIVBOS(IPOIN).EQ.KADH)
00208      &      V(IPOIN,NPLAN)=VBORS(IPOIN)
00209         IF (LIWBOS(IPOIN).EQ.KENT.OR.LIWBOS(IPOIN).EQ.KADH)
00210      &      W(IPOIN,NPLAN)=WBORS(IPOIN)
00211       ENDDO
00212 !
00213 !-----------------------------------------------------------------------
00214 !
00215       RETURN
00216       END

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