67 #       ifdef __INTEL_COMPILER 
   82 #       ifdef HAVE_POW_DOUBLE_INT 
   87 #       ifdef HAVE_POW_DOUBLE_LONG 
   92 #       ifdef HAVE_POW_FLOAT_INT 
   97 #       ifdef HAVE_POW_FLOAT_LONG 
  102 #       ifdef HAVE_POW_FLOAT_DOUBLE 
  107 #       ifdef HAVE_POW_DOUBLE_FLOAT 
  136         else if( p.
nMatch(
"ARRA") )
 
  141                         fprintf( 
ioQQQ, 
"Please use either IONIZATION or LEVEL keywords\n" );
 
  144                 else if( p.
nMatch( 
"IONI" ) )
 
  151                                         fprintf(
ioQQQ,
"An element name must appear on this PRINT ARRAYS ONLY xx command.\n");
 
  166                 else if( p.
nMatch( 
"LEVEL" ) )
 
  180                         fprintf( 
ioQQQ, 
"Please use either the IONIZATION or the LEVEL keywords\n" );
 
  185         else if( p.
nMatch(
"CITA") )
 
  197                 else if( p.
nMatch(
" OFF") )
 
  208         else if( p.
nMatch(
"DEPA") )
 
  223                 nelem = 
MAX2( nelem, ipISO );
 
  229         else if( p.
nMatch(
"CONS") )
 
  235         else if( p.
nMatch(
"ERRO") )
 
  241         else if( p.
nMatch(
"FIXI") )
 
  246         else if( p.
nMatch(
"HEAT") )
 
  252         else if( p.
nMatch(
"MODU") )
 
  258                 for (vector<module*>::iterator mi = mods.begin(); mi != mods.end(); ++mi)
 
  265         else if( p.
nMatch(
"PATH") )
 
  272         else if( p.
nMatch(
"POPU"))
 
  286                 nelem = 
MAX2(0,nelem);
 
  294                         fprintf(
ioQQQ,
"This iso-sequence (%s) and element (%s) are impossible.\n",
 
  305         else if( p.
nMatch(
"LAST") )
 
  311         else if( p.
nMatch(
"LINE") )
 
  321                 else if( p.
nMatch(
"CELL") )
 
  328                                 p.
NoNumb(
"cell for line print" );
 
  332                                 fprintf(
ioQQQ , 
"The cell number on the PRINT LINE CELL command must be positive.\n");
 
  337                 else if( p.
nMatch(
"COLL") )
 
  356                 else if( p.
nMatch(
"COLU") )
 
  384                                                 " There faintest line to print must be on this line, sorry.\n" );
 
  390                         if( a <= 0. || p.
nMatch(
" LOG") )
 
  413                 else if( p.
nMatch(
"HEAT") )
 
  419                 else if( p.
nMatch(
"INWA") )
 
  425                 else if( p.
nMatch(
" OFF") )
 
  429                         else if( p.
nMatch( 
"EMER" ) )
 
  453                                         fprintf( 
ioQQQ, 
" There must be a number for the FAINT option.  They are HEAD and ZONE.  Sorry.\n" );
 
  459                 else if( p.
nMatch(
"PRECISION"))
 
  466                                 p.
