homere_stbtel.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\stbtel\homere_stbtel.f
00002 !
00076                         PROGRAM HOMERE_STBTEL
00077 !                       *********************
00078 !
00079 !***********************************************************************
00080 !  STBTEL VERSION 7.0     19/02/2009   J-M HERVOUET (LNH) 01 30 87 80 18
00081 !
00082 !***********************************************************************
00083 !
00084 !     FONCTIONS:
00085 !     ==========
00086 !
00087 ! 1)  ACQUISITION DE TOUTES LES DONNEES NECESSAIRES
00088 !     AU CALCUL DES POINTEURS: FICHIER CAS + PARTIELLEMENT LA GEOMETRIE
00089 !
00090 ! 2)  APPEL DU SOUS-PROGRAMME STBTEL.
00091 !
00092 !
00093 !-----------------------------------------------------------------------
00094 !
00095 ! SOUS-PROGRAMMES APPELES : LECDON , POINT , STBTEL
00096 !
00097 !**********************************************************************
00098 !
00099 !     USE BIEF
00100       USE DECLARATIONS_TELEMAC
00101       USE DECLARATIONS_STBTEL
00102 !
00103       IMPLICIT NONE
00104       INTEGER     LNG,LU
00105       COMMON/INFO/LNG,LU
00106 !
00107       INTEGER TDEB,TFIN
00108 !
00109       CHARACTER(LEN=24), PARAMETER :: CODE='STBTEL                  '
00110 !
00111       INTEGER  TIME_IN_SECONDS
00112       EXTERNAL TIME_IN_SECONDS
00113 !
00114       INTEGER NPOIN1,NELMAX,NPMAX,NPOIN,NELEM,MESH,NDP
00115 !
00116       INTEGER NSFOND ,NFOND(5)
00117 !
00118       CHARACTER(LEN=11) TYPELE
00119       CHARACTER(LEN=80) TITRE
00120       CHARACTER(LEN=6) PRECIS
00121 !
00122       COMMON/GEO/ MESH , NDP , NPOIN , NELEM , NPMAX , NELMAX
00123 !
00124 !======================================================================
00125 !
00126       INTEGER NCSIZE,NCAR,IPID
00127       CHARACTER*250 FORTXY(50)
00128       CHARACTER(LEN=250) PATH
00129       NGEO=1
00130       NCLE=2
00131       NCAS=3
00132       NLIM=7
00133       NRES=8
00134       NSOU=11
00135       NIMP=12
00136       NFRC=20
00137       NFON=23
00138       NFO1=26
00139       NFO2=27
00140       NINP=28
00141       NOUT=29
00142       NBND=30
00143       NLOG=31
00144       NOBND=32
00145       NOLOG=33
00146       NOMGEO=' '
00147       NOMFO1=' '
00148       NOMFO2=' '
00149       NOMFON=' '
00150       NOMIMP=' '
00151       NOMSOU=' '
00152       NOMFRC=' '
00153       NOMFOR=' '
00154       NOMCAS=' '
00155       NOMLIM=' '
00156       NOMRES=' '
00157       INFILE=' '
00158       OUTFILE=' '
00159       BOUNDFILE=' '
00160       LOGFILE=' '
00161       OUTBNDFILE=' '
00162       OUTLOGFILE=' '
00163       CALL P_INIT(PATH,NCAR,IPID,NCSIZE)
00164       CALL READ_CONFIG(LNG,LU,PATH,NCAR)
00165       FORTXY(NGEO) ='FORT.1'
00166       FORTXY(NCLE) ='STBDICO'
00167       FORTXY(NCAS) ='STBCAS'
00168       FORTXY(NLIM) ='FORT.7'
00169       FORTXY(NRES) ='FORT.8'
00170       FORTXY(NSOU) ='FORT.11'
00171       FORTXY(NIMP) ='FORT.12'
00172       FORTXY(NFRC) ='FORT.20'
00173       FORTXY(NFON) ='FORT.23'
00174       FORTXY(NFO1) ='FORT.26'
00175       FORTXY(NFO2) ='FORT.27'
00176       FORTXY(NINP) ='STBINP'
00177       FORTXY(NOUT) ='STBOUT'
00178       FORTXY(NBND) ='STBBND'
00179       FORTXY(NLOG) ='STBLOG'
00180       FORTXY(NOBND) ='STBOBD'
00181       FORTXY(NOLOG) ='STBOLG'
00182 !
00183       TDEB = TIME_IN_SECONDS()
00184 !
00185 !     ENTETE SUR LISTING
00186 !
00187       IF(LNG.EQ.1) WRITE(LU,100)
00188       IF(LNG.EQ.2) WRITE(LU,101)
00189       WRITE(LU,102)
00190 100   FORMAT(/////,1X,'LISTING DE STBTEL ',78('-'))
00191 101   FORMAT(/////,1X,'LISTING OF STBTEL ',78('-'))
00192 102   FORMAT(/////,
00193      &14X,'   SSSSS  TTTTT  BBBB   TTTTT  EEEEE  L    ',/,
00194      &14X,'   S        T    B   B    T    E      L    ',/,
00195      &14X,'   SSSSS    T    BBBB     T    EEEE   L    ',/,
00196      &14X,'       S    T    B   B    T    E      L    ',/,
00197      &14X,'   SSSSS    T    BBBB     T    EEEEE  LLLLL',//,
00198      &14X,'            VERSION 7.0  FORTRAN 90                 ',/////)
00199 !
00200 !=======================================================================
00201 ! LECTURE DU FICHIER CAS
00202 !=======================================================================
00203 !
00204       OPEN(NCLE , FILE=FORTXY(NCLE) , FORM='FORMATTED'  ,ACTION='READ')
00205       OPEN(NCAS , FILE=FORTXY(NCAS) , FORM='FORMATTED'  ,ACTION='READ')
00206       CALL LECDON_STBTEL
00207 ! CHECK IF WE SWITCH TO THE CONVERTER PROGRAM
00208       IF(CONVER) THEN
00209         IF (BOUNDFILE.EQ.' ')  FORTXY(NBND) = ' '
00210         IF (LOGFILE.EQ.' ')    FORTXY(NLOG) = ' '
00211         IF (OUTBNDFILE.EQ.' ') FORTXY(NOBND) = ' '
00212         IF (OUTLOGFILE.EQ.' ') FORTXY(NOLOG) = ' '
00213         CALL CONVERTER(FORTXY(NINP),FORTXY(NLOG),FORTXY(NBND),
00214      &                 FORTXY(NOUT),FORTXY(NOLOG),FORTXY(NOBND))
00215         ! GO TO THE END OF STBTEL
00216         GOTO 666
00217       ENDIF
00218 !
00219 !     LE FICHIER UNIVERSEL EST DE TYPE BINAIRE OU FORMATE
00220 !
00221       IF(MAILLE.EQ.'SIMAIL'.OR.MAILLE.EQ.'SELAFIN') THEN
00222         OPEN(NGEO,FILE='FORT.1' , FORM='UNFORMATTED')
00223       ELSE
00224         OPEN(NGEO,FILE='FORT.1' , FORM='FORMATTED')
00225       ENDIF
00226 !
00227 !=======================================================================
00228 ! OUVERTURE DES FICHIERS
00229 !=======================================================================
00230 !
00231       IF(NOMLIM(1:1).NE.' ') THEN
00232         OPEN(NLIM , FILE=FORTXY(NLIM),FORM='FORMATTED',ACTION='WRITE')
00233       ENDIF
00234 !
00235       IF(NOMRES(1:1).NE.' ') THEN
00236         OPEN(NRES,FILE=FORTXY(NRES),
00237      &       FORM='UNFORMATTED',ACTION='READWRITE')
00238       ENDIF
00239 !
00240       IF(NOMSOU(1:1).NE.' ') THEN
00241         OPEN(NSOU,FILE=FORTXY(NSOU),FORM='FORMATTED',ACTION='READWRITE')
00242       ENDIF
00243 !
00244       IF(NOMIMP(1:1).NE.' ') THEN
00245         OPEN(NIMP,FILE=FORTXY(NIMP),FORM='FORMATTED',ACTION='READ')
00246       ENDIF
00247 !
00248       IF(NOMFRC(1:1).NE.' ') THEN
00249         OPEN(NFRC,FILE=FORTXY(NFRC),FORM='FORMATTED',ACTION='READ')
00250       ENDIF
00251 !
00252       IF(NOMFON(1:1).NE.' ') THEN
00253         OPEN(NFON,FILE=FORTXY(NFON),FORM='FORMATTED',ACTION='READ')
00254       ENDIF
00255 !
00256       IF(NOMFO1(1:1).NE.' ') THEN
00257         OPEN(NFO1,FILE=FORTXY(NFO1),FORM='FORMATTED',ACTION='READ')
00258       ENDIF
00259 !
00260       IF(NOMFO2(1:1).NE.' ') THEN
00261         OPEN(NFO2,FILE=FORTXY(NFO2),FORM='FORMATTED',ACTION='READ')
00262       ENDIF
00263 !
00264 !
00265 !
00266       IF(NOMFO1(1:1).NE.' '.AND.MAILLE.EQ.'SELAFIN') THEN
00267 !       POUR SELAFIN : NFO1 EST BINAIRE
00268         CLOSE(NFO1)
00269         OPEN (NFO1, FILE='FORT.26',FORM='UNFORMATTED',ACTION='READ')
00270       ENDIF
00271 !
00272 ! CANAUX DU FICHIER FOND1 ET SUIVANTS
00273 !
00274       IF(NBFOND.NE.0) THEN
00275         NFOND(1) = 23
00276         NFOND(2) = 27
00277         NFOND(3) = 12
00278         NFOND(4) = 11
00279         NFOND(5) = 20
00280       ENDIF
00281 !
00282 !=======================================================================
00283 ! INITIALISATION : RECHERCHE DES NOMBRES DE POINTS , D'ELEMENTS ET
00284 !                  DU TYPE DES ELEMENTS
00285 !=======================================================================
00286 !
00287 ! INITIALISATION DE LA LONGUEUR DU TABLEAU NOP5 A 1
00288 !
00289       INOP5 = 1
00290       NSFOND = 0
00291 !
00292       IF (MAILLE.EQ.'SELAFIN') THEN
00293         CALL INISEL (NPOIN1,TYPELE,STD,NSFOND,FUSION,IHAUT,
00294      &                NGEO , NFO1)
00295       ELSEIF (MAILLE.EQ.'TRIGRID') THEN
00296         CALL INITRI (NPOIN1,TYPELE,NGEO,NFO1)
00297       ELSEIF (MAILLE.EQ.'FASTTABS') THEN
00298         CALL INIFAS (TYPELE,NGEO)
00299       ELSEIF (MAILLE.EQ.'SIMAIL') THEN
00300         CALL INISIM (NPOIN1,TYPELE,INOP5,NGEO)
00301       ELSEIF (MAILLE.EQ.'ADCIRC') THEN
00302         CALL INIADC (NPOIN1,TYPELE,NSFOND,IHAUT,NGEO,TITRE)
00303       ELSE
00304         CALL INISTB (NPOIN1,TYPELE,MAILLE,PRECIS,NGEO,
00305      &                NSEC2,NSEC11,NSEC12)
00306       ENDIF
00307 !
00308 !=======================================================================
00309 ! DEFINITION DES POINTEURS
00310 !=======================================================================
00311 !
00312       CALL POINT_STBTEL
00313 !
00314 !=======================================================================
00315 ! APPEL DU PROGRAMME GENERAL
00316 !=======================================================================
00317 !
00318       CALL STBTEL(NPOIN1,TYPELE,NFOND,PRECIS,NSFOND,TITRE)
00319 !
00320 !=======================================================================
00321 ! FERMETURE DES FICHIERS
00322 !=======================================================================
00323 !
00324       CLOSE(NGEO)
00325       CLOSE(NCLE)
00326       CLOSE(NCAS)
00327       IF(NOMLIM(1:1).NE.' ') CLOSE(NLIM)
00328       IF(NOMRES(1:1).NE.' ') CLOSE(NRES)
00329       IF(NOMSOU(1:1).NE.' ') CLOSE(NSOU)
00330       IF(NOMIMP(1:1).NE.' ') CLOSE(NIMP)
00331       IF(NOMFRC(1:1).NE.' ') CLOSE(NFRC)
00332       IF(NOMFON(1:1).NE.' ') CLOSE(NFON)
00333       IF(NOMFO1(1:1).NE.' ') CLOSE(NFO1)
00334       IF(NOMFO2(1:1).NE.' ') CLOSE(NFO2)
00335 !
00336 !-----------------------------------------------------------------------
00337 !
00338       IF(LNG.EQ.1) WRITE(LU,10)
00339       IF(LNG.EQ.2) WRITE(LU,11)
00340 10    FORMAT(1X,///,1X,'FIN NORMALE DU PROGRAMME',///)
00341 11    FORMAT(1X,///,1X,'CORRECT END OF RUN',///)
00342 !
00343 !-----------------------------------------------------------------------
00344 !
00345 666   TFIN = TIME_IN_SECONDS()
00346       IF(LNG.EQ.1) THEN
00347         WRITE(LU,*) 'DUREE DU CALCUL : ',TFIN-TDEB,' SECONDES'
00348       ENDIF
00349       IF(LNG.EQ.2) THEN
00350         WRITE(LU,*) 'COMPUTER TIME: ',TFIN-TDEB,' SECONDS'
00351       ENDIF
00352       CALL P_EXIT()
00353 !
00354 !-----------------------------------------------------------------------
00355 !
00356       STOP 0
00357       END

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