MED fichier
test22.f
Aller à la documentation de ce fichier.
1 C* This file is part of MED.
2 C*
3 C* COPYRIGHT (C) 1999 - 2021 EDF R&D, CEA/DEN
4 C* MED is free software: you can redistribute it and/or modify
5 C* it under the terms of the GNU Lesser General Public License as published by
6 C* the Free Software Foundation, either version 3 of the License, or
7 C* (at your option) any later version.
8 C*
9 C* MED is distributed in the hope that it will be useful,
10 C* but WITHOUT ANY WARRANTY; without even the implied warranty of
11 C* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 C* GNU Lesser General Public License for more details.
13 C*
14 C* You should have received a copy of the GNU Lesser General Public License
15 C* along with MED. If not, see <http://www.gnu.org/licenses/>.
16 C*
17 
18 C******************************************************************************
19 C* - Nom du fichier : test22.f
20 C*
21 C* - Description : lecture des valeurs scalaires numeriques dans un fichier MED
22 C ******************************************************************************
23  program test22
24 C
25  implicit none
26  include 'med.hf'
27 C
28  integer*8 fid
29  integer cret
30  character*16 dtunit
31  character*64 nom
32  character*200 desc
33  integer vali
34  real*8 valr,dt
35  integer n,npdt,i,j,type,numdt,numo
36 C
37 C Ouverture du fichier test21.med en lecture seule
38 C
39  call mfiope(fid,'test21.med',med_acc_rdonly, cret)
40  print *,cret
41  if (cret .ne. 0 ) then
42  print *,'Erreur ouverture du fichier'
43  call efexit(-1)
44  endif
45  print *,'Ouverture du fichier test21.med'
46 C
47 C Lecture du nombre de variable scalaire
48 C
49  call mprnpr(fid,n,cret)
50  print *,cret
51  if (cret .ne. 0 ) then
52  print *,'Erreur lecture du nombre de variable'
53  call efexit(-1)
54  endif
55  print *,'Nombre de variables scalaires : ',n
56 C
57 C Lecture des infos (type,description) propres
58 C a chaque variable
59 C
60  do 10 i=1,n
61  call mprpri(fid,i,nom,type,desc,
62  & dtunit,npdt,cret)
63  print *,cret
64  if (cret .ne. 0 ) then
65  print *,'Erreur lecture des infos'
66  call efexit(-1)
67  endif
68  print *,'- Scalaire de nom : ',nom
69  if (type.eq.med_float64) then
70  print *,' de type flottant'
71  else
72  print *,' de type entier'
73  endif
74  print *,' Description associee : ',desc
75  print *,' Nombre de valeurs : ',npdt
76  print *,' Unite : ',dtunit
77 C
78 C Pour chaque scalaire, on regarde les valeurs associees
79 C eventuellement a un pas de temps et/ou un numero d'ordre
80 C
81  do 20 j=1,npdt
82  call mprcsi(fid,nom,j,numdt,numo,dt,cret)
83  print *,cret
84  if (cret .ne. 0 ) then
85  print *,'Erreur infos pas de temps'
86  call efexit(-1)
87  endif
88  print *,' Valeur ', j
89 C
90  if (numdt.eq.med_no_dt) then
91  print *,' - Aucun pas de temps'
92  else
93  print *,' - Pas de temps de numero ',numdt
94  print *,' de valeur : ',dt
95  endif
96 C
97  if (numo.eq.med_no_it) then
98  print *,' - Aucun numero ordre'
99  else
100  print *,' - Numero ordre : ',numo
101  endif
102 C
103  if (type.eq.med_float64) then
104 C ** Lecture de la valeur flottante associee
105 C ** au pas de temps
106  call mprrvr(fid,nom,numdt,numo,valr,cret)
107  print *,cret
108  if (cret .ne. 0 ) then
109  print *,'Erreur lecture valeur'
110  call efexit(-1)
111  endif
112  print *,' - Valeur : ',valr
113  else
114 C ** Lecture de la valeur entiere associee
115 C ** au pas de temps
116  call mprivr(fid,nom,numdt,numo,vali,cret)
117  print *,cret
118  if (cret .ne. 0 ) then
119  print *,'Erreur lecture valeur'
120  call efexit(-1)
121  endif
122  print *,' - Valeur : ',vali
123  endif
124 C
125  20 continue
126 C
127  10 continue
128 C
129 C Fermeture du fichier
130 C
131  call mficlo(fid,cret)
132  print *,cret
133  if (cret .ne. 0 ) then
134  print *,'Erreur fermeture du fichier'
135  call efexit(-1)
136  endif
137  print *,'Fermeture du fichier test21.med'
138 C
139  end
mprnpr
subroutine mprnpr(fid, n, cret)
Cette routine permet la lecture du nombre de paramètre numérique scalaire dans un fichier.
Definition: medparameter.f:111
mficlo
subroutine mficlo(fid, cret)
Fermeture d'un fichier MED.
Definition: medfile.f:82
mprrvr
subroutine mprrvr(fid, name, numdt, numit, val, cret)
Cette routine permet la lecture de la valeur d'un paramètre numérique scalaire.
Definition: medparameter.f:75
mfiope
subroutine mfiope(fid, name, access, cret)
Ouverture d'un fichier MED.
Definition: medfile.f:42
test22
program test22
Definition: test22.f:23
mprcsi
subroutine mprcsi(fid, name, it, numdt, numit, dt, cret)
Cette routine permet la lecture des informations relatives à une étape de calcul du paramètre numériq...
Definition: medparameter.f:174
mprivr
subroutine mprivr(fid, name, numdt, numit, val, cret)
Cette routine permet la lecture de la valeur d'un paramètre numérique scalaire.
Definition: medparameter.f:93
mprpri
subroutine mprpri(fid, it, name, type, desc, dtunit, nstep, cret)
Cette routine permet la lecture des informations relatives à un paramètre scalaire via un itérateur.
Definition: medparameter.f:134
med_float64
double med_float64
Definition: med.h:337