00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 program test22
00024
00025 implicit none
00026 include 'med.hf'
00027
00028 integer fid,cret
00029 character*16 dtunit
00030 character*32 nom
00031 character*200 desc
00032 integer vali
00033 real*8 valr,dt
00034 integer n,npdt,i,j,type,numdt,numo
00035
00036
00037
00038 call efouvr(fid,'test21.med',MED_LECTURE,cret)
00039 print *,cret
00040 if (cret .ne. 0 ) then
00041 print *,'Erreur ouverture du fichier'
00042 call efexit(-1)
00043 endif
00044 print *,'Ouverture du fichier test21.med'
00045
00046
00047
00048 call efnsca(fid,n,cret)
00049 print *,cret
00050 if (cret .ne. 0 ) then
00051 print *,'Erreur lecture du nombre de variable'
00052 call efexit(-1)
00053 endif
00054 print *,'Nombre de variables scalaires : ',n
00055
00056
00057
00058
00059 do 10 i=1,n
00060 call efscai(fid,i,nom,type,desc,cret)
00061 print *,cret
00062 if (cret .ne. 0 ) then
00063 print *,'Erreur lecture des infos'
00064 call efexit(-1)
00065 endif
00066 print *,'- Scalaire de nom : ',nom
00067 if (type.eq.MED_FLOAT64) then
00068 print *,' de type flottant'
00069 else
00070 print *,' de type entier'
00071 endif
00072 print *,' Description associee : ',desc
00073
00074
00075
00076
00077 call efnspd(fid,nom,npdt,cret)
00078 if (cret .ne. 0 ) then
00079 print *,'Erreur lecture du nombre de pas de temps'
00080 call efexit(-1)
00081 endif
00082 print *,cret
00083 print *,' Nombre de valeurs : ',npdt
00084
00085 do 20 j=1,npdt
00086 call efspdi(fid,nom,j,numdt,dtunit,dt,numo,cret)
00087 print *,cret
00088 if (cret .ne. 0 ) then
00089 print *,'Erreur infos pas de temps'
00090 call efexit(-1)
00091 endif
00092 print *,' Valeur ', j
00093
00094 if (numdt.eq.MED_NOPDT) then
00095 print *,' - Aucun pas de temps'
00096 else
00097 print *,' - Pas de temps de numero ',numdt
00098 print *,' de valeur : ',dt
00099 print *,' unite : ',dtunit
00100 endif
00101
00102 if (numo.eq.MED_NONOR) then
00103 print *,' - Aucun numero ordre'
00104 else
00105 print *,' - Numero ordre : ',numo
00106 endif
00107
00108 if (type.eq.MED_FLOAT64) then
00109
00110
00111 call efscfl(fid,nom,valr,numdt,numo,cret)
00112 print *,cret
00113 if (cret .ne. 0 ) then
00114 print *,'Erreur lecture valeur'
00115 call efexit(-1)
00116 endif
00117 print *,' - Valeur : ',valr
00118 else
00119
00120
00121 call efscel(fid,nom,vali,numdt,numo,cret)
00122 print *,cret
00123 if (cret .ne. 0 ) then
00124 print *,'Erreur lecture valeur'
00125 call efexit(-1)
00126 endif
00127 print *,' - Valeur : ',vali
00128 endif
00129
00130 20 continue
00131
00132 10 continue
00133
00134
00135
00136 call efferm(fid,cret)
00137 print *,cret
00138 if (cret .ne. 0 ) then
00139 print *,'Erreur fermeture du fichier'
00140 call efexit(-1)
00141 endif
00142 print *,'Fermeture du fichier test21.med'
00143
00144 end