MED fichier: Fichier source de test22.f

MED fichier

- Documentation MED
- Guides d'utilisation
- Guides de référence

test22.f
Aller à la documentation de ce fichier.
1 C* This file is part of MED.
2 C*
3 C* COPYRIGHT (C) 1999 - 2017 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 fid,cret
29 character*16 dtunit
30 character*64 nom
31 character*200 desc
32 integer vali
33 real*8 valr,dt
34 integer n,npdt,i,j,type,numdt,numo
35 C
36 C Ouverture du fichier test21.med en lecture seule
37 C
38 call mfiope(fid,'test21.med',med_acc_rdonly, cret)
39 print *,cret
40 if (cret .ne. 0 ) then
41 print *,'Erreur ouverture du fichier'
42 call efexit(-1)
43 endif
44 print *,'Ouverture du fichier test21.med'
45 C
46 C Lecture du nombre de variable scalaire
47 C
48 call mprnpr(fid,n,cret)
49 print *,cret
50 if (cret .ne. 0 ) then
51 print *,'Erreur lecture du nombre de variable'
52 call efexit(-1)
53 endif
54 print *,'Nombre de variables scalaires : ',n
55 C
56 C Lecture des infos (type,description) propres
57 C a chaque variable
58 C
59 do 10 i=1,n
60 call mprpri(fid,i,nom,type,desc,
61 & dtunit,npdt,cret)
62 print *,cret
63 if (cret .ne. 0 ) then
64 print *,'Erreur lecture des infos'
65 call efexit(-1)
66 endif
67 print *,'- Scalaire de nom : ',nom
68 if (type.eq.med_float64) then
69 print *,' de type flottant'
70 else
71 print *,' de type entier'
72 endif
73 print *,' Description associee : ',desc
74 print *,' Nombre de valeurs : ',npdt
75 print *,' Unite : ',dtunit
76 C
77 C Pour chaque scalaire, on regarde les valeurs associees
78 C eventuellement a un pas de temps et/ou un numero d'ordre
79 C
80 do 20 j=1,npdt
81 call mprcsi(fid,nom,j,numdt,numo,dt,cret)
82 print *,cret
83 if (cret .ne. 0 ) then
84 print *,'Erreur infos pas de temps'
85 call efexit(-1)
86 endif
87 print *,' Valeur ', j
88 C
89 if (numdt.eq.med_no_dt) then
90 print *,' - Aucun pas de temps'
91 else
92 print *,' - Pas de temps de numero ',numdt
93 print *,' de valeur : ',dt
94 endif
95 C
96 if (numo.eq.med_no_it) then
97 print *,' - Aucun numero ordre'
98 else
99 print *,' - Numero ordre : ',numo
100 endif
101 C
102 if (type.eq.med_float64) then
103 C ** Lecture de la valeur flottante associee
104 C ** au pas de temps
105 call mprrvr(fid,nom,numdt,numo,valr,cret)
106 print *,cret
107 if (cret .ne. 0 ) then
108 print *,'Erreur lecture valeur'
109 call efexit(-1)
110 endif
111 print *,' - Valeur : ',valr
112 else
113 C ** Lecture de la valeur entiere associee
114 C ** au pas de temps
115 call mprivr(fid,nom,numdt,numo,vali,cret)
116 print *,cret
117 if (cret .ne. 0 ) then
118 print *,'Erreur lecture valeur'
119 call efexit(-1)
120 endif
121 print *,' - Valeur : ',vali
122 endif
123 C
124 20 continue
125 C
126 10 continue
127 C
128 C Fermeture du fichier
129 C
130 call mficlo(fid,cret)
131 print *,cret
132 if (cret .ne. 0 ) then
133 print *,'Erreur fermeture du fichier'
134 call efexit(-1)
135 endif
136 print *,'Fermeture du fichier test21.med'
137 C
138 end
med_float64
double med_float64
Definition: med.h:330
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:128
mficlo
subroutine mficlo(fid, cret)
Fermeture d'un fichier MED.
Definition: medfile.f:80
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:89
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:106
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:72
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 séquence de calcul du paramètre numé...
Definition: medparameter.f:166
mfiope
subroutine mfiope(fid, name, access, cret)
Ouverture d'un fichier MED.
Definition: medfile.f:41