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