00001
00002
00003
00004 #include "cddefines.h"
00005 #include "cddrive.h"
00006 #include "dense.h"
00007 #include "elementnames.h"
00008 #include "h2.h"
00009 #include "save.h"
00010 #include "taulines.h"
00011 #include "molcol.h"
00012 #include "prt.h"
00013
00014 void PrtColumns(
00015
00016
00017 FILE *ioMEAN ,
00018
00019
00020
00021 const char *chType ,
00022
00023 long int ioPun )
00024 {
00025 long int i,
00026 nelem;
00027
00028 double aa;
00029
00030 DEBUG_ENTRY( "PrtColumns()" );
00031
00032 if( strcmp( chType , "PRETTY")==0 )
00033 {
00034
00035 molcol("PRIN" , ioMEAN);
00036
00037 fprintf( ioMEAN, "\n" );
00038
00039 fprintf( ioMEAN, "\n " );
00040 for( i=1; i <= 17; i++ )
00041 {
00042 fprintf( ioMEAN, "%7ld", i );
00043 }
00044 fprintf( ioMEAN, "\n\n" );
00045
00046
00047 for( nelem=0; nelem < LIMELM; nelem++ )
00048 {
00049 if( dense.lgElmtOn[nelem] )
00050 {
00051 bool lgDONE = false;
00052
00053 fprintf( ioMEAN, " %10.10s", elementnames.chElementName[nelem] );
00054
00055 i = 1;
00056 while( !lgDONE )
00057 {
00058 if( cdColm(
00059
00060
00061
00062 elementnames.chElementNameShort[nelem],
00063
00064
00065 i,
00066
00067
00068 &aa ) )
00069 TotalInsanity();
00070
00071 if( aa == 0. )
00072 {
00073 aa = -30.;
00074 }
00075 else if( aa > 0. )
00076 {
00077 aa = log10(aa);
00078 }
00079
00080 if( i == 18 )
00081 {
00082 fprintf( ioMEAN, "\n" );
00083 }
00084 fprintf( ioMEAN, "%7.3f", aa );
00085
00086
00087 ++i;
00088
00089 if( i > MAX2(3,nelem+2) )
00090 lgDONE = true;
00091
00092
00093 if( nelem==ipHYDROGEN && lgDONE )
00094 fprintf(ioMEAN," (H2) Log10 Column density (cm^-2)");
00095 }
00096
00097 fprintf( ioMEAN, "\n" );
00098 }
00099 }
00100
00101
00102
00103
00104
00105 if( nWindLine>0 )
00106 {
00107 const int nEXCIT_COL = 12;
00108
00109 string strExcit_Col[nEXCIT_COL]={
00110 "He1*","CII*","C11*","C12*","C13*","O11*","O12*","O13*","Si2*","C30*","C31*","C32*"};
00111 long int nprt = 0;
00112
00113 fprintf(ioMEAN," Exc state ");
00114 nprt = 12;
00115 for(i=0; i<nEXCIT_COL; ++i )
00116 {
00117 ASSERT( strExcit_Col[i].size() <= 4 );
00118 if( cdColm(
00119
00120
00121
00122 strExcit_Col[i].c_str(),
00123
00124 0,
00125
00126 &aa ) )
00127 TotalInsanity();
00128
00129 if( nprt > 120 )
00130 {
00131 fprintf(ioMEAN,"\n ");
00132 nprt = 0;
00133 }
00134 fprintf(ioMEAN," %s%7.3f",
00135 strExcit_Col[i].c_str(),
00136 log10(SDIV(aa) ));
00137 nprt += 14;
00138 }
00139 fprintf(ioMEAN,"\n");
00140 }
00141
00142
00143 h2.H2_Prt_column_density(ioMEAN);
00144
00145 fprintf(ioMEAN,"\n");
00146 }
00147 else if( strcmp( chType , "TABLE")==0 )
00148 {
00149 ASSERT( ioPun>=0 );
00150 if( save.lgPunHeader[ioPun] )
00151 {
00152 fprintf(ioMEAN,"#Column densities %s",
00153 mole_global.list[0]->label.c_str() );
00154 for( i=1; i < mole_global.num_calc; i++ )
00155 {
00156 fprintf(ioMEAN,"\t%s",
00157 mole_global.list[i]->label.c_str() );
00158 }
00159 fprintf(ioMEAN,"\n");
00160 save.lgPunHeader[ioPun] = false;
00161 }
00162 fprintf(ioMEAN,"%.3e",
00163 mole.species[0].column );
00164 for( i=1; i < mole_global.num_calc; i++ )
00165 {
00166 fprintf(ioMEAN,"\t%.3e",
00167 mole.species[i].column );
00168 }
00169 fprintf(ioMEAN,"\n");
00170 }
00171 else
00172 TotalInsanity();
00173 return;
00174 }