lecsel.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\stbtel\lecsel.f
00002 !
00031                         SUBROUTINE LECSEL
00032 !                       *****************
00033 !
00034      &(XINIT,YINIT,IKINIT,NPINIT,NEINIT,X,Y,IKLE,IKLES,W,TITRE,TEXTE,
00035      & NVARIN,NVAR2,STD,NCOLOR,FUSION,NGEO,NFO1,IPOBO,IPARAM,DATE,
00036      & TIME)
00037 !
00038 !***********************************************************************
00039 ! PROGICIEL : STBTEL  V5.2           11/02/93    J.M. JANIN
00040 !***********************************************************************
00041 !
00042 !   FONCTION  : RECHERCHE LES NOMBRES TOTAUX DE NOEUDS ET D'ELEMENTS DU
00043 !               MAILLAGE DANS LE FICHIER D'ENTREE SELAFIN
00044 !
00045 !-----------------------------------------------------------------------
00046 !                             ARGUMENTS
00047 ! .________________.____.______________________________________________
00048 ! |      NOM       |MODE|                   ROLE
00049 ! |________________|____|______________________________________________
00050 ! | NPOIN1         |<-- | NOMBRE REEL DE POINTS DU MAILLAGE
00051 ! |                |    | (NPOIN REPRESENTE L'INDICE MAX DES NOEUDS CAR
00052 ! |                |    | SUPERTAB LAISSE DES TROUS DANS LA NUMEROTATION
00053 ! | TYPELE         |<-- | TYPE D'ELEMENTS
00054 ! |________________|____|______________________________________________
00055 ! | COMMON:        |    |
00056 ! |  GEO:          |    |
00057 ! |    MESH        |<-- | TYPE DES ELEMENTS DU MAILLAGE
00058 ! |    NDP         | -->| NOMBRE DE NOEUDS PAR ELEMENTS
00059 ! |    NPOIN       |<-- | NOMBRE TOTAL DE NOEUDS DU MAILLAGE
00060 ! |    NELEM       |<-- | NOMBRE TOTAL D'ELEMENTS DU MAILLAGE
00061 ! |    NPMAX       | -->| DIMENSION EFFECTIVE DES TABLEAUX X ET Y
00062 ! |                |    | (NPMAX = NPOIN + 0.1*NELEM)
00063 ! |    NELMAX      | -->| DIMENSION EFFECTIVE DES TABLEAUX CONCERNANT
00064 ! |                |    | LES ELEMENTS (NELMAX = NELEM + 0.2*NELEM)
00065 ! |  FICH:         |    |
00066 ! |    NRES        |--> | NUMERO DU CANAL DU FICHIER DE SERAFIN
00067 ! |    NGEO       |--> | NUMERO DU CANAL DU FICHIER MAILLEUR
00068 ! |    NLIM      |--> | NUMERO DU CANAL DU FICHIER DYNAM DE TELEMAC
00069 ! |    NFO1      |--> | NUMERO DU CANAL DU FICHIER TRIANGLE TRIGRID
00070 ! |________________|____|______________________________________________
00071 ! MODE : -->(DONNEE NON MODIFIEE), <--(RESULTAT), <-->(DONNEE MODIFIEE)
00072 !-----------------------------------------------------------------------
00073 ! APPELE PAR : HOMERE
00074 ! APPEL DE : -
00075 !***********************************************************************
00076 !
00077       IMPLICIT NONE
00078       INTEGER LNG,LU
00079       COMMON/INFO/LNG,LU
00080 !
00081       DOUBLE PRECISION XBID(1) , XINIT(*) , YINIT(*) , X(*) , Y(*)
00082 !
00083       REAL W(*)
00084 !
00085       INTEGER NGEO , NFO1,IPARAM(10),DATE(3),TIME(3)
00086       INTEGER MESH , NDP , NPOIN , NELEM , NPMAX , NELMAX
00087       INTEGER NEINIT , NPINIT, NPOIN1 , NELEM1 , NPOIN2 , NELEM2
00088       INTEGER IBID(1) , NVARIN , NVAR2 , I , IELEM , IB(10) , ISTAT
00089       INTEGER IKINIT(NELEM,NDP),IKLE(NELMAX,NDP),IKLES(NDP,NELEM)
00090       INTEGER NCOLOR(*),IPOBO(*)
00091 !
00092       LOGICAL FUSION
00093 !
00094       CHARACTER*72 CBID,TITRE
00095       CHARACTER*32 TEXTE(26)
00096       CHARACTER*3  STD
00097 !
00098 ! COMMON
00099 !
00100       COMMON/GEO/ MESH , NDP , NPOIN , NELEM , NPMAX , NELMAX
00101 !
00102 !
00103 !=======================================================================
00104 ! LECTURE SEQUENTIELLE DU PREMIER FICHIER
00105 !=======================================================================
00106 !
00107       REWIND NGEO
00108 !
00109       CALL LIT(XBID,W,IBID,TITRE,72,'CH',NGEO,STD,ISTAT)
00110       CALL LIT(XBID,W,IB  ,CBID , 2,'I ',NGEO,STD,ISTAT)
00111       NVARIN = IB(1) + IB(2)
00112       DO I=1,NVARIN
00113         CALL LIT(XBID,W,IBID,TEXTE(I),32,'CH',NGEO,STD,ISTAT)
00114       ENDDO
00115 !     LECTURE ET STOCKAGE DU TABLEAU IPARAM
00116       CALL LIT(XBID,W,IPARAM  ,CBID,10,'I ',NGEO,STD,ISTAT)
00117 !     LECTURE ET STOCKAGE DE LA DATE
00118       IF(IPARAM(10).EQ.1) THEN
00119         CALL LIT(XBID,W,IB,CBID,6,'I ',NGEO,STD,ISTAT)
00120         DATE(1)=IB(1)
00121         DATE(2)=IB(2)
00122         DATE(3)=IB(3)
00123         TIME(1)=IB(4)
00124         TIME(2)=IB(5)
00125         TIME(3)=IB(6)
00126       ENDIF
00127       CALL LIT(XBID,W,IB  ,CBID, 4,'I ',NGEO,STD,ISTAT)
00128 !
00129       NELEM1 = IB(1)
00130       NPOIN1 = IB(2)
00131 !
00132       CALL LIT(XBID,W,IKLES,CBID,NELEM1*NDP,'I ',NGEO,STD,ISTAT)
00133 !     LECTURE ET STOCKAGE DES IPOBO (KNOLG EN PARALLELISME)
00134       CALL LIT(XBID,W,IPOBO,CBID,NPOIN1,'I ',NGEO,STD,ISTAT)
00135 !     LECTURE DES COORDONNEES
00136       CALL LIT(X   ,W,IBID,CBID,NPOIN1,'R4',NGEO,STD,ISTAT)
00137       CALL LIT(Y   ,W,IBID,CBID,NPOIN1,'R4',NGEO,STD,ISTAT)
00138 !
00139 !=======================================================================
00140 ! LECTURE SEQUENTIELLE DU SECOND FICHIER EN CAS DE FUSION
00141 !=======================================================================
00142 !
00143       IF (FUSION) THEN
00144 !
00145         REWIND NFO1
00146 !
00147         CALL LIT(XBID,W,IBID,CBID,72,'CH',NFO1,STD,ISTAT)
00148         CALL LIT(XBID,W,IB  ,CBID, 2,'I ',NFO1,STD,ISTAT)
00149         NVAR2 = IB(1) + IB(2)
00150         DO I=1,NVAR2
00151           CALL LIT(XBID,W,IBID,CBID,32,'CH',NFO1,STD,ISTAT)
00152         ENDDO
00153         CALL LIT(XBID,W,IB  ,CBID,10,'I ',NFO1,STD,ISTAT)
00154         CALL LIT(XBID,W,IB  ,CBID, 4,'I ',NFO1,STD,ISTAT)
00155 !
00156         NELEM2 = IB(1)
00157         NPOIN2 = IB(2)
00158 !
00159         CALL LIT(XBID,W,IKLES(1,NELEM1+1),CBID,NELEM2*NDP,'I ',
00160      &           NFO1,STD,ISTAT)
00161         CALL LIT(XBID,W,IB,CBID, 2,'I ',NFO1,STD,ISTAT)
00162         CALL LIT(X(NPOIN1+1),W,IBID,CBID,NPOIN2,'R4',NFO1,STD,ISTAT)
00163         CALL LIT(Y(NPOIN1+1),W,IBID,CBID,NPOIN2,'R4',NFO1,STD,ISTAT)
00164 !
00165       ENDIF
00166 !
00167 !=======================================================================
00168 ! AFFECTATION DES VALEURS LUES AUX VARIABLES CONCERNEES
00169 !=======================================================================
00170 !
00171       NEINIT = NELEM
00172       NPINIT = NPOIN
00173 !
00174 !       INVERSION DE IKLES EN IKLE.
00175 !
00176       DO I = 1,NDP
00177         DO IELEM = 1,NELEM1
00178           IKLE  (IELEM,I) = IKLES(I,IELEM)
00179           IKINIT(IELEM,I) = IKLES(I,IELEM)
00180         ENDDO
00181         IF (FUSION) THEN
00182            DO IELEM = NELEM1+1,NELEM
00183              IKLE  (IELEM,I) = IKLES(I,IELEM) + NPOIN1
00184              IKINIT(IELEM,I) = IKLES(I,IELEM) + NPOIN1
00185            ENDDO
00186         ENDIF
00187       ENDDO
00188 !
00189       DO I = 1,NPOIN
00190         XINIT(I) = X(I)
00191         YINIT(I) = Y(I)
00192         NCOLOR(I) = 11
00193       ENDDO
00194 !
00195 !=======================================================================
00196 !
00197       RETURN
00198       END

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