6. Output from mcarats executable

Format

The general format of "mcarats" output file is as follows:

header

data

header

data

header

data

...

For example, see ./examples/case3/out_rs0067-f3d. A set of one header section and one data section corresponds to one definition of radiation source in the input configuration file (see ./examples/case3/conf_rs0067). Thus the number of sets of the header and data sections is equal to "nsrc" in the configuration file.

Header section

At the beginning of the output file, header information are recorded. The following is an example:

%mcarats-0.9

1 : isrc

0 : isolver

1.00000E+09 : ptot

64 64 0 0 : nx, ny, nzf, nzh

64 64 1 : nxr, nyr, nrdc

600 450 0 : nxc, nyc, ncam

513 257 0 : nxp, nyp, npot

Notations are as follows:

  • solver: radiative transfer solver; 0 for Fully 3-D (F3D) scheme, 1 for Partially-3-D (P3D) scheme, and 2 for ICA

  • ptot: total number of source photons.

  • nx, ny: numbers of x and y-grids, respectively, for fluxes and heating rates

  • nzf: number of z-grids for fluxes

  • nzh: number of z-grids for heating rates

  • nxr, nyr: numbers of x and y-grids, respectively, for radiances

  • nrdc: number of definitions of radiances

  • nxc, nyc: numbers of x and y-grids, respectively, for camera image radiances

  • ncam: number of cameras

  • nppot, nqpot: numbers of pathlength bins and FOV angle bins, respectively, for the local fluxes

  • npot: number of specifications of local flux

Fortran 77 source codes to read/write the header are provided in the package:

./src/libmcarats/getmchdr.f and ./src/libmcarats/putmchdr.f.

Data section

The data section contains five subsections for fluxes, heating rates, radiances, camera radiances, and local fluxes. Each subsections are written by codes such like the followings:

  • Flux subsection:

if (nzf .gt. 0) then

do iflx = 1, 3

write (iuo, '(a, i6)', err=101) '# iflx= ', iflx

do izf = 1, nzf

write (iuo, *) ((pflx(ix, iy, izf, iflx), ix = 1, nx), iy = 1, ny)

end do

end do

end if

  • Heating rate subsection:

if (nzh .gt. 0) then

write (iuo, '(a)', err=101) '# heating rate'

do izh = 1, nzh

write (iuo, *) ((phrt(ix, iy, izh), ix = 1, nx), iy = 1, ny)

end do

end if

  • Radiance & air mass factor) subsection:

do imom = 1, 2

do irdc = 1, nrdc

write (iuo, '(a, 2i6)', err=101) '# irdc, imom: ', irdc, imom

write (iuo, *) ((prdc(ixr, iyr, imom, irdc), ixr = 1, nxr), iyr = 1, nyr)

end do

end do

Note that prdc is radiance (imom=1) or AMF (imom=2).

  • Camera radiance subsection:

do icam = 1, ncam

write (iuo, '(a, i6)', err=101) '# icam= ', icam

write (iuo, *) ((pcam(ixc, iyc, icam), ixc = 1, nxc), iyc = 1, nyc)

end do

  • Local flux subsection:

do ipot = 1, npot

write (iuo, '(a, 2i6)', err=101) '# iopot, ipot= ', 1, ipot

write (iuo, *) ((ppot(ippot, iqpot, 1, ipot), ippot = 1, nppot), iqpot = 1, nqpot)

!// contributions from all events

write (iuo, '(a, 2i6)', err=101) '# iopot, ipot= ', 2, ipot

write (iuo, *) ((ppot(ippot, iqpot, 2, ipot), ippot = 1, nppot), iqpot = 1, nqpot)

!// contributions from source emission plus single scattering

end do

See, for example,

./examples/case3/out*.

Reading the output

The output files can be read in the same way in ./src/process/pconvert.f, for example.

Next