00001
00002
00003
00004 #include "cddefines.h"
00005 #include "dense.h"
00006 #include "ionbal.h"
00007
00008 void IonPhosi(void)
00009 {
00010 const int NDIM = ipPHOSPHORUS+1;
00011
00012 static const double dicoef[2][NDIM] = {
00013 {1.62e-3,1.09e-2,3.35e-2,3.14e-2,1.27e-2,1.47e-2,1.34e-2,2.38e-2,
00014 3.19e-2,7.13e-2,.08,.0796,.0134,.402,0.},
00015 {0.,1.20e-2,6.59e-2,6.89e-2,.187,.129,1.04,1.12,1.40,1.00,.555,
00016 1.63,.304,.298,0.}
00017 };
00018 static const double dite[2][NDIM] = {
00019 {1.25e5,1.92e5,1.89e5,1.68e5,1.38e5,1.80e6,6.90e5,5.84e5,5.17e5,
00020 6.66e5,6.00e5,5.09e5,2.91e5,2.41e7,0.},
00021 {0.,1.80e4,1.59e5,8.04e4,1.71e5,1.75e6,2.15e6,2.59e6,2.91e6,2.32e6,
00022 2.41e6,6.37e6,1.04e6,4.67e6,0.}
00023 };
00024 static const double aa[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00025 static const double bb[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00026 static const double cc[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00027 static const double dd[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00028 static const double ff[NDIM] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00029 static const double ditcrt[NDIM] = {2.2e4,1.2e4,1.4e4,1.5e4,1.4e4,2.9e5,
00030 1.3e5,1.1e5,9.0e4,9.0e4,9.0e4,8.3e4,6.0e4,5.0e6,1e20};
00031
00032 DEBUG_ENTRY( "IonPhosi()" );
00033
00034
00035
00036
00037
00038
00039
00040 if( !dense.lgElmtOn[ipPHOSPHORUS] )
00041 {
00042 return;
00043 }
00044
00045 ion_zero(ipPHOSPHORUS);
00046
00047 ion_photo(ipPHOSPHORUS,false);
00048
00049
00050 ion_collis(ipPHOSPHORUS);
00051
00052
00053 ion_recomb(false,(const double*)dicoef,(const double*)dite,ditcrt,aa,bb,cc,dd,ff,ipPHOSPHORUS);
00054
00055
00056 ion_solver(ipPHOSPHORUS,false);
00057 return;
00058 }