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