integer function an_search_dim(var, name) result(result)
use an_types, only: AN_VARIABLE, an_variable_entry, an_variable_search
use an_vartable, only: vtable_lookup
use an_file
use netcdf_f77
use dc_error
use dc_trace, only: beginsub, endsub
implicit none
type(AN_VARIABLE), intent(in):: var
character(len = *), intent(in):: name
type(an_variable_entry):: ent
integer:: stat, dimid, i
continue
call beginsub('an_search_dim', 'var=%d name=%c', i=(/var%id/), c1=trim(name))
result = nf_ebaddim
stat = vtable_lookup(var, ent)
if (stat /= NF_NOERR) goto 999
stat = nf_inq_dimid(ent%fileid, name, dimid)
if (stat /= NF_NOERR) goto 999
if (dimid == ent%dimid) then
result = 1
goto 999
endif
if (.not. associated(ent%dimids)) then
stat = gt_enomoredims
goto 999
endif
do, i = 1, size(ent%dimids)
if (ent%dimids(i) == dimid) then
result = i
goto 999
endif
enddo
999 continue
call endsub('an_search_dim', 'result=%d', i=(/result/))
return
end function