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