PAPER on ODFs


This example shows how to compute an opacity distribution function (ODF) for [M/H]=0.0 and vturb=2 km/s.

The procedure requires 4 codes: 

xnfdf.for 
dfsynthe.for 
dfsortp.for
separatedf.for

and a set of REPACKED line lists:

lowlinesdf.bin---repacked version of the binary file "lowlines.bin". It is available at:

http://kurucz.harvard.edu/LINELISTS/LINESCD/ 
For LINUX, THE NAME is: "fclowlines.bin"

highlinesdf.bin--repacked version of the binary file "highlines.bin". It is available at:
http://kurucz.harvard.edu/LINELISTS/LINESCD/ 
For LINUX, THE NAME is: "fchighlines.bin"

diatomicsdf.bin---repacked version of the binary file:
diatomicsiwl.bin

tiolinesdf.bin---repacked version of the binary file "tioschwenke.bin" available  at:
http://kurucz.harvard.edu/MOLECULES/TiO/

h2olinesdf.bin---repacked version of the binary file "h2ofastfix.bin" available at:  
http://kurucz.harvard.edu/MOLECULES/H2O/

nltelinesdf.bin---repacked version of the ascii file "nltelines.asc" available at:
http://kurucz.harvard.edu/LINELISTS/LINESCD/ 


To get repacked lines:

repacklow.for 
repacklow.com

repackhi.for 
repackhi.com 

repackdi.for 
repackdi.com 

repacktio.for 
repacktio.com 
 
repackh2o.for 
repackh2o.com 

repacknle.for 
repacknlte.com 




The XNFDF code
                                
It pretabulates the atomic and molecular number densities and continuum opacities
for 57 temperatures T and 25 Pgas values.

To compile it:

ifort -save -o xnfdf.exe xnfdf.for

To run it: 

source xnfdf.com

Input data are:

molecules.dat
pfiron.dat
continua.dat

Furthermore, there is a set of input control cards. 
They fix:

1) the values of temperature and the gas pressure for which the 
   ODF's will be tabulated 
2) the abundances for which ODF's will be computed


Output data are the two binary files:

 xnfpdf.dat
 xnfpdfmax.dat


The DFSYNTHE code 

It computes ODF's for the atomic and molecular number densities
xnfpdf.dat produced by the XNFDF code and for the 5 microturbulent
velocities 0,1,2,4, and 8 km/s.

To compile it:

ifort -save -o dfsynthe.exe dfsynthe.for

To run it:(the example is for [M/H]=0.0]

source dfp00.com
 
In dfp00.com there are 57 runs of DFSYNTHE, one for each temperature T.

Input data are for EACH RUN are:

xnfpdf.dat ---> the output from the XNFPDF code
xnfpdfmax.dat ---> the ouput from the XNFDF code
lowlinesdf.bin --->the output from the REPACKLOW code
highlinesdf.bin --->the output from the REPACKHI code
diatomicsdf.bin ---> the output from the REPACKDI code
tiolinesdf.bin ---> the output frem the REPACKTIO code
h2olinesdf.bin ---> the output from the REPACKH2O code
nltelinesdf.bin ---> the output from the REPACKNLTE code
A set of 57 switches corresponding to the 57 temperatures of the ODF table.
All the switches are  zero, except that of the temperature for the specific run, which is 1.


Otput data from EACH RUN are 5 files for 5 different microturbulent velocities vturb:

dfp00t-xxxx-vt0.bin
dfp00t-xxxx-vt1.bin
dfp00t-xxxx-vt2.bin
dfp00t-xxxx-vt4.bin
dfp00t-xxxx-vt4.bin

where -xxxx- is the temperature for the specific run.
Each file is an ODFxxxx table for the given temperature -xxxx-, a given microturbulent velocity, and 25 different Pgas.

Output data from dfp00.com are 57 X 5  ODFxxxx tables, one for each temperature and microturbulent velocity. 


The DFSORTP code

For each vturb, it rearranges each of the 57 ODFxxxx tables, which are the output from DFSYNTHE.
Each table is converted from 1540 X 25  ODFxxxx values (where 1540 are frequency points and 25 are 
the Pgas values) in 25 X 1540 ODFxxxx values. Namely, 1540 ODFxxxx for each Pgas are rearranged in
25 ODFxxxx for each frequency.  

To compile it:

ifort -o dfsortp.exe dfsortp.for

To run it:

source dfsortpvt0.com for vturb= 0 km/s
source dfsortpvt1.com for vturb= 1 km/s
source dfsortpvt2.com for vturb= 2 km/s
source dfsortpvt4.com for vturb= 4 km/s
source dfsortpvt8.com for vturb= 8 km/s

For each vturb:
  
Input data are the 57 ODFxxxx tables computed by DFSYNTHE.
Output data are 57 rearranged ODFyyyy in ascii format. 


The SEPARATEDF code

For a given vturb, it merges the 57 ODFyyyy tables in a single ODF table.
It then separates the BIG intervals ODFs from the LITTLE intervals ODFs.

To compile it:

ifort -o separatedf.exe separatedf.for

To run it:  

source separatedfvt2.com for vturb= 2.0 km/s

The input is the output from DFSORTP for vturb=2 km/seec
The output are the binary files: p00big2.bdf
                                 p00lit2.bdf