68 # ifdef __INTEL_COMPILER
83 # ifdef HAVE_POW_DOUBLE_INT
88 # ifdef HAVE_POW_DOUBLE_LONG
93 # ifdef HAVE_POW_FLOAT_INT
98 # ifdef HAVE_POW_FLOAT_LONG
103 # ifdef HAVE_POW_FLOAT_DOUBLE
108 # ifdef HAVE_POW_DOUBLE_FLOAT
137 else if( p.
nMatch(
"ARRA") )
142 fprintf(
ioQQQ,
"Please use either IONIZATION or LEVEL keywords\n" );
145 else if( p.
nMatch(
"IONI" ) )
152 fprintf(
ioQQQ,
"An element name must appear on this PRINT ARRAYS ONLY xx command.\n");
167 else if( p.
nMatch(
"LEVEL" ) )
181 fprintf(
ioQQQ,
"Please use either the IONIZATION or the LEVEL keywords\n" );
186 else if( p.
nMatch(
"CITA") )
198 else if( p.
nMatch(
" OFF") )
209 else if( p.
nMatch(
"DEPA") )
224 nelem =
MAX2( nelem, ipISO );
230 else if( p.
nMatch(
"CONS") )
236 else if( p.
nMatch(
"ERRO") )
242 else if( p.
nMatch(
"FIXI") )
247 else if( p.
nMatch(
"HEAT") )
253 else if( p.
nMatch(
"MODU") )
259 for (vector<module*>::iterator mi = mods.begin(); mi != mods.end(); ++mi)
266 else if( p.
nMatch(
"PATH") )
273 else if( p.
nMatch(
"POPU"))
287 nelem =
MAX2(0,nelem);
295 fprintf(
ioQQQ,
"This iso-sequence (%s) and element (%s) are impossible.\n",
306 else if( p.
nMatch(
"LAST") )
312 else if( p.
nMatch(
"LINE") )
322 else if( p.
nMatch(
"CELL") )
329 p.
NoNumb(
"cell for line print" );
333 fprintf(
ioQQQ ,
"The cell number on the PRINT LINE CELL command must be positive.\n");
338 else if( p.
nMatch(
"COLL") )
357 else if( p.
nMatch(
"COLU") )
385 " There faintest line to print must be on this line, sorry.\n" );
391 if( a <= 0. || p.
nMatch(
" LOG") )
414 else if( p.
nMatch(
"HEAT") )
420 else if( p.
nMatch(
"INWA") )
426 else if( p.
nMatch(
" OFF") )
430 else if( p.
nMatch(
"EMER" ) )
454 fprintf(
ioQQQ,
" There must be a number for the FAINT option. They are HEAD and ZONE. Sorry.\n" );
460 else if( p.
nMatch(
"PRECISION"))
467 p.
NoNumb(
"line precision");
472 " print line precision currently only works for up to %ld significant figures.\n",
478 else if( p.
nMatch(
"PUMP") )
484 else if( p.
nMatch(
"SORT") )
507 fprintf(
ioQQQ,
" There must be two numbers for the RANGE option, the lower and upper wavelength. Sorry.\n" );
513 fprintf(
ioQQQ,
" The lower and upper wavelength must be positive and in the correct order. Sorry.\n" );
523 else if( p.
nMatch(
"INTE") )
532 fprintf(
ioQQQ,
"I can sort by wavelength or intensity - one must be specified.\nSorry.\n" );
537 else if( p.
nMatch(
" SUM") )
560 else if( p.
nMatch(
"CUMU") )
566 else if( p.
nMatch(
"VACUUM") )
574 fprintf(
ioQQQ,
"One of the keys should have appeared. \nPlease consult Hazy.\nSorry.\n" );
580 else if( p.
nMatch(
"MASE") )
585 else if( p.
nMatch(
"ONLY") )
590 else if( p.
nMatch(
"HEAD") )
595 fprintf(
ioQQQ,
" There must be a keyword for the ONLY option. They are HEAD and ZONE. Sorry.\n" );
600 else if( p.nMatch(
"STAR") )
609 " The zone on which the print is to start MUST be entered on this line. Sorry.\n" );
615 else if( p.nMatch(
"CONT") )
617 if( p.nMatch(
"BLOC") )
620 fprintf(
ioQQQ ,
" PROBLEM The PRINT CONTINUUM BLOCK command has been removed. Ignored for now.\n");
622 else if( p.nMatch(
"INDI" ))
644 fprintf(
ioQQQ,
" PROBLEM PRINT CONTINUUM command is now the default, and the command has been removed.\n" );
648 else if( p.nMatch(
"COOL") )
660 else if( p.nMatch(
"QUIE") || (p.nMatch(
" OFF") &&
661 !p.nMatch(
"FAIN" )) )
669 else if( p.nMatch(
"MACR") )
675 else if( p.nMatch(
" ON ") )
689 else if (p.nMatch(
"RECOMB"))
695 else if( p.nMatch(
"SHOR") )
703 else if( p.nMatch(
" UTA" ) && p.nMatch(
"REFE" ) )
708 else if( p.nMatch(
"VERS") )
716 else if( p.nMatch(
"ZONE") || p.nMatch(
"EVER") )
720 num1 = (
long int)p.FFmtRead();
723 fprintf(
ioQQQ,
" The number of zones to print MUST be entered on this line. Sorry.\n" );
742 fprintf(
ioQQQ,
" There MUST be a keyword on the following line. Sorry.\n" );
743 fprintf(
ioQQQ,
" The PRINT FAINT command is now the PRINT LINE FAINT command.\n" );
755 fprintf(
ioQQQ,
"\n\nPhysical constants used by Cloudy, taken from physconst.h\n");
761 fprintf(
ioQQQ,
"bool\t%lu\n",(
unsigned long)
sizeof(
bool));
762 fprintf(
ioQQQ,
"char\t%lu\n",(
unsigned long)
sizeof(
char));
764 fprintf(
ioQQQ,
"long int\t%lu\n",(
unsigned long)
sizeof(
long int));
765 fprintf(
ioQQQ,
"unsigned int\t%lu\n",(
unsigned long)
sizeof(
unsigned int));
768 fprintf(
ioQQQ,
"double\t%lu\n",(
unsigned long)
sizeof(
double));
769 fprintf(
ioQQQ,
"double*\t%lu\n",(
unsigned long)
sizeof(
double*));
772 fprintf(
ioQQQ,
"Some float constants (from float.h and cpu.h):\n");
799 fprintf(
ioQQQ,
"Some integer constants (from limits.h and cpu.h):\n");
817 # if LONG_MAX > INT32_MAX
826 # if ULONG_MAX > UINT32_MAX
827 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)