33 char,
char*,
long,
bool);
36 void plot(
const char *chCall)
85 fprintf(
ioQQQ,
" PLOT type=%4.4s not known. STOP\n",
116 if( strcmp(chCall,
"FIRST") == 0 )
128 fprintf(
ioQQQ,
" XMIN, XMAX=%12.4e%12.4e NFLUX=%4ld\n",
134 fprintf(
ioQQQ,
" Reflected continuum not computed when SPHERE set.\n" );
143 strcpy( chSymPlt2,
"o " );
195 strcpy( chSymPlt2,
"o " );
217 ymin =
MIN2(ymin,(
double)y[i]);
222 ymin2 =
MIN2(ymin2,(
double)y2[i]);
225 ymax =
MAX2(ymax,(
double)y[i]);
226 ymax =
MAX2(ymax,(
double)y2[i]);
232 fprintf(
ioQQQ,
" PLOT called for the first time, YMAX, MIN=%10.2e%10.2e\n",
237 ymin2 =
MAX3(ymax-5.,-35.,ymin2);
240 ymin =
MIN3(ymin2,ymin,ymax-1.);
245 ymin =
MAX2(ymin,ymax-4.);
250 fprintf(
ioQQQ,
" YMAX, MIN=%14.4e%14.4e Npnts=%4ld\n",
254 strcpy( chXtitle,
"Log(nu fnu) vs LOG(nu)" );
261 chSym = chSymPlt2[0];
278 static bool lgTlkSav;
290 if( strcmp(chCall,
"FIRST") == 0 )
315 fprintf(
ioQQQ,
" xmin, xmax=%12.4e%12.4e nmap=%4ld\n",
342 fprintf(
ioQQQ,
" PLOT called for the first time, YMAX, MIN=%10.2e%10.2e\n",
348 fprintf(
ioQQQ,
" YMAX, MIN=%14.4e%14.4e Npnts=%4ld\n",
353 strcpy( chXtitle,
"heating - cooling v te" );
385 if( strcmp(chCall,
"FIRST") == 0 )
400 fprintf(
ioQQQ,
" XMIN, XMAX=%12.4e%12.4e NFLUX=%4ld\n",
433 fprintf(
ioQQQ,
" pltopc type=%4.4s not known. STOP\n",
443 ymin =
MIN3(ymin,y[i],y2[i]);
444 ymax =
MAX3(ymax,y[i],y2[i]);
450 fprintf(
ioQQQ,
" PLOT called for the first time, YMAX, MIN=%10.2e%10.2e\n",
455 ymin =
MAX2(ymin-1.,-35.);
459 fprintf(
ioQQQ,
" YMAX, MIN=%14.4e%14.4e Npnts=%4ld\n",
463 strcpy( chXtitle,
"Log(opacity) vs log(n)" );
498 static char chPage[59][122];
509 static long int jpnt[
NDECAD],
521 static char chLab[
NDECAD][5]={
"1E-8",
"1E-7",
"1E-6",
"1E-5",
522 "1E-4",
".001",
"0.01",
" 0.1",
" 1 ",
523 " 10 ",
" 100",
"1000",
"1E4 ",
"1E5 ",
"1E6 ",
"1E7 ",
"1E8 ",
"1E9 "};
531 for( i=1; i <
IHI; i++ )
534 for( j=1; j <
IWID; j++ )
541 strcpy( chPage[1],
" " );
542 strcat( chPage[1], chXtitle );
548 yinc = (
realnum)(IHI-2)/(ymax - ymin);
551 while( i <= IHI && nc < 200 )
553 chPage[i-1][1] =
'-';
555 i = (long)(ydown + 1);
560 for( i=0; i <
IWID; i++ )
562 chPage[IHI-1][i] =
'-';
565 if( xmin < xAxisMin )
567 fprintf(
ioQQQ,
" plts: xmin is less than min value in array\n");
573 lx = (long)(4.999-fabs(xmin));
576 lx = (long)(fabs(xAxisMin)-0.001-fabs(xmin));
579 xdec = -floor(fabs(xmin)+1e-5);
584 lx = (long)
MAX2(0.,4.+xmin);
586 lx = (long)
MAX2(0.,4.+xmin);
589 lx = (long)
MAX2(0., aa-1. + xmin );
590 xdec = floor(xmin+1e-5);
594 xinc = (
realnum)(IWID-1)/(xmax - xmin);
595 i = (long)
MAX2(1.,(xdec-xmin)*xinc+1.);
598 while( i < IWID && nc < 100 )
600 chPage[IHI-2][i - 1] =
'l';
606 jpnt[lx-1] =
MAX2(0,i-3);
607 jpnt[lx-1] =
MIN2((
long)IWID-4,jpnt[lx-1]);
609 i = (long)
MAX2(1.,(xdec-xmin)*xinc+1.);
616 for( i=0; i < npnts; i++ )
618 if( (
double)x[i] > xmin && (double)x[i] < xmax )
620 iy = (long)(
IHI -
MAX2(y[i]-ymin,0.)*yinc);
622 ix = (long)((x[i] - xmin)*xinc + 1);
626 fprintf(
ioQQQ,
" x, y, ix, iy=%7.3f%7.3f%4ld%4ld\n",
627 x[i], y[i], ix, iy );
629 chPage[iy-1][ix - 1] = chSym;
636 fprintf(
ioQQQ,
"1\n" );
637 for( i=1; i <
IHI; i++ )
639 fprintf(
ioQQQ,
" %121.121s\n", chPage[i] );
643 for( i=0; i <
IWID; i++ )
648 for( i=lowx-1; i < lx; i++ )
651 strncpy(chPage[0]+jpnt[i] , chLab[i+1] , 4);
653 fprintf(
ioQQQ,
" %121.121s\n", chPage[0] );