NoNumb(
"line precision");
 
  471                                                 " print line precision currently only works for up to %ld significant figures.\n",
 
  477                 else if( p.
nMatch(
"PUMP") )
 
  483                 else if( p.
nMatch(
"SORT") )
 
  506                                                 fprintf( 
ioQQQ, 
" There must be two numbers for the RANGE option, the lower and upper wavelength.  Sorry.\n" );
 
  512                                                 fprintf( 
ioQQQ, 
" The lower and upper wavelength must be positive and in the correct order.  Sorry.\n" );
 
  522                         else if( p.
nMatch(
"INTE") )
 
  531                                 fprintf( 
ioQQQ, 
"I can sort by wavelength or intensity - one must be specified.\nSorry.\n" );
 
  536                 else if( p.
nMatch(
" SUM") )
 
  559                 else if( p.
nMatch(
"CUMU") )
 
  565                 else if( p.
nMatch(
"VACUUM") )
 
  573                         fprintf( 
ioQQQ, 
"One of the keys should have appeared.  \nPlease consult Hazy.\nSorry.\n" );
 
  579         else if( p.
nMatch(
"MASE") )
 
  584         else if( p.
nMatch(
"ONLY") )
 
  589                 else if( p.
nMatch(
"HEAD") )
 
  594                         fprintf( 
ioQQQ, 
" There must be a keyword for the ONLY option.  They are HEAD and ZONE.  Sorry.\n" );
 
  599         else if( p.nMatch(
"STAR") )
 
  608                                 " The zone on which the print is to start MUST be entered on this line.  Sorry.\n" );
 
  614         else if( p.nMatch(
"CONT") )
 
  616                 if( p.nMatch(
"BLOC") )
 
  619                         fprintf(
ioQQQ , 
" PROBLEM The PRINT CONTINUUM BLOCK command has been removed.  Ignored for now.\n");
 
  621                 else if( p.nMatch(
"INDI"  ))
 
  643                         fprintf( 
ioQQQ, 
" PROBLEM PRINT CONTINUUM command is now the default, and the command has been removed.\n" );
 
  647         else if( p.nMatch(
"COOL") )
 
  659         else if( p.nMatch(
"QUIE") || (p.nMatch(
" OFF") && 
 
  660                 !p.nMatch(
"FAIN" )) )
 
  667         else if( p.nMatch(
"MACR") )
 
  673         else if( p.nMatch(
" ON ") )
 
  686         else if (p.nMatch(
"RECOMB"))
 
  692         else if( p.nMatch(
"SHOR") )
 
  700         else if( p.nMatch( 
" UTA" ) && p.nMatch( 
"REFE" ) )
 
  705         else if( p.nMatch(
"VERS") )
 
  713         else if( p.nMatch(
"ZONE") || p.nMatch(
"EVER") )
 
  717                 num1 = (
long int)p.FFmtRead();
 
  720                         fprintf( 
ioQQQ, 
" The number of zones to print MUST be entered on this line.  Sorry.\n" );
 
  739                 fprintf( 
ioQQQ, 
" There MUST be a keyword on the following line.  Sorry.\n" );
 
  740                 fprintf( 
ioQQQ, 
" The PRINT FAINT command is now the PRINT LINE FAINT command.\n" );
 
  752         fprintf(
ioQQQ,
"\n\nPhysical constants used by Cloudy, taken from physconst.h\n");
 
  758         fprintf(
ioQQQ,
"bool\t%lu\n",(
unsigned long)
sizeof(
bool));
 
  759         fprintf(
ioQQQ,
"char\t%lu\n",(
unsigned long)
sizeof(
char));
 
  761         fprintf(
ioQQQ,
"long int\t%lu\n",(
unsigned long)
sizeof(
long int));
 
  762         fprintf(
ioQQQ,
"unsigned int\t%lu\n",(
unsigned long)
sizeof(
unsigned int));
 
  765         fprintf(
ioQQQ,
"double\t%lu\n",(
unsigned long)
sizeof(
double));
 
  766         fprintf(
ioQQQ,
"double*\t%lu\n",(
unsigned long)
sizeof(
double*));
 
  769         fprintf(
ioQQQ,
"Some float constants (from float.h and cpu.h):\n");
 
  796         fprintf(
ioQQQ,
"Some integer constants (from limits.h and cpu.h):\n");
 
  814 #  if LONG_MAX > INT32_MAX 
  823 #  if ULONG_MAX > UINT32_MAX 
  824         fprintf(
ioQQQ,
"UINT64_MAX\t%lu\n", (
unsigned long) UINT64_MAX);
 
bool nMatch(const char *chKey) const 
realnum lgPrtContIndices_hi_E
bool lgPrintLineCumulative
int GetQuote(string &chLabel)
bool lgPrintLineAirWavelengths
bool lgRecom_Badnell_print
void ParsePrint(Parser &p)
static module_list & Inst()
t_elementnames elementnames
t_iso_sp iso_sp[NISO][LIMELM]
bool lgPrintBlockIntrinsic
vector< long int > IterPrnt
bool lgPrintBlockEmergent
void printDataPath() const 
bool lgSurfaceBrightness_SR
NORETURN void NoNumb(const char *chDesc) const 
long int GetElem(void) const 
diatomics h2("h2", 4100.,&hmi.H2_total, Yan_H2_CS)
STATIC void prt_constants(void)
void ParsePrtLineSum(Parser &p)
#define DEBUG_ENTRY(funcname)
void setSpecies(const string &sspec)
int fprintf(const Output &stream, const char *format,...)
realnum lgPrtContIndices_lo_E
char chElementName[LIMELM][CHARS_ELEMENT_NAME]
static const long sig_figs_max
void prt_phys_constants(FILE *io)
bool lgSortLineWavelength
STATIC void PrtMacros(void)