source: trunk/MESOSCALE/LMDZ.MARS/libf_gcm/bibio/readcoord.F @ 3567

Last change on this file since 3567 was 57, checked in by aslmd, 14 years ago

mineur LMD_MM_MARS: ajout du GCM ancienne physique, systeme maintenant complet sur SVN (ne manque que la base de donnees d'etats initiaux)

File size: 2.9 KB
Line 
1      SUBROUTINE readcoord(imx,jmx,lmx,imax,jmax,lmax,x,y,z,pathcoor)
2      IMPLICIT NONE
3
4c=======================================================================
5c
6c   Auteurs Jan Polcher, Frederic Hourdin
7c   -------
8c
9c   Objet   Lecture du fichier contenant des coordonnees x,y et z.
10c   -----
11c
12c   Inteface
13c   --------
14c
15c   Arguments:
16c   ----------
17c
18c   input
19c   -----
20c      imx   \
21c      jmx          dimensions des coordonnees
22c      lmx   /
23c      pathcoor     path absolu pour le fichier des coordonnees
24c                   CHARACTER*80
25c
26c   ouput
27c   -----
28c      imax         nombre de coordonnees x effectives
29c      jmax         nombre de coordonnees y effectives
30c      lmax         nombre de coordonnees z effectives
31c      x(imx)
32c      y(jmx)
33c      z(lmx)
34c
35c=======================================================================
36c-----------------------------------------------------------------------
37c   declarations:
38c   -------------
39
40c   arguments:
41c   ----------
42
43      INTEGER imx,jmx,lmx
44      INTEGER imax,jmax,lmax
45
46      REAL x(imx),y(jmx),z(lmx)
47
48      CHARACTER*80 pathcoor
49
50c   local
51c   -----
52
53      INTEGER i,j,l
54
55      CHARACTER*100 filecoor,messerr
56
57      EXTERNAL lnblnk
58      INTEGER lnblnk
59
60c-----------------------------------------------------------------------
61c   Initialisations:
62c   ----------------
63
64      messerr=' '
65      filecoor='coord.def'
66
67c-----------------------------------------------------------------------
68
69100   IF(pathcoor(1:1).EQ.'/') THEN
70         filecoor= pathcoor(:lnblnk(pathcoor))//filecoor
71      ENDIF
72      OPEN (99,file=filecoor,err=200,status='old',form='formatted')
73      GO TO 300
74
75200   WRITE(*,*) messerr
76      WRITE(*,*) 'entrer le nom du fichier des coordonnees puis RETURN'
77      WRITE(*,*) 'ou seulement RETURN pour arreter le programme'
78      READ(*,'(a)') filecoor
79      IF(filecoor(1:1).EQ.' ') STOP
80      CLOSE (99)
81      GOTO 100
82
83300   CONTINUE
84
85      READ(99,*,err=9999) imax
86      IF(imax.GT.imx) THEN
87        WRITE(6,1000) 'x',imx,imax
88        STOP
89      ENDIF
90      READ(99,*) (x(i),i=1,imax)
91
92      READ(99,*,err=9999) jmax
93      IF(jmax.GT.jmx) THEN
94        WRITE(6,1000) 'y',jmx,jmax
95        STOP
96      ENDIF
97      READ(99,*,err=9999) (y(j),j=1,jmax)
98
99      READ(99,*,err=9999) lmax
100      IF(lmax.GT.lmx) THEN
101        WRITE(6,1000) 'z',lmx,lmax
102        STOP
103      ENDIF
104      READ(99,*) (z(l),l=1,lmax)
105
106      CLOSE(99)
107
108c-----------------------------------------------------------------------
109
110      RETURN
111
1129999  PRINT*,'Le fichier ',filecoor,' que vous lisez est mal structure'
113      PRINT*,'Il doit contenir :'
114      PRINT*,'  le nombre de points en x suivi des valeurs de x'
115      PRINT*,'  puis la meme chose pour y et z'
116      STOP
117
1181000  FORMAT(/,
119     $ 'Probleme avec le fichier de coordonnees',/,
120     $ 'Le tableau contenant ',a3,' est dimenssionne a ',i4,/,
121     $ 'et le fichier de coordonnees contient ',i4,' valeurs.')
122
123      END
Note: See TracBrowser for help on using the repository browser.