00001
00002
00003
00004 #include "cddefines.h"
00005 #include "radius.h"
00006 #include "colden.h"
00007 #include "h2.h"
00008 #include "mole.h"
00009 #include "atomfeii.h"
00010 #include "molcol.h"
00011
00012 void molcol(
00013 const char *chLabel,
00014
00015 FILE *ioMEAN )
00016 {
00017 long int i;
00018
00019 DEBUG_ENTRY( "molcol()" );
00020
00021 if( strcmp(chLabel,"PRIN") == 0 )
00022 {
00023
00024 fprintf( ioMEAN, "\n Log10 Column density (cm^-2)\n");
00025 fprintf( ioMEAN, " Htot :");
00026 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_HTOT])));
00027 fprintf( ioMEAN, " HII :");
00028 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_Hp])));
00029 fprintf( ioMEAN, " HI :");
00030 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_H0])));
00031 fprintf( ioMEAN, " H- :");
00032 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_HMIN])));
00033 fprintf( ioMEAN, " H2g :");
00034 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_H2g])));
00035 fprintf( ioMEAN, " H2* :");
00036 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_H2s])));
00037 fprintf( ioMEAN, " H2+ :");
00038 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_H2p])));
00039 fprintf( ioMEAN, " HeH+ :");
00040 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_HeHp] )));
00041 fprintf( ioMEAN, "\n");
00042 fprintf( ioMEAN, " H3+ :");
00043 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,colden.colden[ipCOL_H3p] )));
00044 fprintf( ioMEAN, "\n");
00045 }
00046
00047
00048 FeII_Colden( chLabel);
00049 H2_Colden( chLabel);
00050
00051 if( strcmp(chLabel,"ZERO") == 0 )
00052 {
00053
00054 for( i=0; i < mole.num_comole_calc; i++ )
00055 {
00056 COmole[i]->hevcol = 0.;
00057 }
00058 }
00059
00060 else if( strcmp(chLabel,"ADD ") == 0 )
00061 {
00062
00063 for( i=0; i < mole.num_comole_calc; i++ )
00064 {
00065 COmole[i]->hevcol += COmole[i]->hevmol*(realnum)radius.drad_x_fillfac;
00066 }
00067 }
00068
00069 else if( strcmp(chLabel,"PRIN") == 0 )
00070 {
00071
00072
00073
00074
00075 int j=0;
00076 for( i=0; i < mole.num_comole_calc; i++ )
00077 {
00078 if(COmole[i]->n_nuclei <= 1)
00079 continue;
00080
00081 if( j!=0 && j%8==0 )
00082 fprintf( ioMEAN, "\n" );
00083 fprintf( ioMEAN, " %-6.6s:", COmole[i]->label );
00084 fprintf( ioMEAN, "%7.3f",log10(MAX2(SMALLFLOAT,COmole[i]->hevcol )));
00085 j++;
00086 }
00087 fprintf( ioMEAN, "\n" );
00088 }
00089
00090 else
00091 {
00092 fprintf( ioMEAN, " molcol does not understand the label %4.4s\n",
00093 chLabel );
00094 cdEXIT(EXIT_FAILURE);
00095 }
00096 return;
00097
00098 }