SUBROUTINE BMF_catalog(nom,ni,istart,iend,nj,jstart,jend,nk, &
kstart,kend,time1,time2,hgrid,vgrid,dtyp,scat,ndata)
ARGUMENTS
- nom nom des variables
character*4(bmf_length)
- ni,nj,nk tailles des tableaux de destination
integer(bmf_length)
- (ijk)start indices de début des morceaux lus
integer(bmf_length)
- (ijk)end indices de fin des morceaux lus
integer(bmf_length)
- time1 timestamps 1 (yyyymmdd)
integer(bmf_length)
- time2 timestamps 2 (hhmmsscc)
integer(bmf_length)
- hgrid identificateurs des grilles
horizontales integer(bmf_length)
- vgrid identificateurs des grilles
verticales integer(bmf_length)
- dtyp types de données
integer(bmf_length)
- scat identificateur
de scatter list integer
(bmf_length)
- ndata nombre de données
dans le vecteur integer
(bmf_length)
N.B.: BMF_length correspond à la valeur de retour de la dernière
fonction bmf_gobe appelée.
DESCRIPTION
Routine qui dresse un inventaire des champs contenus en mémoire et
de leurs caractérisiques. Ces champs sont disponible pour acquisition
via la fonction bmf_get2. L'intérêt principal de cette routine
est d'obtenir la taille requise pour stocker une variable dans un tableau.
Il est possible de passer en argument un vecteur "dummy" pour les attributs.
EXEMPLE
call bmf_init
length=bmf_gobe(filename)
! NOTE pour des raisons de performance, il serait mieux ici d'appeler une
sous-routine
! avec en argument length pour dimensionner les tableaux (automatic arrays
de f90) si
! le catalogue est lu souvent. NE PAS OUBLIER de faire un deallocate quand
ces vecteurs
! ne seront plus nécessaires
allocate(ni(length))
allocate(nj(length))
allocate(nk(length))
allocate(dtyp(length))
allocate(nom(length))
allocate(time1(length))
allocate(time2(length))
allocate(ndata(length))
allocate(scrap(length))
call
bmf_catalog(nom,ni,scrap,scrap,nj,scrap,scrap,nk,
&
scrap,scrap,time1,time2,scrap,scrap,dtyp,scrap,ndata)
trouve=.false.
do i=1,length
if(nom(i).eq.'HUMI') then
trouve=.true.
allocate(humi(ni(i),nj(i),nk(i)))
endif
if(trouve) exit
enddo
call bmf_get2(.....)
call bmf_clear
deallocate(ni)
deallocate(nj)
deallocate(nk)
deallocate(dtyp)
deallocate(nom)
deallocate(time1)
deallocate(time2)
deallocate(ndata)
deallocate(scrap)
VOIR AUSSI
BMF_*
Auteur: Luc Corbeil, 6 avril 2001, 12h45
Return to RPN Libraries home page