all functions - 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