;+ ; NAME: ; NIITRD ; ; PURPOSE: ; This procedure reads population densities from file ; (NIIT default) and places them in niit(i,k,it) where it=0 ; corresponds to starting approximation, it=niitmax to the densities ; after the last iteration. ; ; CATEGORY: ; Multi ; ; CALLING SEQUENCE: ; ; NIITRD, File ; ; INPUTS: ; File: Input file containing population densities ; Default file name is NIIT if def_ext='none', else ; niit.def_ext ; ; OUTPUTS: ; In common: ; niit(i,k,it) population density for level i, depth k, iteration it ; ; COMMON BLOCKS: ; common_multi ; ; MODIFICATION HISTORY: ; Written by: Mats Carlsson ;- pro niitrd,file @common_multi if n_params(0) eq 0 then begin if(def_ext eq 'none') then file='NIIT' else file='niit.'+def_ext endif get_lun,luniit openr,luniit,file,/f77_unformatted ; ; find number of iterations by counting records in file ; on_ioerror,end_loop niitmax=0 loop: forrd,luniit,dummy niitmax=niitmax+1 goto,loop end_loop: close,luniit if niitmax eq 0 then begin print,'no records in file' return endif niitmax=niitmax-1 ; ; read niit-file ; openr,luniit,file,/f77_unformatted niit=fltarr(nk,ndep,niitmax) dummy=fltarr(nk,ndep) forrd,luniit,dummy for it=1,niitmax do begin forrd,luniit,dummy niit(0,0,it-1)=dummy endfor free_lun,luniit return end