BMF

(BMF_catalog)



SUBROUTINE BMF_catalog(nom,ni,istart,iend,nj,jstart,jend,nk, &
kstart,kend,time1,time2,hgrid,vgrid,dtyp,scat,ndata)

ARGUMENTS

nom variable name character*4(bmf_length) O
ni,nj,nk Size of needed arrays integer(bmf_length) O
(ijk)start starting position of read chunks integer(bmf_length) O
(ijk)end last position of read chunks integer(bmf_length) O
time1 timestamp 1 (yyyymmdd) integer(bmf_length) O
time2 timestamp 2 (hhmmsscc) integer(bmf_length) O
hgrid Horizontal grid flag integer(bmf_length) O
vgrid Vertical grid flag integer(bmf_length) O
dtyp Data type integer(bmf_length) O
scat Scatter list flag integer(bmf_length) O
ndata Number of read words integer (bmf_length) O
N.B.: BMF_length corresponds to the return value of the last bmf_gobe invoked

DESCRIPTION

Subroutine which lists all fields read with bmf_gobe and their attributes. Those fields can be retrieved via bmf_get2. The main goal of this subroutine is to find the size needed to stock a field in an array.


EXEMPLE

call bmf_init
   length=bmf_gobe(filename)

   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)


SEE ALSO

BMF_*


Author: Luc Corbeil, April 6 2001, 12h45


Return to RPN Librairies home page