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)