inisel.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\stbtel\inisel.f
00002 !
00031                         SUBROUTINE INISEL
00032 !                       *****************
00033 !
00034      &(NPOIN1,TYPELE,STD,NSFOND,FUSION,IHAUT,NGEO,NFO1)
00035 !
00036 !***********************************************************************
00037 ! PROGICIEL : STBTEL  V5.2           11/02/93    J.M. JANIN
00038 !***********************************************************************
00039 !
00040 !   FONCTION  : RECHERCHE LES NOMBRES TOTAUX DE NOEUDS ET D'ELEMENTS DU
00041 !               MAILLAGE DANS LE FICHIER D'ENTREE SELAFIN
00042 !
00043 !-----------------------------------------------------------------------
00044 !                             ARGUMENTS
00045 ! .________________.____.______________________________________________
00046 ! |      NOM       |MODE|                   ROLE
00047 ! |________________|____|______________________________________________
00048 ! | NPOIN1         |<-- | NOMBRE REEL DE POINTS DU MAILLAGE
00049 ! |                |    | (NPOIN REPRESENTE L'INDICE MAX DES NOEUDS CAR
00050 ! |                |    | SUPERTAB LAISSE DES TROUS DANS LA NUMEROTATION
00051 ! | TYPELE         |<-- | TYPE D'ELEMENTS
00052 ! | IHAUT          |<-- | NUMERO DE LA VARIABLE HAUTEUR D'EAU
00053 ! |________________|____|______________________________________________
00054 ! | COMMON:        |    |
00055 ! |  GEO:          |    |
00056 ! |    MESH        |<-- | TYPE DES ELEMENTS DU MAILLAGE
00057 ! |    NDP         | -->| NOMBRE DE NOEUDS PAR ELEMENTS
00058 ! |    NPOIN       |<-- | NOMBRE TOTAL DE NOEUDS DU MAILLAGE
00059 ! |    NELEM       |<-- | NOMBRE TOTAL D'ELEMENTS DU MAILLAGE
00060 ! |    NPMAX       | -->| DIMENSION EFFECTIVE DES TABLEAUX X ET Y
00061 ! |                |    | (NPMAX = NPOIN + 0.1*NELEM)
00062 ! |    NELMAX      | -->| DIMENSION EFFECTIVE DES TABLEAUX CONCERNANT
00063 ! |                |    | LES ELEMENTS (NELMAX = NELEM + 0.2*NELEM)
00064 ! |  FICH:         |    |
00065 ! |    NRES        |--> | NUMERO DU CANAL DU FICHIER DE SERAFIN
00066 ! |    NGEO        |--> | NUMERO DU CANAL DU FICHIER MAILLEUR
00067 ! |    NLIM        |--> | NUMERO DU CANAL DU FICHIER DYNAM DE TELEMAC
00068 ! |    NFO1        |--> | NUMERO DU CANAL DU FICHIER TRIANGLE TRIGRID
00069 ! |________________|____|______________________________________________
00070 ! MODE : -->(DONNEE NON MODIFIEE), <--(RESULTAT), <-->(DONNEE MODIFIEE)
00071 !-----------------------------------------------------------------------
00072 ! APPELE PAR : HOMERE
00073 ! APPEL DE : -
00074 !***********************************************************************
00075 !
00076       IMPLICIT NONE
00077       INTEGER LNG,LU
00078       COMMON/INFO/LNG,LU
00079 !
00080       DOUBLE PRECISION XBID(1)
00081 !
00082       REAL WBID(1)
00083 !
00084       INTEGER NGEO , NFO1
00085       INTEGER MESH , NDP , NPOIN , NELEM , NPMAX , NELMAX
00086       INTEGER IBID(1) , NVAR , I , IB(10) , ISTAT , NPOIN1 , NSFOND
00087       INTEGER IHAUT
00088 !
00089       LOGICAL FUSION
00090 !
00091       CHARACTER*72 CBID
00092       CHARACTER*32 NOMVAR
00093       CHARACTER*11 TYPELE
00094       CHARACTER*3  STD
00095 !
00096 ! COMMON
00097 !
00098       COMMON/GEO/ MESH , NDP , NPOIN , NELEM , NPMAX , NELMAX
00099 !
00100 !
00101 !=======================================================================
00102 ! INITIALISATION
00103 !=======================================================================
00104 !
00105       REWIND NGEO
00106 !
00107 !=======================================================================
00108 ! LECTURE SEQUENTIELLE DU FICHIER ET RECHERCHE ENREGISTREMENT 5
00109 !=======================================================================
00110 !
00111       CALL LIT(XBID,WBID,IBID,CBID,72,'CH',NGEO,STD,ISTAT)
00112       CALL LIT(XBID,WBID,IB  ,CBID, 2,'I ',NGEO,STD,ISTAT)
00113       NVAR = IB(1) + IB(2)
00114       IHAUT = 0
00115       DO I=1,NVAR
00116         CALL LIT(XBID,WBID,IBID,NOMVAR,32,'CH',NGEO,STD,ISTAT)
00117         IF( NOMVAR(1:16) .EQ. 'FOND            ' .OR.
00118      &      NOMVAR(1:16) .EQ. 'BOTTOM          ' ) NSFOND = I
00119         IF( NOMVAR(1:16) .EQ. 'HAUTEUR D''EAU   ' .OR.
00120      &      NOMVAR(1:16) .EQ. 'WATER DEPTH     ' ) IHAUT = I
00121       ENDDO
00122       CALL LIT(XBID,WBID,IB  ,CBID,10,'I ',NGEO,STD,ISTAT)
00123 !
00124 !     CORRECTION JMH 07/03/2001
00125 !
00126 !     CAS OU IL Y A UNE DATE DANS LE FICHIER
00127       IF(IB(10).EQ.1) THEN
00128         CALL LIT(XBID,WBID,IB  ,CBID,6,'I ',NGEO,STD,ISTAT)
00129       ENDIF
00130 !
00131 !     FIN CORRECTION JMH 07/03/2001
00132 !
00133       CALL LIT(XBID,WBID,IB  ,CBID, 4,'I ',NGEO,STD,ISTAT)
00134 !
00135 !=======================================================================
00136 ! AFFECTATION DES VALEURS LUES AUX VARIABLES CONCERNEES
00137 !=======================================================================
00138 !
00139       NELEM = IB(1)
00140       NPOIN = IB(2)
00141       NDP   = IB(3)
00142       NPOIN1= NPOIN
00143 !
00144 !=======================================================================
00145 ! LECTURE SEQUENTIELLE DU SECOND FICHIER EN CAS DE FUSION
00146 !=======================================================================
00147 !
00148       IF (FUSION) THEN
00149 !
00150         REWIND NFO1
00151 !
00152         CALL LIT(XBID,WBID,IBID,CBID,72,'CH',NFO1,STD,ISTAT)
00153         CALL LIT(XBID,WBID,IB  ,CBID, 2,'I ',NFO1,STD,ISTAT)
00154         NVAR = IB(1) + IB(2)
00155         DO I=1,NVAR
00156           CALL LIT(XBID,WBID,IBID,NOMVAR,32,'CH',NFO1,STD,ISTAT)
00157         ENDDO
00158         CALL LIT(XBID,WBID,IB  ,CBID,10,'I ',NFO1,STD,ISTAT)
00159         CALL LIT(XBID,WBID,IB  ,CBID, 4,'I ',NFO1,STD,ISTAT)
00160 !
00161         NELEM = NELEM + IB(1)
00162         NPOIN = NPOIN + IB(2)
00163 !
00164         IF (NDP.NE.IB(3)) THEN
00165           IF (LNG.EQ.1) WRITE(LU,130)
00166           IF (LNG.EQ.2) WRITE(LU,3130)
00167  130      FORMAT(' INISEL : TYPES DE MAILLAGE HETEROGENES')
00168  3130     FORMAT(' INISEL : TYPES OF MESH INHOMOGENEOUS')
00169           CALL PLANTE(1)
00170           STOP
00171         ENDIF
00172 !
00173       ENDIF
00174 !
00175 !=======================================================================
00176 ! MISE DES VALEURS DE MESH AU STANDARD TELEMAC
00177 !=======================================================================
00178 !
00179       IF (NDP.EQ.4) THEN
00180         MESH = 2
00181         TYPELE = 'QUADRANGLES'
00182       ELSEIF (NDP.EQ.3) THEN
00183         MESH = 3
00184         TYPELE = 'TRIANGLES  '
00185       ELSE
00186         IF (LNG.EQ.1) WRITE(LU,140) MESH
00187         IF (LNG.EQ.2) WRITE(LU,3140) MESH
00188  140    FORMAT(
00189 ' INISEL : TYPE DE MAILLAGE NON PREVU DANS TELEMAC,     &           MESH = ',I4)
00190  3140   FORMAT(
00191 ' INISEL : TYPE OF MESH NOT AVAILABLE IN TELEMAC,     &           MESH = ',I4)
00192         CALL PLANTE(1)
00193         STOP
00194       ENDIF
00195 !
00196       RETURN
00197       END

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