isitok.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\isitok.f
00002 !
00049                      SUBROUTINE ISITOK
00050 !                    *****************
00051 !
00052      &(H,NPH,U,NPU,V,NPV,NTRAC,T,NPT,X,Y,BORNES,ARRET)
00053 !
00054 !***********************************************************************
00055 ! TELEMAC2D   V6P1                                   21/08/2010
00056 !***********************************************************************
00057 !
00058 !
00059 !
00060 !
00061 !
00062 !
00063 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00064 !| ARRET          |<--| WILL BE TRUE IF LIMITS TRESPASSED
00065 !| BORNES         |-->| LIMIT VALUES OF H,U,V,T
00066 !|                |   | IN FOLLOWING ORDER: HMIN,HMAX,UMIN,UMAX,...
00067 !| H              |-->| WATER DEPTH
00068 !| NPH            |-->| NUMBER OF POINTS OF DEPTH
00069 !| NPT            |-->| NUMBER OF POINTS FOR TRACERS
00070 !| NPU            |-->| NUMBER OF POINTS FOR U
00071 !| NPV            |-->| NUMBER OF POINTS FOR V
00072 !| NTRAC          |-->| NUMBER OF TRACERS
00073 !| T              |-->| BLOCK OF TRACERS ET NOMBRE DE POINTS DE TRACEUR.
00074 !| U              |<->| X-COMPONENT OF VELOCITY
00075 !| V              |<->| Y-COMPONENT OF VELOCITY
00076 !| X              |-->| ABSCISSAE OF POINTS IN THE MESH
00077 !| Y              |-->| ORDINATES OF POINTS IN THE MESH
00078 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00079 !
00080       USE BIEF
00081 !
00082       IMPLICIT NONE
00083 !
00084       INTEGER LNG,LU
00085       COMMON/INFO/LNG,LU
00086 !
00087 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00088 !
00089       INTEGER, INTENT(IN)          :: NPH,NPU,NPV,NPT,NTRAC
00090       LOGICAL, INTENT(INOUT)       :: ARRET
00091       DOUBLE PRECISION, INTENT(IN) :: H(NPH),U(NPU),V(NPV)
00092       DOUBLE PRECISION, INTENT(IN) :: X(*),Y(*),BORNES(8)
00093       TYPE(BIEF_OBJ)  , INTENT(IN) :: T
00094 !
00095 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00096 !
00097       INTEGER I,ITRAC
00098 !
00099 !-----------------------------------------------------------------------
00100 !
00101 !  CHECKS THE DEPTH
00102 !
00103       DO I = 1 , NPH
00104         IF(H(I).LT.BORNES(1)) THEN
00105           ARRET = .TRUE.
00106           IF(LNG.EQ.1) THEN
00107            WRITE(LU,100) 'INFERIEURE','H',I,X(I),Y(I),'H',H(I),BORNES(1)
00108           ENDIF
00109           IF(LNG.EQ.2) THEN
00110            WRITE(LU,101) 'LOWER','H',I,X(I),Y(I),'H',H(I),BORNES(1)
00111           ENDIF
00112         ENDIF
00113         IF(H(I).GT.BORNES(2)) THEN
00114           ARRET = .TRUE.
00115           IF(LNG.EQ.1) THEN
00116            WRITE(LU,100) 'SUPERIEURE','H',I,X(I),Y(I),'H',H(I),BORNES(2)
00117           ENDIF
00118           IF(LNG.EQ.2) THEN
00119            WRITE(LU,101) 'UPPER','H',I,X(I),Y(I),'H',H(I),BORNES(2)
00120           ENDIF
00121         ENDIF
00122       ENDDO ! I
00123 !
00124 !-----------------------------------------------------------------------
00125 !
00126 !  CHECKS THE VELOCITY U
00127 !
00128       DO I = 1 , NPU
00129         IF(U(I).LT.BORNES(3)) THEN
00130           ARRET = .TRUE.
00131           IF(LNG.EQ.1) THEN
00132            WRITE(LU,100) 'INFERIEURE','U',I,X(I),Y(I),'U',U(I),BORNES(3)
00133           ENDIF
00134           IF(LNG.EQ.2) THEN
00135            WRITE(LU,101) 'LOWER','U',I,X(I),Y(I),'U',U(I),BORNES(3)
00136           ENDIF
00137         ENDIF
00138         IF(U(I).GT.BORNES(4)) THEN
00139           ARRET = .TRUE.
00140           IF(LNG.EQ.1) THEN
00141            WRITE(LU,100) 'SUPERIEURE','U',I,X(I),Y(I),'U',U(I),BORNES(4)
00142           ENDIF
00143           IF(LNG.EQ.2) THEN
00144            WRITE(LU,101) 'UPPER','U',I,X(I),Y(I),'U',U(I),BORNES(4)
00145           ENDIF
00146         ENDIF
00147       ENDDO ! I
00148 !
00149 !-----------------------------------------------------------------------
00150 !
00151 !  CHECKS THE VELOCITY V
00152 !
00153       DO I = 1 , NPV
00154         IF(V(I).LT.BORNES(5)) THEN
00155           ARRET = .TRUE.
00156           IF(LNG.EQ.1) THEN
00157            WRITE(LU,100) 'INFERIEURE','V',I,X(I),Y(I),'V',V(I),BORNES(5)
00158           ENDIF
00159           IF(LNG.EQ.2) THEN
00160            WRITE(LU,101) 'LOWER','V',I,X(I),Y(I),'V',V(I),BORNES(5)
00161           ENDIF
00162         ENDIF
00163         IF(V(I).GT.BORNES(6)) THEN
00164           ARRET = .TRUE.
00165           IF(LNG.EQ.1) THEN
00166            WRITE(LU,100) 'SUPERIEURE','V',I,X(I),Y(I),'V',V(I),BORNES(6)
00167           ENDIF
00168           IF(LNG.EQ.2) THEN
00169            WRITE(LU,101) 'UPPER','V',I,X(I),Y(I),'V',V(I),BORNES(6)
00170           ENDIF
00171         ENDIF
00172       ENDDO ! I
00173 !
00174 !-----------------------------------------------------------------------
00175 !
00176 !  CHECKS THE TRACER
00177 !
00178       IF(NTRAC.GT.0) THEN
00179 !
00180       DO ITRAC=1,NTRAC
00181 !
00182       DO I = 1 , NPT
00183         IF(T%ADR(ITRAC)%P%R(I).LT.BORNES(7)) THEN
00184           ARRET = .TRUE.
00185           IF(LNG.EQ.1) THEN
00186            WRITE(LU,100) 'INFERIEURE','T',I,X(I),Y(I),
00187      &                   'T',T%ADR(ITRAC)%P%R(I),BORNES(7)
00188           ENDIF
00189           IF(LNG.EQ.2) THEN
00190            WRITE(LU,101) 'LOWER','T',I,X(I),Y(I),
00191      &                   'T',T%ADR(ITRAC)%P%R(I),BORNES(7)
00192           ENDIF
00193         ENDIF
00194         IF(T%ADR(ITRAC)%P%R(I).GT.BORNES(8)) THEN
00195           ARRET = .TRUE.
00196           IF(LNG.EQ.1) THEN
00197            WRITE(LU,100) 'SUPERIEURE','T',I,X(I),Y(I),
00198      &                   'T',T%ADR(ITRAC)%P%R(I),BORNES(8)
00199           ENDIF
00200           IF(LNG.EQ.2) THEN
00201            WRITE(LU,101) 'UPPER','T',I,X(I),Y(I),
00202      &                   'T',T%ADR(ITRAC)%P%R(I),BORNES(8)
00203           ENDIF
00204         ENDIF
00205       ENDDO
00206 !
00207       ENDDO
00208 !
00209       ENDIF
00210 !
00211 !-----------------------------------------------------------------------
00212 !
00213 100   FORMAT(/,1X,'LIMITE ',A10,' SUR ',A1,' ATTEINTE AU POINT ',I6,/,
00214      &         1X,'DE COORDONNEES ',G16.7,' ET ',G16.7,/,1X,
00215      &         A1,' VAUT : ',G16.7,' ET LA LIMITE EST :',G16.7)
00216 101   FORMAT(/,1X,A5,' LIMIT ON ',A1,' REACHED AT POINT ',I6,/,1X,
00217      &         'WITH COORDINATES',G16.7,' AND ',G16.7,/,1X,
00218      &         'THE VALUE OF ',A1,' IS ',G16.7,' THE LIMIT IS: ',G16.7)
00219 !
00220 !-----------------------------------------------------------------------
00221 !
00222       RETURN
00223       END

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