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*64 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 mfiope(fid,'test21.med',MED_ACC_RDONLY, 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  mprnpr(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 mprpri(fid,i,nom,type,desc, 
00061      &               dtunit,npdt,cret)
00062          print *,cret
00063          if (cret .ne. 0 ) then
00064             print *,'Erreur lecture des infos'
00065             call efexit(-1)
00066          endif      
00067          print *,'- Scalaire de nom : ',nom
00068          if (type.eq.MED_FLOAT64) then
00069             print *,'  de type flottant' 
00070          else
00071             print *,'  de type entier'
00072          endif
00073          print *,'  Description associee : ',desc
00074          print *,'  Nombre de valeurs : ',npdt
00075          print *,'  Unite : ',dtunit
00076 
00077 
00078 
00079 
00080          do 20 j=1,npdt
00081             call mprcsi(fid,nom,j,numdt,numo,dt,cret)
00082             print *,cret
00083             if (cret .ne. 0 ) then
00084                print *,'Erreur infos pas de temps'
00085                call efexit(-1)
00086             endif      
00087             print *,'   Valeur ', j
00088 
00089             if (numdt.eq.MED_NO_DT) then
00090                print *,'     - Aucun pas de temps'
00091             else
00092                print *,'     - Pas de temps de numero ',numdt
00093                print *,'      de valeur : ',dt
00094             endif
00095 
00096             if (numo.eq.MED_NO_IT) then
00097                print *,'     - Aucun numero ordre'
00098             else
00099                print *,'     - Numero ordre : ',numo
00100             endif
00101 
00102             if (type.eq.MED_FLOAT64) then
00103 
00104 
00105                call mprrvr(fid,nom,numdt,numo,valr,cret)
00106                print *,cret
00107                if (cret .ne. 0 ) then
00108                   print *,'Erreur lecture valeur'
00109                   call efexit(-1)
00110                endif      
00111                print *,'     - Valeur : ',valr
00112             else
00113 
00114 
00115                call mprivr(fid,nom,numdt,numo,vali,cret)
00116                print *,cret
00117                if (cret .ne. 0 ) then
00118                   print *,'Erreur lecture valeur'
00119                   call efexit(-1)
00120                endif      
00121                print *,'     - Valeur : ',vali
00122             endif
00123 
00124  20      continue
00125 
00126  10   continue
00127 
00128 
00129 
00130       call mficlo(fid,cret)
00131       print *,cret
00132       if (cret .ne. 0 ) then
00133          print *,'Erreur fermeture du fichier'
00134          call efexit(-1)
00135       endif      
00136       print *,'Fermeture du fichier test21.med'
00137 
00138       end