Home Manual Packages Global Index Keywords Quick Reference | # functions in multi.i - M
MultiFile |
     MultiFile

    struct MultiFile {
      string f;         /* name of the file variable for this file
    		       -- no such thing as address of a file variable */
      string oname;     /* name of the opacity variable in f
    		       -- default is "opac" if present in the file */
      string ename;     /* name of the emissivity variable in f, or 0 if
    		       source function used instead
    		       -- default is "emiss" if present in the file */
      string sname;     /* name of the source function variable in f,
    		       ignored if ename!=0
    		       -- default is "srcf" if present in the file */
      double oscale;    /* scale factor for correcting opacity units */
      double escale;    /* scale factor for correcting emissivity units
    		       -- will be used to correct srcf*opac if srcf used */
      pointer zuse;     /* pointer to list of zone indices to use in this file
    		       -- If &[], all zones in this file are used.
    		       -- As a special case, if &array(0), use no zones.  */
      pointer zones;    /* list of master file zone indices for the zones which
    		       are present in this post-processing file
    		       -- The length of this list must be the same as the
    		       product of the non-spectral dimensions of the opacity
    		       and emissivity arrays, or the same length as *zuse,
    		       if that array is present.
    		       -- zones==0 means that all zones in the master file
    		       (including zeroes in the first row and column) are
    		       present in this file.  */
      /* This standard interface supports two spectral models:
         (1) Zone-centered model: Opacities and emissivities are defined as
             integrals over photon energy bins, so that the group structure
    	 is specified by a bin boundary energy list gb.
         (2) Point-centered model: Opacities and emissivities are defined at
             particular discrete photon energies, so that the group structure
    	 is specified by a photon energy list gav.
         In case (1), gav==0, and in case (2), gb==0.
         In either case, gb or gav must be a strictly increasing list of
         photon energies.  However, a single file may contain data in several
         disjoint spectral regions.  This information, together with spectral
         chunking information, is stored in the index array, nu.
      pointer gb;       /* bin boundary array list for this file */
      pointer gav;      /* photon energy array list for this file */
      pointer gexist;   /* group existence map (if gb!=0) or connection map
    		       (if gav!=0), or 0 if all groups exist or all
    		       photon energies are connected */
      pointer gx;
      /* (*gx) is a pointer to a n_spectral_regions -by- 2 array
         of extreme values of each spectral region, used to limit the
         interpolation boundaries.  (*gx)(,1) is the lower boundary,
         while (*gx)(,2) is the upper boundary.  */
      pointer nu;
      /* (*nu) is 6 -by- n_spectral_regions -by- n_chunks index array:
         (*nu)(, spectral-region, chunk)
         can be written [i1,i2,i3,i4,i5,i6] where:
         gb(i1:i2+1) or gav(i1:i2) are the bins required to compute this
              chunk in this spectral region.
    	  i1==0 if, and only if, this file make no contribution at all
    	  to this chunk in this spectral region.
         multi_gb(i3:i4) are the master bins affected by this chunk
         If i6!=0, opacity(i4+1:i5) will be extrapolated as 1/nu^3 from the
         value at gb(i6:i6+1) or gav(i6).  This will be done even if i1==0.  */
      double tscale;    /* scale factor for correcting time units */
      int noextrap;  /* 1/nu^3 extrapolation will be done unless non-zero */
      int freqfirst;  /* frequency index is last unless non-zero */
    }

    structure, defined at i/multi.i   line 629