118 if( strcmp(chCall,
"FIRST") == 0 )
130 fprintf(
ioQQQ,
" XMIN, XMAX=%12.4e%12.4e NFLUX=%4ld\n",
131 xmin, xmax,
rfield.nflux );
136 fprintf(
ioQQQ,
" Reflected continuum not computed when SPHERE set.\n" );
145 strcpy( chSymPlt2,
"o " );
149 for( i=0; i <
rfield.nflux; i++ )
151 if( (
double)
rfield.anulog[i] > xmin && (
double)
rfield.anulog[i] < xmax )
153 if( strcmp(
plotCom.chPType[np],
"CONT") == 0 )
164 else if( strcmp(
plotCom.chPType[np],
"CPHT") == 0 )
174 else if( strcmp(
plotCom.chPType[np],
"REFL") == 0 )
181 else if( strcmp(
plotCom.chPType[np],
"EMIT") == 0 )
191 else if( strcmp(
plotCom.chPType[np],
"OUTW") == 0 )
197 strcpy( chSymPlt2,
"o " );
199 opac.opacity_abs[i],1e-37));
201 else if( strcmp(
plotCom.chPType[np],
"DIFF") == 0 )
208 else if( strcmp(
plotCom.chPType[np],
"CRAW") == 0 )
219 ymin =
MIN2(ymin,(
double)y[i]);
224 ymin2 =
MIN2(ymin2,(
double)y2[i]);
227 ymax =
MAX2(ymax,(
double)y[i]);
228 ymax =
MAX2(ymax,(
double)y2[i]);
234 fprintf(
ioQQQ,
" PLOT called for the first time, YMAX, MIN=%10.2e%10.2e\n",
239 ymin2 =
MAX3(ymax-5.,-35.,ymin2);
242 ymin =
MIN3(ymin2,ymin,ymax-1.);
245 if( strcmp(
plotCom.chPType[np],
"EMIT") == 0 )
247 ymin =
MAX2(ymin,ymax-4.);
252 fprintf(
ioQQQ,
" YMAX, MIN=%14.4e%14.4e Npnts=%4ld\n",
256 strcpy( chXtitle,
"Log(nu fnu) vs LOG(nu)" );
263 chSym = chSymPlt2[0];
280 static bool lgTlkSav;
292 if( strcmp(chCall,
"FIRST") == 0 )
299 hcmap.lgMapBeingDone =
true;
305 for( i=0; i <
hcmap.nmap; i++ )
317 fprintf(
ioQQQ,
" xmin, xmax=%12.4e%12.4e nmap=%4ld\n",
318 xmin, xmax,
hcmap.nmap );
324 for( i=0; i <
hcmap.nmap; i++ )
326 if( (
double)
hcmap.temap[i] > xmin && (
double)
hcmap.temap[i] < xmax )
330 if(
hcmap.cmap[i] > -34. )
344 fprintf(
ioQQQ,
" PLOT called for the first time, YMAX, MIN=%10.2e%10.2e\n",
350 fprintf(
ioQQQ,
" YMAX, MIN=%14.4e%14.4e Npnts=%4ld\n",
351 ymax, ymin,
hcmap.nmap );
355 strcpy( chXtitle,
"heating - cooling v te" );
358 chXtitle,1,
plotCom.lgPltTrace[np]);
363 chXtitle,3,
plotCom.lgPltTrace[np]);
387 if( strcmp(chCall,
"FIRST") == 0 )
402 fprintf(
ioQQQ,
" XMIN, XMAX=%12.4e%12.4e NFLUX=%4ld\n",
403 xmin, xmax,
rfield.nflux );
409 for( i=0; i <
rfield.nflux; i++ )
411 if( strcmp(
plotCom.chPType[np],
"OPAA") == 0 )
414 arg1 =
opac.opacity_abs_savzon1[i];
415 arg2 =
opac.opacity_abs[i];
418 else if( strcmp(
plotCom.chPType[np],
"OPAS") == 0 )
421 arg1 =
opac.opacity_sct_savzon1[i];
422 arg2 =
opac.opacity_sct[i];
425 else if( strcmp(
plotCom.chPType[np],
"OPAT") == 0 )
428 arg1 =
opac.opacity_abs_savzon1[i] +
opac.opacity_sct_savzon1[i];
429 arg2 =
opac.opacity_abs[i] +
opac.opacity_sct[i];
435 fprintf(
ioQQQ,
" pltopc type=%4.4s not known. STOP\n",
443 if( (
double)
rfield.anulog[i] > xmin && (
double)
rfield.anulog[i] < xmax )
445 ymin =
MIN3(ymin,y[i],y2[i]);
446 ymax =
MAX3(ymax,y[i],y2[i]);
452 fprintf(
ioQQQ,
" PLOT called for the first time, YMAX, MIN=%10.2e%10.2e\n",
457 ymin =
MAX2(ymin-1.,-35.);
461 fprintf(
ioQQQ,
" YMAX, MIN=%14.4e%14.4e Npnts=%4ld\n",
462 ymax, ymin,
rfield.nflux );
465 strcpy( chXtitle,
"Log(opacity) vs log(n)" );
500 static char chPage[59][122];
511 static long int jpnt[
NDECAD],
523 static char chLab[
NDECAD][5]={
"1E-8",
"1E-7",
"1E-6",
"1E-5",
524 "1E-4",
".001",
"0.01",
" 0.1",
" 1 ",
525 " 10 ",
" 100",
"1000",
"1E4 ",
"1E5 ",
"1E6 ",
"1E7 ",
"1E8 ",
"1E9 "};
533 for( i=1; i <
IHI; i++ )
536 for( j=1; j <
IWID; j++ )
543 strcpy( chPage[1],
" " );
544 strcat( chPage[1], chXtitle );
545 strcat( chPage[1],
input.chTitle );
553 while( i <=
IHI && nc < 200 )
555 chPage[i-1][1] =
'-';
557 i = (long)(ydown + 1);
562 for( i=0; i <
IWID; i++ )
564 chPage[
IHI-1][i] =
'-';
567 if( xmin < xAxisMin )
569 fprintf(
ioQQQ,
" plts: xmin is less than min value in array\n");
575 lx = (long)(4.999-fabs(xmin));
578 lx = (long)(fabs(xAxisMin)-0.001-fabs(xmin));
581 xdec = -floor(fabs(xmin)+1e-5);
586 lx = (long)
MAX2(0.,4.+xmin);
588 lx = (long)
MAX2(0.,4.+xmin);
591 lx = (long)
MAX2(0., aa-1. + xmin );
592 xdec = floor(xmin+1e-5);
597 i = (long)
MAX2(1.,(xdec-xmin)*xinc+1.);
600 while( i <
IWID && nc < 100 )
602 chPage[
IHI-2][i - 1] =
'l';
608 jpnt[lx-1] =
MAX2(0,i-3);
609 jpnt[lx-1] =
MIN2((
long)
IWID-4,jpnt[lx-1]);
611 i = (long)
MAX2(1.,(xdec-xmin)*xinc+1.);
618 for( i=0; i < npnts; i++ )
620 if( (
double)x[i] > xmin && (
double)x[i] < xmax )
622 iy = (long)(
IHI -
MAX2(y[i]-ymin,0.)*yinc);
624 ix = (long)((x[i] - xmin)*xinc + 1);
628 fprintf(
ioQQQ,
" x, y, ix, iy=%7.3f%7.3f%4ld%4ld\n",
629 x[i], y[i], ix, iy );
631 chPage[iy-1][ix - 1] = chSym;
638 fprintf(
ioQQQ,
"1\n" );
639 for( i=1; i <
IHI; i++ )
641 fprintf(
ioQQQ,
" %121.121s\n", chPage[i] );
645 for( i=0; i <
IWID; i++ )
650 for( i=lowx-1; i < lx; i++ )
653 strncpy(chPage[0]+jpnt[i] , chLab[i+1] , 4);
655 fprintf(
ioQQQ,
" %121.121s\n", chPage[0] );
STATIC void pltr(realnum[], realnum[], long, double, double, double, double, char, char *, long, bool)