-- -- Patricia Fasel -- Los Alamos National Laboratory -- 1990 August -- module InitTable (ergs, xComp, xPair, xPhot) where import GamtebType import Consts import Array--1.3 -- initialize the cross section tables -- these tables are constant, used with the energy and energy index -- in calculating probabilities ergs :: Array Indx Value ergs = array (1,numLev) (zipWith (,) [1..numLev] (map f2 erg)) where erg = [0.001, 0.0015, 0.002, 0.003, 0.004, 0.005, 0.006, 0.008, 0.01, 0.015, 0.02, 0.03, 0.04, 0.05, 0.06, 0.08, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15.0, 20.0] xComp :: Array Indx Value xComp = array (1,numLev) (zipWith (,) [1..numLev] (map f1 xc)) where xc = [0.015, 0.0296, 0.0451, 0.0717, 0.0913, 0.105, 0.115, 0.128, 0.137, 0.152, 0.160, 0.165, 0.165, 0.163, 0.160, 0.153, 0.146, 0.133, 0.122, 0.106, 0.0953, 0.0867, 0.0802, 0.0707, 0.0637, 0.0516, 0.0440, 0.0346, 0.0289, 0.025, 0.0221, 0.0181, 0.0154, 0.0114, 0.00913] xPair :: Array Indx Value xPair = array (1,numLev) (zipWith (,) [1..numLev] (map f1 xp)) where xp = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0000792, 0.000316, 0.000923, 0.00153, 0.00208, 0.00256, 0.00343, 0.00414, 0.00547, 0.00652] xPhot :: Array Indx Value xPhot = array (1,numLev) (zipWith (,) [1..numLev] (map f1 xpe)) where xpe = [2010.0, 632.0, 280.0, 87.7, 37.3, 18.9, 10.4, 4.01, 1.91, 0.489, 0.192, 0.0491, 0.0186, 0.00887, 0.00481, 0.00179, 0.000862, 0.000234, 0.0000918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] f1 :: Value -> Value f1 x = if (x < small) then nothing else log (2.2*x) f2 :: Value -> Value f2 x = if (x < small) then nothing else log x