conlit.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\sisyphe\conlit.f
00002 !
00112                      SUBROUTINE CONLIT
00113 !                    *****************
00114 !
00115      &(NBOR,AT)
00116 !
00117 !***********************************************************************
00118 ! SISYPHE   V6P3                                   01/07/2013
00119 !***********************************************************************
00120 !
00121 !
00122 !
00123 !
00124 !
00125 !
00126 !
00127 !
00128 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00129 !| NBOR           |-->| GLOBAL NUMBER OF BOUNDARY POINT
00130 !| AT             |-->| TEMPS (s)
00131 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00132 !
00133       USE BIEF
00134       USE DECLARATIONS_SISYPHE
00135       USE DECLARATIONS_TELEMAC
00136 !
00137       IMPLICIT NONE
00138       INTEGER LNG,LU
00139       COMMON/INFO/LNG,LU
00140 !
00141 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00142 !
00143       INTEGER, INTENT(IN)          :: NBOR(NPTFR)
00144       DOUBLE PRECISION, INTENT(IN) :: AT
00145 !
00146 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00147 !
00148       INTEGER I,K,IFRLIQ,IRANK
00149       INTEGER YADEB(MAXFRO)
00150 !
00151       INTEGER, EXTERNAL          :: P_IMAX
00152       DOUBLE PRECISION, EXTERNAL :: CGL
00153 !
00154 !-----------------------------------------------------------------------
00155 !
00156 !     INITIALISATION OF YADEB
00157 !
00158       IF(NFRLIQ.GE.1) THEN
00159         DO I=1,NFRLIQ
00160           YADEB(I)=0
00161         ENDDO
00162       ENDIF
00163 !
00164 !-----------------------------------------------------------------------
00165 !
00166 !     DISTRIBUTING THE (TOTAL) PRESCRIBED EVOLUTION TAKEN IN THE
00167 !     BOUNDARY CONDITIONS FILE WITH RESPECT TO FRACTIONS IN THE
00168 !     FIRST LAYER
00169 !
00170       IF(NSICLA.GT.1) THEN
00171         DO I=NSICLA,1,-1
00172           DO K=1,NPTFR
00173             EBOR%ADR(I)%P%R(K)=AVAIL(NBOR(K),1,I)*EBOR%ADR(1)%P%R(K)
00174           ENDDO
00175         ENDDO
00176       ENDIF
00177 !
00178 !-----------------------------------------------------------------------
00179 !
00180       DO  K=1,NPTFR
00181 !
00182         I = NBOR(K)
00183 !
00184 !       HERE KADH (WALL WITH NO SLIP CONDITION) IS CHANGED INTO KLOG (WALL)
00185 !
00186         IF(LIEBOR%I(K).EQ.KADH) THEN
00187           LIEBOR%I(K)= KLOG
00188         ELSEIF(LIEBOR%I(K).EQ.KENT) THEN
00189 !         WARNING !!!!!!!!!!!!!!    DYNAMITE !!!!!!!!!
00190 !         FOR COMPATIBILITY OF OLD STUDIES, LIEBOR=KENT SUPERSEDES LIQBOR=KENT
00191 !         IF BOTH ARE GIVEN AS KENT
00192           LIQBOR%I(K)= KSORT
00193         ENDIF
00194 !
00195 !       CASES WHERE WE HAVE A PRESCRIBED DISCHARGE
00196 !
00197         IF(LIQBOR%I(K).EQ.KENT) YADEB(NUMLIQ%I(K))=1
00198 !
00199 !       DIRICHLET CONDITIONS
00200 !       EITHER ON EVOLUTION OR ON SOLID DISCHARGE
00201 !
00202 !       EXAMPLE 1: IMPOSED SOLID DISCHARGE - FREE BED EVOLUTION
00203 !
00204 !       QBOR%ADR(J)%P%R(K) IS THE SOLID DISCHARGE IMPOSED AT THE BOUNDARY
00205 !       NODE K , CLASS OF SEDIMENT J, EXCLUDING VOIDS
00206 !
00207 !       LIEBOR%I(K)=KSORT
00208 !       LIQBOR%I(K)=KENT
00209 !
00210 !       QBOR%ADR(1)%P%R(K)=1.D-4
00211 !       QBOR%ADR(2)%P%R(K)=1.D-4 .....
00212 !
00213 !       EXAMPLE 2: IMPOSED BED EVOLUTON
00214 !
00215 !       LIEBOR%I(K)=KENT
00216 !       (LIQBOR%I(K)=KSORT IS DONE IN SISYPHE.F)
00217 !       IF(LIEBOR%I(K).EQ.KENT) THEN
00218 !         EBOR%ADR(1)%P%R(K)=1.D-4
00219 !         EBOR%ADR(2)%P%R(K)=1.D-4.....
00220 !       ENDIF
00221 !
00222       ENDDO
00223 !
00224 !     DEALING WITH PRESCRIBED SOLID DISCHARGES
00225 !
00226       IF(NFRLIQ.GT.0) THEN
00227         DO IFRLIQ=1,NFRLIQ
00228           IF(NCSIZE.GT.1) YADEB(IFRLIQ)=P_IMAX(YADEB(IFRLIQ))
00229           IF(YADEB(IFRLIQ).EQ.1) THEN
00230             CALL DISIMP(SOLDIS(IFRLIQ),Q2BOR,NUMLIQ%I,IFRLIQ,NSOLDIS,
00231      &                  T5,T1,
00232 !                             MASK OF LIQUID BOUNDARIES DONE IN SISYPHE
00233      &                  NPTFR,MASK%R,MESH)
00234 !
00235             IF(NSICLA.GT.1) THEN
00236               DO I=1,NSICLA
00237                 DO K=1,NPTFR
00238                   IF(NUMLIQ%I(K).EQ.IFRLIQ.AND.
00239      &               LIQBOR%I(K).EQ.KENT) THEN
00240                     QBOR%ADR(I)%P%R(K)=AVAIL(NBOR(K),1,I)*T1%R(K)
00241                   ENDIF
00242                 ENDDO
00243               ENDDO
00244             ELSE
00245               DO K=1,NPTFR
00246                 IF(NUMLIQ%I(K).EQ.IFRLIQ.AND.
00247      &             LIQBOR%I(K).EQ.KENT) THEN
00248                   QBOR%ADR(1)%P%R(K)=T1%R(K)
00249                 ENDIF
00250               ENDDO
00251             ENDIF
00252           ENDIF
00253         ENDDO
00254       ENDIF
00255 !
00256 !-----------------------------------------------------------------------
00257 !     LICBOR : BOUNDARY CONDITION FOR SEDIMENT CONCENTRATION
00258 !-----------------------------------------------------------------------
00259 !
00260       IF(SUSP) THEN
00261 !
00262         DO K=1,NPTFR
00263 !
00264 !         SO FAR LICBOR=LIEBOR (WITH KADH CHANGED INTO KLOG, SEE ABOVE,
00265 !                               BUT CAN BE CHANGED)
00266 !
00267           LICBOR%I(K) = LIEBOR%I(K)
00268 !
00269 !         ENTRANCE : IMPOSED CONCENTRATION
00270 !         -------------------------------
00271 !
00272 !         NOTE JMH: KSORT MUST BE TREATED ALSO BECAUSE SUBROUTINE DIFFIN
00273 !                   MAY CHANGE A KSORT INTO KENT, DEPENDING OF FLOW
00274 !
00275           IFRLIQ=NUMLIQ%I(K)
00276           IF(LIEBOR%I(K).EQ.KENT.OR.LIEBOR%I(K).EQ.KSORT) THEN
00277             DO I=1,NSICLA
00278               IRANK=I+(IFRLIQ-1)*NSICLA
00279               CBOR%ADR(I)%P%R(K) = CBOR_CLASSE(IRANK)
00280             ENDDO
00281           ENDIF
00282 !
00283 !         READING BOUNDARY CONDITION FILE
00284 !
00285           IF(LICBOR%I(K).EQ.KENT.AND.
00286      &                         SIS_FILES(SISLIQ)%NAME(1:1).NE.' ') THEN
00287             IF(IFRLIQ.GT.0) THEN
00288               DO I=1,NSICLA
00289                 CBOR%ADR(I)%P%R(K)=CGL(IFRLIQ,AT)/XMVS
00290               ENDDO
00291             ENDIF
00292           ENDIF
00293 !
00294         ENDDO
00295 !
00296       ENDIF
00297 !
00298 !-----------------------------------------------------------------------
00299 !
00300       RETURN
00301       END

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