The TELEMAC-MASCARET system  trunk
projec.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE projec
3 ! *****************
4 !
5  &(x , y , zf , xrelv , yrelv , zrelv , nbat ,
6  & nbor , nptfr , nfond , nbfond , fond , dm ,
7  & fontri , cortri , maille,ngeo,kp1bor)
8 !
9 !***********************************************************************
10 ! PROGICIEL : STBTEL V5.2 24/04/91 J-C GALLAND (LNH)
11 ! 09/11/94 P LANG / TRIGRID (LHF)
12 ! 07/96 P CHAILLET / FASTTABS (LHF)
13 !***********************************************************************
14 !
15 ! FONCTION : INTERPOLATION DES FONDS SUR LE MAILLAGE
16 !
17 !----------------------------------------------------------------------
18 ! ARGUMENTS
19 ! .________________.____.______________________________________________
20 ! | NOM |MODE| ROLE
21 ! |________________|____|______________________________________________
22 ! | X,Y | -->| COORDONNEES DES POINTS DU MAILLAGE
23 ! | ZF |<-- | COTES DU FOND
24 ! | XRELV,YRELV | -->| COORDONNEES DES POINTS DE BATHY
25 ! | ZRELV | -->| COTES DES POINTS DE BATHY
26 ! | NBAT | -->| NOMBRE DE POINTS DE BATHY
27 ! | NBOR | -->| NUMEROTATION DES ELEMENTS DE BORD
28 ! | NPTFR | -->| NOMBRE DE POINTS FRONTIERE
29 ! | NFOND | -->| CANAUX DES FICHIERS DES FONDS
30 ! | NBFOND | -->| NOMBRE DE FICHIERS FONDS DONNES PAR
31 ! | | | L'UTILISATEUR (5 MAXI)
32 ! | FOND | -->| NOM DES FICHIERS DES FONDS
33 ! | DM | -->| DISTANCE MINIMALE A LA FRONTIERE
34 ! | | | POUR L'INTERPOLATION DES FONDS
35 ! | FONTRI | -->| INDICATEUR DE LECTURE DES FONDS DANS TRIGRID
36 ! | CORTRI | -->| CORRECTION DES FONDS POUR TRIGRID
37 ! | MAILLE | -->| NOM DU MAILLEUR UTILISE
38 ! | | |
39 ! | COMMON: | |
40 ! | GEO: | |
41 ! | MESH | -->| TYPE DES ELEMENTS DU MAILLAGE
42 ! | NDP | -->| NOMBRE DE NOEUDS PAR ELEMENTS
43 ! | NPOIN | -->| NOMBRE TOTAL DE NOEUDS DU MAILLAGE
44 ! | NELEM | -->| NOMBRE TOTAL D'ELEMENTS DU MAILLAGE
45 ! | NPMAX | -->| DIMENSION EFFECTIVE DES TABLEAUX X ET Y
46 ! | | | (NPMAX = NPOIN + 0.1*NELEM)
47 ! | NELMAX | -->| DIMENSION EFFECTIVE DES TABLEAUX CONCERNANT
48 ! | | | LES ELEMENTS (NELMAX = NELEM + 0.2*NELEM)
49 ! | | |
50 ! |________________|____|______________________________________________
51 ! MODE : -->(DONNEE NON MODIFIEE), <--(RESULTAT), <-->(DONNEE MODIFIEE)
52 !----------------------------------------------------------------------
53 !
54 ! APPELE PAR : STBTEL
55 ! APPEL DE : LECFON, FASP
56 !
57 !**********************************************************************
58 !
60  USE declarations_stbtel, ONLY: npoin
61  USE interface_stbtel, ex_projec => projec
62  IMPLICIT NONE
63 !
64  INTEGER, INTENT(IN) :: NPTFR, NBAT, NBFOND
65  INTEGER, INTENT(IN) :: NFOND(*) , NBOR(nptfr,2)
66  INTEGER, INTENT(IN) :: NGEO, KP1BOR(nptfr)
67  DOUBLE PRECISION, INTENT(INOUT) :: XRELV(*) , YRELV(*) , ZRELV(*)
68  DOUBLE PRECISION, INTENT(IN) :: X(*) , Y(*) , DM
69  DOUBLE PRECISION, INTENT(IN) :: CORTRI
70  DOUBLE PRECISION, INTENT(INOUT) :: ZF(*)
71  CHARACTER(LEN=72), INTENT(IN) :: FOND(nbfond)
72  CHARACTER(LEN=9), INTENT(IN) :: MAILLE
73  LOGICAL, INTENT(IN) :: FONTRI
74 !
75  INTEGER I , NPT , IVOIS
76  INTEGER NP(5)
77  DOUBLE PRECISION DIST , DIST2
78 !
79 !=======================================================================
80 ! LECTURE DES FICHIERS DES FONDS
81 !=======================================================================
82 !
83  CALL lecfon (xrelv,yrelv,zrelv,nbat,nfond,nbfond,np,npt,
84  & fontri,cortri,maille,ngeo)
85 !
86  IF (.NOT.fontri) THEN
87  IF (nbfond.NE.0) WRITE(lu,4000)
88 !
89  DO i = 1,nbfond
90  WRITE(lu,4100) i,fond(i),i,np(i)
91  ENDDO
92  ENDIF
93 !
94 !=======================================================================
95 ! DETERMINATION DE LA COTE DU FOND AU POINT I PAR INTERPOLATION
96 ! SUR LES POINTS NON EXTERIEURS AU DOMAINE
97 !=======================================================================
98 !
99  CALL fasp (x,y,zf,npoin,xrelv,yrelv,zrelv,npt,nbor,kp1bor,
100  & nptfr,dm)
101 !
102 !=======================================================================
103 ! CERTAINS POINTS N'ONT PU ETRE TRAITES PAR FASP FAUTE DE DONNEES
104 ! LEUR PROFONDEUR A ETE MISE A -1.E6
105 ! ON AFFECTE A CES POINTS LA PROFONDEUR DE LEUR PLUS PROCHE VOISIN.
106 !=======================================================================
107 !
108  DO i=1,npoin
109  IF(zf(i).LT.-0.9d6) THEN
110  dist = 1.d12
111  DO ivois = 1 , npoin
112  dist2 = ( x(i)-x(ivois) )**2 + ( y(i)-y(ivois) )**2
113  IF(dist2.LT.dist.AND.zf(ivois).GT.-0.9d6) THEN
114  dist = dist2
115  zf(i) = zf(ivois)
116  ENDIF
117  ENDDO
118  WRITE(lu,4200) i,x(i),y(i),zf(i)
119  ENDIF
120  ENDDO
121 !
122 !-----------------------------------------------------------------------
123 !
124  4000 FORMAT(//,1x,'INTERPOLATION OF BOTTOM TOPOGRAPHY FROM :',/,
125  & 1x,'-----------------------------------------',/)
126  4100 FORMAT(1x,'BOTTOM ',i1,' : ',a72,/,
127  & 1x,'NUMBER OF POINTS READ IN THE BOTTOM TOPOGRAPHY FILE ',
128  & i1,' : ',i6,/)
129  4200 FORMAT('POINT : ',i5,' X = ',f10.1,' Y = ',f10.1,
130  & ' NO DATA , ZF : ',f8.2)
131 !
132  RETURN
133  END
subroutine projec(X, Y, ZF, XRELV, YRELV, ZRELV, NBAT, NBOR, NPTFR, NFOND, NBFOND, FOND, DM, FONTRI, CORTRI, MAILLE, NGEO, KP1BOR)
Definition: projec.f:9
subroutine fasp(X, Y, ZF, NPOIN, XRELV, YRELV, ZRELV, NP, NBOR, KP1BOR, NPTFR, DM)
Definition: fasp.f:7
subroutine fond(ZF, X, Y, NPOIN, NFON, NBOR, KP1BOR, NPTFR)
Definition: fond.f:7
subroutine lecfon(XRELV, YRELV, ZRELV, NBAT, NFOND, NBFOND, NP, NPT, FONTRI, CORTRI, MAILLE, NGEO)
Definition: lecfon.f:8