更新日: 2024年11月8日


III. 複素関数による垂直共振器モード解析(2)

5. Cプログラム

1997年にSELの遠視野像を測定してミルククラウンを見つた時に、何とか垂直共振器のモード解析を完結させたいと感じました。この思いはずっと心の奥底にあったのですが、FTTH用受光素子の開発、知財戦略担当、技術戦略(という名の下で開発途上品を見込み顧客に売込む仕事)に忙殺され、研究開発に従事した20年に匹敵する18年の歳月が流れました。2015年になって定年まであと2年になると、いわゆる窓際族の仲間入りです。会社で自由に使える時間ができたので、やり残した解析を仕上げて退職講演のネタにしようと思い立ちました。

5.1 FORTRANからCへの移植

18年の歳月はプログラミングにとって無駄ではありませんでした。1999年に制定されたC言語規格C99で複素数型が導入され、2015年にはCで何のストレスもなく複素数型と複素関数が使えるようになっていたのです。こうなればFORTRANをCに移植するのは造作もないことで、そのコードref2.cを以下に示します。一方、ハードウエアとしてはSun WSの時代は過ぎ去り、Windows上の開発環境であるMinGWを使ってCをコンパイルしました。MinGWはコンパイル結果を*.exeファイルにしてくれます。因みに本稿執筆時には、Ubuntu上で動作確認をしています。

$ gcc ref2.c -o ref2_c -lm  # -lmはUbuntuで<math.h>を読込むのに必要なオプション
$ ./ref2_c
コードの表示にはPrism.jsを使用しています。
prism.cssの設定は団塊爺ちゃんの備忘録を参考にしました。

/*
---------------------------------------------------------
Calculation of phase condition for a vertical cavity
* Converted from REF2.F of FORTRAN version.
* In REF2.F, GAB_LOG = LOG(ABS(CG)) where LOG means ln.
  Here chaged to gab_dB = 20.0*log10(cabs(cg)).

        i=0,1,2,...,nc(QW),nc+1,...,nl
          <--------------------------> light

since 2015/8/18
by K. Matsuda
---------------------------------------------------------
*/

/* header files */
#include <stdio.h>
#include <complex.h>
#include <math.h>

/* macros */
#define N_ARY 150

/* main */
int main(void){
	int     spflg, nl, nc, i, imax, i_wl;
//          (spflg: =0 for s-wave, =1 for p-wave)
	double  wl, tht0, wl_s, wl_e, dwl, dn, wlin, tht1, tht2;
	double  phi1, gab_dB, gph, ss, t1, t2, tt;
	double  n[N_ARY], l[N_ARY], a[N_ARY], nw[N_ARY];
	double complex  crr, cr, cwk1, cwk2, cwk3, crr1, crr2, cg;
	double complex  cn[N_ARY];
	FILE    *fp;
	char    *ifname = "ref_read.tsv";
	char    *ofname = "ref2_out.tsv";

	printf("start\n");
	printf("reading...\n");
	fp = fopen(ifname, "r");
	if(fp == NULL){
		printf("Error: cannot open the file '%s'\n", ifname);
		return -1;
	}
	fscanf(fp, "%lf\t%lf\t%d\n", &wl, &tht0, &spflg);
	fscanf(fp, "%d\t%d\n", &nl, &nc);
	fscanf(fp, "%lf\n", &n[0]);
	for(i=1; i<nl+1; i++){
		fscanf(fp, "%lf\t%lf\t%lf\n", &n[i], &l[i], &a[i]);
	}
	fscanf(fp, "%lf\n", &n[nl+1]);
	fscanf(fp, "%lf\t%lf\t%lf\n", &wl_s, &wl_e, &dwl);
	fscanf(fp, "%lf\n", &dn);
	fclose(fp);

	printf("calc...\n");
	fp = fopen(ofname, "w");
	if(spflg == 0){
		fprintf(fp, "dn\ttht0\tS-wave\n");
	}else{
		fprintf(fp, "dn\ttht0\tP-wave\n");
	}
	fprintf(fp, "%9.3e\t%6.3f\n", dn, tht0);
	fprintf(fp, "wavelength\tgab_dB\tgph\tss\tt1\tt2\ttt\n");

	tht0 = tht0*M_PI/180.0;
	for(i=1; i<nl+1; i++){
		if(l[i]<5.0){
			l[i] = wl*l[i]/n[i];
		}
	}
	imax = (int)(wl_e - wl_s)/dwl;

	for(i_wl=0; i_wl<imax+1; i_wl++){
		wlin = wl_s + i_wl*dwl;
		nw[0] = (n[0] - 7.4e-4*(wlin-wl))*(1.0 + dn);
		cn[0] = nw[0] + I*0.0;
		for(i=1; i<nl; i++){
			nw[i] = (n[i] - 7.4e-4*(wlin - wl))*(1.0 + dn);
			cn[i] = nw[i] - I*(a[i]*(wlin/1.0e7)/(4.0*M_PI));
		}
		nw[nl] = n[nl] - 7.4e-4*(wlin-wl);
		cn[nl] = nw[nl] - I*(a[nl]*(wlin/1.0e7)/(4.0*M_PI));
		nw[nl+1] = n[nl+1];
		cn[nl+1] = nw[nl+1] + I*0.0;

		crr = 0.0 + I*0.0;
		for(i=0; i<nc; i++){
			tht1 = asin(sin(tht0)*nw[0]/nw[i]);
			tht2 = asin(sin(tht0)*nw[0]/nw[i+1]);
			if(spflg == 0){
				cr = (cn[i+1]*cos(tht2) - cn[i]*cos(tht1))/
					 (cn[i+1]*cos(tht2) + cn[i]*cos(tht1));
			}else{
				cr = (cn[i]*cos(tht2) - cn[i+1]*cos(tht1))/
					 (cn[i]*cos(tht2) + cn[i+1]*cos(tht1));
			}
			if(i == 0){
				crr = cr;
			}else{
				cwk3 = I*4.0*M_PI*cn[i]*l[i]*cos(tht1)/wlin;
				cwk1 = cr + crr*cexp(cwk3);
				cwk2 = 1.0 + cr*crr*cexp(cwk3);
				crr = cwk1/cwk2;
			}
		}
		crr1 = crr;

		crr = 0.0 + I*0.0;
		for(i=0; i<nl-nc+1; i++){
			tht1 = asin(sin(tht0)*nw[0]/nw[nl-i+1]);
			tht2 = asin(sin(tht0)*nw[0]/nw[nl-i]);
			if(spflg == 0){
				cr = (cn[nl-i]*cos(tht2) - cn[nl-i+1]*cos(tht1))/
					 (cn[nl-i]*cos(tht2) + cn[nl-i+1]*cos(tht1));
			}else{
				cr = (cn[nl-i+1]*cos(tht2) - cn[nl-i]*cos(tht1))/
					 (cn[nl-i+1]*cos(tht2) + cn[nl-i]*cos(tht1));
			}
			if(i == 0){
				crr = cr;
			}else{
				cwk3 = I*4.0*M_PI*cn[nl-i+1]*l[nl-i+1]*cos(tht1)/wlin;
				cwk1 = cr + crr*cexp(cwk3);
				cwk2 = 1.0 + cr*crr*cexp(cwk3);
				crr = cwk1/cwk2;
			}
		}
		crr2 = crr;

		tht1 = asin(sin(tht0)*nw[0]/nw[nc]);
		phi1 = 4.0*M_PI*nw[nc]*l[nc]*cos(tht1)/wlin;
		cg = 1.0/(crr1*crr2*cexp(I*phi1));
		gab_dB = 20.0*log10(cabs(cg));
		gph = carg(cg);
		ss = cabs(cpow(1.0/(1.0 - 1.0/cg), 2.0));
		t1 = 1.0 - cabs(cpow(crr1, 2.0));
		t2 = 1.0 - cabs(cpow(crr2, 2.0));
		tt = t1*t2*ss;
		fprintf(fp, "%9.4f\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\n",
				wlin, gab_dB, gph, ss, t1, t2, tt);
	}
	fclose(fp);
	printf("end.\n");
	return 0;
}

複素数型は"double complex"で宣言し、複素指数関数はcexp()です。「4.2 REF2.Fの逐行解説」で書いた「LOGが実は自然対数」という件に関しては、133行目で常用対数log10()を取って20倍したデシベル表示をgab_dBとしました。因みに20*log10()はLOG()に対して20*log10(e)(≒8.6859)倍になります。出力ファイルをCSVからTSVに変更してファイル名をref2_out.tsvにしていますが、「4.3 数値解析の結果」に示したREF.OUTと同じ条件で得られた計算結果を以下に示します。波長980nmで比較すると、3.59153e-03は0.41350E-03の8.6857倍なので、数値計算の精度において両者で同じ結果が得られています。


dn	tht0	S-wave
0.000e+00	 0.000
wavelength	gab_dB	gph	ss	t1	t2	tt
 980.0000	 3.59153e-03	-9.58746e-02	 1.08917e+02	 6.40416e-04	 1.86342e-04	 1.29978e-05
 980.0100	 3.62159e-03	-9.52844e-02	 1.10270e+02	 6.40412e-04	 1.93266e-04	 1.36481e-05
 980.0200	 3.66794e-03	-9.46932e-02	 1.11651e+02	 6.40408e-04	 2.03940e-04	 1.45822e-05
 980.0300	 3.73388e-03	-9.41005e-02	 1.13061e+02	 6.40405e-04	 2.19123e-04	 1.58656e-05
 980.0400	 3.82444e-03	-9.35057e-02	 1.14504e+02	 6.40402e-04	 2.39974e-04	 1.75970e-05
 980.0500	 3.94724e-03	-9.29082e-02	 1.15982e+02	 6.40398e-04	 2.68247e-04	 1.99240e-05
 980.0600	 4.11380e-03	-9.23075e-02	 1.17498e+02	 6.40396e-04	 3.06589e-04	 2.30693e-05
 980.0700	 4.34173e-03	-9.17028e-02	 1.19054e+02	 6.40393e-04	 3.59057e-04	 2.73750e-05
 980.0800	 4.65845e-03	-9.10936e-02	 1.20654e+02	 6.40390e-04	 4.31958e-04	 3.33756e-05
 980.0900	 5.10719e-03	-9.04801e-02	 1.22300e+02	 6.40388e-04	 5.35237e-04	 4.19196e-05
 980.1000	 5.75592e-03	-8.98643e-02	 1.23989e+02	 6.40386e-04	 6.84525e-04	 5.43518e-05
 980.1100	 6.70642e-03	-8.92534e-02	 1.25702e+02	 6.40385e-04	 9.03212e-04	 7.27063e-05
 980.1200	 8.08281e-03	-8.86676e-02	 1.27383e+02	 6.40383e-04	 1.21980e-03	 9.95038e-05
 980.1300	 9.91876e-03	-8.81519e-02	 1.28897e+02	 6.40382e-04	 1.64194e-03	 1.35531e-04
 980.1400	 1.17950e-02	-8.77717e-02	 1.30033e+02	 6.40381e-04	 2.07317e-03	 1.72635e-04
 980.1500	 1.25686e-02	-8.75284e-02	 1.30764e+02	 6.40380e-04	 2.25090e-03	 1.88488e-04
 980.1600	 1.15446e-02	-8.72705e-02	 1.31528e+02	 6.40379e-04	 2.01562e-03	 1.69770e-04
 980.1700	 9.61507e-03	-8.68662e-02	 1.32734e+02	 6.40379e-04	 1.57213e-03	 1.33631e-04
 980.1800	 7.83998e-03	-8.63355e-02	 1.34349e+02	 6.40378e-04	 1.16396e-03	 1.00141e-04
 980.1900	 6.53615e-03	-8.57438e-02	 1.36193e+02	 6.40378e-04	 8.64047e-04	 7.53578e-05
 980.2000	 5.64000e-03	-8.51314e-02	 1.38146e+02	 6.40379e-04	 6.57859e-04	 5.81981e-05
 980.2100	 5.02768e-03	-8.45157e-02	 1.40157e+02	 6.40379e-04	 5.16948e-04	 4.63979e-05
 980.2200	 4.60287e-03	-8.39029e-02	 1.42205e+02	 6.40380e-04	 4.19177e-04	 3.81724e-05
 980.2300	 4.30208e-03	-8.32945e-02	 1.44284e+02	 6.40380e-04	 3.49944e-04	 3.23337e-05
 980.2400	 4.08503e-03	-8.26906e-02	 1.46395e+02	 6.40382e-04	 2.99981e-04	 2.81227e-05
 980.2500	 3.92611e-03	-8.20905e-02	 1.48539e+02	 6.40383e-04	 2.63399e-04	 2.50550e-05
 980.2600	 3.80886e-03	-8.14936e-02	 1.50720e+02	 6.40384e-04	 2.36404e-04	 2.28174e-05
 980.2700	 3.72245e-03	-8.08993e-02	 1.52940e+02	 6.40386e-04	 2.16512e-04	 2.12053e-05
 980.2800	 3.65976e-03	-8.03070e-02	 1.55202e+02	 6.40388e-04	 2.02078e-04	 2.00844e-05
 980.2900	 3.61604e-03	-7.97161e-02	 1.57510e+02	 6.40390e-04	 1.92011e-04	 1.93676e-05
 980.3000	 3.58823e-03	-7.91262e-02	 1.59865e+02	 6.40393e-04	 1.85604e-04	 1.90015e-05
 980.3100	 3.57446e-03	-7.85370e-02	 1.62271e+02	 6.40395e-04	 1.82433e-04	 1.89580e-05
 980.3200	 3.57386e-03	-7.79479e-02	 1.64732e+02	 6.40398e-04	 1.82291e-04	 1.92306e-05
 980.3300	 3.58638e-03	-7.73587e-02	 1.67250e+02	 6.40401e-04	 1.85170e-04	 1.98330e-05
 980.3400	 3.61282e-03	-7.67690e-02	 1.69828e+02	 6.40404e-04	 1.91255e-04	 2.08007e-05
 980.3500	 3.65494e-03	-7.61782e-02	 1.72472e+02	 6.40408e-04	 2.00948e-04	 2.21952e-05
 980.3600	 3.71567e-03	-7.55861e-02	 1.75184e+02	 6.40412e-04	 2.14926e-04	 2.41125e-05
 980.3700	 3.79956e-03	-7.49921e-02	 1.77971e+02	 6.40416e-04	 2.34234e-04	 2.66968e-05
 980.3800	 3.91348e-03	-7.43955e-02	 1.80837e+02	 6.40420e-04	 2.60452e-04	 3.01633e-05
 980.3900	 4.06777e-03	-7.37959e-02	 1.83789e+02	 6.40424e-04	 2.95966e-04	 3.48360e-05
 980.4000	 4.27826e-03	-7.31925e-02	 1.86834e+02	 6.40429e-04	 3.44412e-04	 4.12102e-05
 980.4100	 4.56941e-03	-7.25846e-02	 1.89980e+02	 6.40434e-04	 4.11423e-04	 5.00575e-05
 980.4200	 4.97972e-03	-7.19723e-02	 1.93231e+02	 6.40439e-04	 5.05851e-04	 6.26005e-05
 980.4300	 5.56987e-03	-7.13569e-02	 1.96587e+02	 6.40444e-04	 6.41656e-04	 8.07865e-05
 980.4400	 6.43255e-03	-7.07438e-02	 2.00022e+02	 6.40449e-04	 8.40143e-04	 1.07626e-04
 980.4500	 7.69031e-03	-7.01489e-02	 2.03447e+02	 6.40455e-04	 1.12946e-03	 1.47168e-04
 980.4600	 9.42176e-03	-6.96096e-02	 2.06634e+02	 6.40461e-04	 1.52761e-03	 2.02165e-04
 980.4700	 1.13704e-02	-6.91900e-02	 2.09170e+02	 6.40467e-04	 1.97550e-03	 2.64651e-04
 980.4800	 1.25443e-02	-6.89208e-02	 2.10818e+02	 6.40473e-04	 2.24522e-03	 3.03157e-04
 980.4900	 1.19478e-02	-6.86847e-02	 2.12263e+02	 6.40480e-04	 2.10816e-03	 2.86605e-04
 980.5000	 1.01244e-02	-6.83209e-02	 2.14507e+02	 6.40487e-04	 1.68911e-03	 2.32064e-04
 980.5100	 8.25401e-03	-6.78163e-02	 2.17684e+02	 6.40494e-04	 1.25906e-03	 1.75545e-04
 980.5200	 6.82896e-03	-6.72353e-02	 2.21437e+02	 6.40501e-04	 9.31286e-04	 1.32085e-04
 980.5300	 5.84055e-03	-6.66261e-02	 2.25486e+02	 6.40508e-04	 7.03874e-04	 1.01657e-04
 980.5400	 5.16601e-03	-6.60107e-02	 2.29696e+02	 6.40516e-04	 5.48646e-04	 8.07188e-05
 980.5500	 4.70018e-03	-6.53970e-02	 2.34015e+02	 6.40524e-04	 4.41430e-04	 6.61670e-05
 980.5600	 4.37202e-03	-6.47876e-02	 2.38429e+02	 6.40532e-04	 3.65891e-04	 5.58796e-05
 980.5700	 4.13626e-03	-6.41828e-02	 2.42938e+02	 6.40540e-04	 3.11615e-04	 4.84908e-05
 980.5800	 3.96417e-03	-6.35820e-02	 2.47545e+02	 6.40549e-04	 2.71993e-04	 4.31286e-05
 980.5900	 3.83734e-03	-6.29845e-02	 2.52259e+02	 6.40558e-04	 2.42787e-04	 3.92311e-05
 980.6000	 3.74373e-03	-6.23898e-02	 2.57087e+02	 6.40567e-04	 2.21230e-04	 3.64325e-05
 980.6100	 3.67541e-03	-6.17971e-02	 2.62038e+02	 6.40576e-04	 2.05493e-04	 3.44930e-05
 980.6200	 3.62710e-03	-6.12061e-02	 2.67120e+02	 6.40585e-04	 1.94362e-04	 3.32579e-05
 980.6300	 3.59536e-03	-6.06162e-02	 2.72342e+02	 6.40595e-04	 1.87044e-04	 3.26319e-05
 980.6400	 3.57804e-03	-6.00270e-02	 2.77713e+02	 6.40605e-04	 1.83047e-04	 3.25648e-05
 980.6500	 3.57402e-03	-5.94381e-02	 2.83241e+02	 6.40615e-04	 1.82111e-04	 3.30438e-05
 980.6600	 3.58304e-03	-5.88491e-02	 2.88937e+02	 6.40625e-04	 1.84178e-04	 3.40913e-05
 980.6700	 3.60567e-03	-5.82597e-02	 2.94811e+02	 6.40635e-04	 1.89378e-04	 3.57671e-05
 980.6800	 3.64339e-03	-5.76695e-02	 3.00876e+02	 6.40646e-04	 1.98051e-04	 3.81753e-05
 980.6900	 3.69879e-03	-5.70779e-02	 3.07144e+02	 6.40657e-04	 2.10793e-04	 4.14785e-05
 980.7000	 3.77591e-03	-5.64846e-02	 3.13630e+02	 6.40668e-04	 2.28535e-04	 4.59202e-05
 980.7100	 3.88089e-03	-5.58890e-02	 3.20351e+02	 6.40680e-04	 2.52691e-04	 5.18630e-05
 980.7200	 4.02299e-03	-5.52904e-02	 3.27326e+02	 6.40691e-04	 2.85391e-04	 5.98509e-05
 980.7300	 4.21627e-03	-5.46883e-02	 3.34577e+02	 6.40703e-04	 3.29870e-04	 7.07124e-05
 980.7400	 4.48239e-03	-5.40818e-02	 3.42127e+02	 6.40715e-04	 3.91112e-04	 8.57342e-05
 980.7500	 4.85530e-03	-5.34709e-02	 3.49997e+02	 6.40727e-04	 4.76929e-04	 1.06953e-04
 980.7600	 5.38858e-03	-5.28562e-02	 3.58195e+02	 6.40740e-04	 5.99642e-04	 1.37624e-04
 980.7700	 6.16524e-03	-5.22417e-02	 3.66685e+02	 6.40753e-04	 7.78338e-04	 1.82874e-04
 980.7800	 7.30185e-03	-5.16393e-02	 3.75306e+02	 6.40765e-04	 1.03980e-03	 2.50054e-04
 980.7900	 8.90548e-03	-5.10794e-02	 3.83595e+02	 6.40779e-04	 1.40858e-03	 3.46229e-04
 980.8000	 1.08584e-02	-5.06202e-02	 3.90592e+02	 6.40792e-04	 1.85752e-03	 4.64914e-04
 980.8100	 1.23801e-02	-5.03137e-02	 3.95357e+02	 6.40806e-04	 2.20717e-03	 5.59179e-04
 980.8200	 1.22955e-02	-5.00880e-02	 3.98926e+02	 6.40819e-04	 2.18772e-03	 5.59266e-04
 980.8300	 1.06834e-02	-4.97680e-02	 4.04071e+02	 6.40833e-04	 1.81724e-03	 4.70561e-04
 980.8400	 8.74305e-03	-4.92969e-02	 4.11817e+02	 6.40848e-04	 1.37117e-03	 3.61868e-04
 980.8500	 7.18297e-03	-4.87313e-02	 4.21409e+02	 6.40862e-04	 1.01236e-03	 2.73403e-04
 980.8600	 6.08417e-03	-4.81271e-02	 4.32033e+02	 6.40877e-04	 7.59561e-04	 2.10307e-04
 980.8700	 5.33383e-03	-4.75123e-02	 4.43266e+02	 6.40892e-04	 5.86890e-04	 1.66727e-04
 980.8800	 4.81794e-03	-4.68979e-02	 4.54939e+02	 6.40907e-04	 4.68150e-04	 1.36500e-04
 980.8900	 4.45654e-03	-4.62874e-02	 4.67005e+02	 6.40922e-04	 3.84955e-04	 1.15222e-04
 980.9000	 4.19821e-03	-4.56814e-02	 4.79466e+02	 6.40937e-04	 3.25477e-04	 1.00022e-04
 980.9100	 4.01036e-03	-4.50797e-02	 4.92342e+02	 6.40953e-04	 2.82220e-04	 8.90598e-05
 980.9200	 3.87216e-03	-4.44815e-02	 5.05665e+02	 6.40969e-04	 2.50392e-04	 8.11561e-05
 980.9300	 3.77009e-03	-4.38862e-02	 5.19470e+02	 6.40985e-04	 2.26879e-04	 7.55446e-05
 980.9400	 3.69523e-03	-4.32932e-02	 5.33792e+02	 6.41002e-04	 2.09629e-04	 7.17271e-05
 980.9500	 3.64166e-03	-4.27019e-02	 5.48672e+02	 6.41018e-04	 1.97279e-04	 6.93849e-05
 980.9600	 3.60547e-03	-4.21118e-02	 5.64150e+02	 6.41035e-04	 1.88932e-04	 6.83254e-05
 980.9700	 3.58420e-03	-4.15226e-02	 5.80270e+02	 6.41052e-04	 1.84018e-04	 6.84517e-05
 980.9800	 3.57645e-03	-4.09338e-02	 5.97079e+02	 6.41070e-04	 1.82217e-04	 6.97471e-05
 980.9900	 3.58173e-03	-4.03450e-02	 6.14629e+02	 6.41087e-04	 1.83414e-04	 7.22706e-05
 981.0000	 3.60035e-03	-3.97559e-02	 6.32975e+02	 6.41105e-04	 1.87684e-04	 7.61628e-05
 981.0100	 3.63353e-03	-3.91661e-02	 6.52180e+02	 6.41123e-04	 1.95304e-04	 8.16621e-05
 981.0200	 3.68349e-03	-3.85751e-02	 6.72314e+02	 6.41141e-04	 2.06787e-04	 8.91353e-05
 981.0300	 3.75380e-03	-3.79825e-02	 6.93453e+02	 6.41159e-04	 2.22956e-04	 9.91292e-05
 981.0400	 3.84991e-03	-3.73877e-02	 7.15689e+02	 6.41178e-04	 2.45062e-04	 1.12455e-04
 981.0500	 3.98001e-03	-3.67902e-02	 7.39122e+02	 6.41197e-04	 2.74991e-04	 1.30325e-04
 981.0600	 4.15651e-03	-3.61893e-02	 7.63870e+02	 6.41216e-04	 3.15599e-04	 1.54582e-04
 981.0700	 4.39842e-03	-3.55843e-02	 7.90063e+02	 6.41235e-04	 3.71265e-04	 1.88089e-04
 981.0800	 4.73544e-03	-3.49747e-02	 8.17836e+02	 6.41255e-04	 4.48814e-04	 2.35377e-04
 981.0900	 5.21433e-03	-3.43611e-02	 8.47301e+02	 6.41274e-04	 5.59008e-04	 3.03738e-04
 981.1000	 5.90831e-03	-3.37459e-02	 8.78454e+02	 6.41294e-04	 7.18680e-04	 4.04867e-04
 981.1100	 6.92477e-03	-3.31380e-02	 9.10926e+02	 6.41314e-04	 9.52514e-04	 5.56449e-04
 981.1200	 8.38468e-03	-3.25608e-02	 9.43380e+02	 6.41335e-04	 1.28827e-03	 7.79434e-04
 981.1300	 1.02770e-02	-3.20643e-02	 9.72563e+02	 6.41355e-04	 1.72332e-03	 1.07494e-03
 981.1400	 1.20580e-02	-3.17118e-02	 9.93956e+02	 6.41376e-04	 2.13259e-03	 1.35953e-03
 981.1500	 1.25330e-02	-3.14798e-02	 1.00853e+03	 6.41397e-04	 2.24172e-03	 1.45009e-03
 981.1600	 1.12674e-02	-3.12026e-02	 1.02676e+03	 6.41418e-04	 1.95088e-03	 1.28482e-03
 981.1700	 9.31203e-03	-3.07735e-02	 1.05589e+03	 6.41440e-04	 1.50140e-03	 1.01688e-03
 981.1800	 7.60955e-03	-3.02294e-02	 1.09444e+03	 6.41461e-04	 1.10988e-03	 7.79180e-04
 981.1900	 6.38019e-03	-2.96328e-02	 1.13904e+03	 6.41483e-04	 8.27062e-04	 6.04312e-04
 981.2000	 5.53752e-03	-2.90197e-02	 1.18772e+03	 6.41505e-04	 6.33149e-04	 4.82413e-04
 981.2100	 4.96036e-03	-2.84047e-02	 1.23972e+03	 6.41528e-04	 5.00305e-04	 3.97899e-04
 981.2200	 4.55842e-03	-2.77930e-02	 1.29489e+03	 6.41550e-04	 4.07775e-04	 3.38753e-04
 981.2300	 4.27275e-03	-2.71857e-02	 1.35337e+03	 6.41573e-04	 3.42001e-04	 2.96954e-04
 981.2400	 4.06597e-03	-2.65829e-02	 1.41544e+03	 6.41596e-04	 2.94380e-04	 2.67338e-04
 981.2500	 3.91426e-03	-2.59838e-02	 1.48145e+03	 6.41619e-04	 2.59434e-04	 2.46598e-04
 981.2600	 3.80222e-03	-2.53877e-02	 1.55180e+03	 6.41643e-04	 2.33619e-04	 2.32615e-04
 981.2700	 3.71974e-03	-2.47942e-02	 1.62697e+03	 6.41666e-04	 2.14608e-04	 2.24044e-04
 981.2800	 3.66012e-03	-2.42025e-02	 1.70747e+03	 6.41690e-04	 2.00857e-04	 2.20072e-04
 981.2900	 3.61890e-03	-2.36122e-02	 1.79388e+03	 6.41714e-04	 1.91345e-04	 2.20267e-04
 981.3000	 3.59323e-03	-2.30229e-02	 1.88686e+03	 6.41738e-04	 1.85411e-04	 2.24509e-04
 981.3100	 3.58142e-03	-2.24341e-02	 1.98717e+03	 6.41763e-04	 1.82666e-04	 2.32952e-04
 981.3200	 3.58268e-03	-2.18454e-02	 2.09566e+03	 6.41788e-04	 1.82933e-04	 2.46038e-04
 981.3300	 3.59711e-03	-2.12566e-02	 2.21332e+03	 6.41813e-04	 1.86228e-04	 2.64545e-04
 981.3400	 3.62561e-03	-2.06671e-02	 2.34132e+03	 6.41838e-04	 1.92764e-04	 2.89676e-04
 981.3500	 3.67006e-03	-2.00766e-02	 2.48099e+03	 6.41863e-04	 2.02973e-04	 3.23225e-04
 981.3600	 3.73358e-03	-1.94847e-02	 2.63392e+03	 6.41889e-04	 2.17569e-04	 3.67841e-04
 981.3700	 3.82093e-03	-1.88907e-02	 2.80202e+03	 6.41915e-04	 2.37652e-04	 4.27454e-04
 981.3800	 3.93932e-03	-1.82942e-02	 2.98754e+03	 6.41941e-04	 2.64879e-04	 5.07991e-04
 981.3900	 4.09960e-03	-1.76946e-02	 3.19322e+03	 6.41967e-04	 3.01750e-04	 6.18570e-04
 981.4000	 4.31838e-03	-1.70910e-02	 3.42235e+03	 6.41993e-04	 3.52081e-04	 7.73568e-04
 981.4100	 4.62134e-03	-1.64830e-02	 3.67889e+03	 6.42020e-04	 4.21788e-04	 9.96230e-04
 981.4200	 5.04894e-03	-1.58706e-02	 3.96729e+03	 6.42047e-04	 5.20174e-04	 1.32498e-03
 981.4300	 5.66481e-03	-1.52554e-02	 4.29193e+03	 6.42074e-04	 6.61871e-04	 1.82394e-03
 981.4400	 6.56523e-03	-1.46436e-02	 4.65461e+03	 6.42102e-04	 8.69014e-04	 2.59725e-03
 981.4500	 7.87346e-03	-1.40527e-02	 5.04750e+03	 6.42129e-04	 1.16991e-03	 3.79186e-03
 981.4600	 9.65121e-03	-1.35232e-02	 5.43760e+03	 6.42157e-04	 1.57866e-03	 5.51237e-03
 981.4700	 1.15795e-02	-1.31200e-02	 5.75782e+03	 6.42185e-04	 2.02183e-03	 7.47591e-03
 981.4800	 1.26018e-02	-1.28627e-02	 5.97700e+03	 6.42213e-04	 2.25670e-03	 8.66237e-03
 981.4900	 1.18318e-02	-1.26199e-02	 6.21523e+03	 6.42242e-04	 2.07975e-03	 8.30171e-03
 981.5000	 9.95859e-03	-1.22410e-02	 6.62335e+03	 6.42270e-04	 1.64921e-03	 7.01572e-03
 981.5100	 8.12088e-03	-1.17266e-02	 7.23300e+03	 6.42299e-04	 1.22664e-03	 5.69868e-03
 981.5200	 6.74021e-03	-1.11418e-02	 8.02285e+03	 6.42328e-04	 9.09043e-04	 4.68458e-03
 981.5300	 5.78530e-03	-1.05318e-02	 8.98581e+03	 6.42358e-04	 6.89313e-04	 3.97879e-03
 981.5400	 5.13286e-03	-9.91657e-03	 1.01391e+04	 6.42387e-04	 5.39146e-04	 3.51157e-03
 981.5500	 4.68123e-03	-9.30359e-03	 1.15208e+04	 6.42417e-04	 4.35175e-04	 3.22078e-03
 981.5600	 4.36229e-03	-8.69494e-03	 1.31899e+04	 6.42447e-04	 3.61736e-04	 3.06528e-03
 981.5700	 4.13267e-03	-8.09076e-03	 1.52311e+04	 6.42477e-04	 3.08851e-04	 3.02230e-03
 981.5800	 3.96480e-03	-7.49055e-03	 1.77649e+04	 6.42508e-04	 2.70179e-04	 3.08385e-03
 981.5900	 3.84097e-03	-6.89365e-03	 2.09658e+04	 6.42538e-04	 2.41642e-04	 3.25524e-03
 981.6000	 3.74958e-03	-6.29941e-03	 2.50931e+04	 6.42569e-04	 2.20573e-04	 3.55654e-03
 981.6100	 3.68297e-03	-5.70723e-03	 3.05452e+04	 6.42600e-04	 2.05207e-04	 4.02788e-03
 981.6200	 3.63604e-03	-5.11660e-03	 3.79596e+04	 6.42632e-04	 1.94372e-04	 4.74152e-03
 981.6300	 3.60546e-03	-4.52706e-03	 4.84075e+04	 6.42663e-04	 1.87301e-04	 5.82688e-03
 981.6400	 3.58919e-03	-3.93819e-03	 6.38017e+04	 6.42695e-04	 1.83523e-04	 7.52535e-03
 981.6500	 3.58616e-03	-3.34960e-03	 8.78307e+04	 6.42727e-04	 1.82794e-04	 1.03189e-02
 981.6600	 3.59618e-03	-2.76091e-03	 1.28356e+05	 6.42759e-04	 1.85068e-04	 1.52685e-02
 981.6700	 3.61987e-03	-2.17175e-03	 2.04577e+05	 6.42792e-04	 1.90489e-04	 2.50494e-02
 981.6800	 3.65877e-03	-1.58171e-03	 3.73398e+05	 6.42824e-04	 1.99411e-04	 4.78645e-02
 981.6900	 3.71553e-03	-9.90354e-04	 8.59633e+05	 6.42857e-04	 2.12445e-04	 1.17402e-01
 981.7000	 3.79429e-03	-3.97199e-04	 2.86995e+06	 6.42890e-04	 2.30545e-04	 4.25370e-01
 981.7100	 3.90135e-03	 1.98313e-04	 4.15000e+06	 6.42923e-04	 2.55155e-04	 6.80788e-01
 981.7200	 4.04612e-03	 7.96805e-04	 1.17440e+06	 6.42957e-04	 2.88448e-04	 2.17804e-01
 981.7300	 4.24296e-03	 1.39895e-03	 4.55662e+05	 6.42991e-04	 3.33724e-04	 9.77767e-02
 981.7400	 4.51398e-03	 2.00536e-03	 2.33137e+05	 6.43025e-04	 3.96072e-04	 5.93761e-02
 981.7500	 4.89379e-03	 2.61632e-03	 1.39694e+05	 6.43059e-04	 4.83454e-04	 4.34294e-02
 981.7600	 5.43699e-03	 3.23092e-03	 9.23886e+04	 6.43093e-04	 6.08429e-04	 3.61495e-02
 981.7700	 6.22791e-03	 3.84502e-03	 6.54139e+04	 6.43128e-04	 7.90382e-04	 3.32510e-02
 981.7800	 7.38391e-03	 4.44613e-03	 4.88440e+04	 6.43163e-04	 1.05628e-03	 3.31827e-02
 981.7900	 9.00867e-03	 5.00311e-03	 3.83440e+04	 6.43198e-04	 1.42989e-03	 3.52652e-02
 981.8000	 1.09679e-02	 5.45683e-03	 3.19164e+04	 6.43233e-04	 1.88024e-03	 3.86007e-02
 981.8100	 1.24540e-02	 5.75758e-03	 2.84455e+04	 6.43269e-04	 2.22169e-03	 4.06526e-02
 981.8200	 1.23082e-02	 5.98299e-03	 2.64897e+04	 6.43304e-04	 2.18815e-03	 3.72882e-02
 981.8300	 1.06657e-02	 6.30693e-03	 2.42516e+04	 6.43340e-04	 1.81069e-03	 2.82505e-02
 981.8400	 8.72784e-03	 6.78124e-03	 2.13004e+04	 6.43376e-04	 1.36514e-03	 1.87082e-02
 981.8500	 7.17823e-03	 7.34818e-03	 1.83038e+04	 6.43413e-04	 1.00872e-03	 1.18796e-02
 981.8600	 6.08773e-03	 7.95267e-03	 1.57008e+04	 6.43449e-04	 7.57809e-04	 7.65587e-03
 981.8700	 5.34254e-03	 8.56732e-03	 1.35627e+04	 6.43486e-04	 5.86300e-04	 5.11689e-03
 981.8800	 4.82962e-03	 9.18146e-03	 1.18258e+04	 6.43523e-04	 4.68222e-04	 3.56325e-03
 981.8900	 4.46991e-03	 9.79169e-03	 1.04067e+04	 6.43560e-04	 3.85393e-04	 2.58111e-03
 981.9000	 4.21254e-03	 1.03974e-02	 9.23470e+03	 6.43598e-04	 3.26115e-04	 1.93824e-03
 981.9100	 4.02525e-03	 1.09989e-02	 8.25539e+03	 6.43636e-04	 2.82964e-04	 1.50352e-03
 981.9200	 3.88738e-03	 1.15969e-02	 7.42801e+03	 6.43674e-04	 2.51191e-04	 1.20100e-03
 981.9300	 3.78553e-03	 1.21919e-02	 6.72194e+03	 6.43712e-04	 2.27705e-04	 9.85276e-04
 981.9400	 3.71081e-03	 1.27848e-02	 6.11395e+03	 6.43750e-04	 2.10466e-04	 8.28365e-04
 981.9500	 3.65735e-03	 1.33758e-02	 5.58620e+03	 6.43789e-04	 1.98121e-04	 7.12507e-04
 981.9600	 3.62127e-03	 1.39657e-02	 5.12479e+03	 6.43827e-04	 1.89774e-04	 6.26156e-04
 981.9700	 3.60009e-03	 1.45547e-02	 4.71875e+03	 6.43866e-04	 1.84861e-04	 5.61653e-04
 981.9800	 3.59245e-03	 1.51434e-02	 4.35932e+03	 6.43906e-04	 1.83062e-04	 5.13854e-04
 981.9900	 3.59783e-03	 1.57320e-02	 4.03945e+03	 6.43945e-04	 1.84262e-04	 4.79300e-04
 982.0000	 3.61657e-03	 1.63209e-02	 3.75336e+03	 6.43985e-04	 1.88537e-04	 4.55715e-04
 982.0100	 3.64987e-03	 1.69105e-02	 3.49631e+03	 6.44025e-04	 1.96162e-04	 4.41700e-04
 982.0200	 3.69994e-03	 1.75014e-02	 3.26434e+03	 6.44065e-04	 2.07649e-04	 4.36570e-04
 982.0300	 3.77034e-03	 1.80938e-02	 3.05416e+03	 6.44105e-04	 2.23815e-04	 4.40288e-04
 982.0400	 3.86648e-03	 1.86884e-02	 2.86297e+03	 6.44146e-04	 2.45906e-04	 4.53492e-04
 982.0500	 3.99651e-03	 1.92857e-02	 2.68841e+03	 6.44187e-04	 2.75798e-04	 4.77636e-04
 982.0600	 4.17274e-03	 1.98865e-02	 2.52845e+03	 6.44228e-04	 3.16323e-04	 5.15259e-04
 982.0700	 4.41405e-03	 2.04913e-02	 2.38139e+03	 6.44269e-04	 3.71826e-04	 5.70477e-04
 982.0800	 4.74982e-03	 2.11006e-02	 2.24580e+03	 6.44310e-04	 4.49067e-04	 6.49798e-04
 982.0900	 5.22634e-03	 2.17141e-02	 2.12060e+03	 6.44352e-04	 5.58693e-04	 7.63406e-04
 982.1000	 5.91601e-03	 2.23293e-02	 2.00521e+03	 6.44394e-04	 7.17352e-04	 9.26923e-04
 982.1100	 6.92525e-03	 2.29375e-02	 1.89998e+03	 6.44436e-04	 9.49504e-04	 1.16259e-03
 982.1200	 8.37546e-03	 2.35159e-02	 1.80711e+03	 6.44478e-04	 1.28301e-03	 1.49425e-03
 982.1300	 1.02638e-02	 2.40155e-02	 1.73181e+03	 6.44521e-04	 1.71712e-03	 1.91663e-03
 982.1400	 1.20704e-02	 2.43725e-02	 1.68041e+03	 6.44564e-04	 2.13227e-03	 2.30953e-03
 982.1500	 1.26097e-02	 2.46053e-02	 1.64849e+03	 6.44607e-04	 2.25613e-03	 2.39743e-03
 982.1600	 1.13917e-02	 2.48769e-02	 1.61359e+03	 6.44650e-04	 1.97622e-03	 2.05566e-03
 982.1700	 9.43546e-03	 2.52996e-02	 1.56123e+03	 6.44693e-04	 1.52653e-03	 1.53648e-03
 982.1800	 7.71024e-03	 2.58401e-02	 1.49730e+03	 6.44737e-04	 1.12977e-03	 1.09063e-03
 982.1900	 6.45824e-03	 2.64352e-02	 1.43100e+03	 6.44781e-04	 8.41722e-04	 7.76640e-04
 982.2000	 5.59861e-03	 2.70480e-02	 1.36707e+03	 6.44825e-04	 6.43888e-04	 5.67600e-04
 982.2100	 5.00966e-03	 2.76630e-02	 1.30705e+03	 6.44869e-04	 5.08311e-04	 4.28442e-04
 982.2200	 4.59960e-03	 2.82749e-02	 1.25114e+03	 6.44914e-04	 4.13890e-04	 3.33958e-04
 982.2300	 4.30827e-03	 2.88823e-02	 1.19910e+03	 6.44959e-04	 3.46789e-04	 2.68196e-04
 982.2400	 4.09745e-03	 2.94853e-02	 1.15057e+03	 6.45004e-04	 2.98216e-04	 2.21313e-04
 982.2500	 3.94279e-03	 3.00845e-02	 1.10521e+03	 6.45049e-04	 2.62568e-04	 1.87189e-04
 982.2600	 3.82854e-03	 3.06806e-02	 1.06269e+03	 6.45094e-04	 2.36223e-04	 1.61939e-04
 982.2700	 3.74436e-03	 3.12742e-02	 1.02274e+03	 6.45140e-04	 2.16799e-04	 1.43047e-04
 982.2800	 3.68340e-03	 3.18659e-02	 9.85123e+02	 6.45186e-04	 2.02719e-04	 1.28846e-04
 982.2900	 3.64109e-03	 3.24562e-02	 9.49624e+02	 6.45232e-04	 1.92934e-04	 1.18216e-04
 982.3000	 3.61450e-03	 3.30455e-02	 9.16064e+02	 6.45278e-04	 1.86766e-04	 1.10400e-04
 982.3100	 3.60186e-03	 3.36343e-02	 8.84282e+02	 6.45325e-04	 1.83810e-04	 1.04891e-04
 982.3200	 3.60236e-03	 3.42229e-02	 8.54134e+02	 6.45371e-04	 1.83877e-04	 1.01359e-04
 982.3300	 3.61600e-03	 3.48116e-02	 8.25494e+02	 6.45418e-04	 1.86970e-04	 9.96155e-05
 982.3400	 3.64364e-03	 3.54010e-02	 7.98245e+02	 6.45466e-04	 1.93287e-04	 9.95890e-05
 982.3500	 3.68709e-03	 3.59913e-02	 7.72281e+02	 6.45513e-04	 2.03242e-04	 1.01320e-04
 982.3600	 3.74935e-03	 3.65831e-02	 7.47505e+02	 6.45561e-04	 2.17527e-04	 1.04970e-04
 982.3700	 3.83504e-03	 3.71768e-02	 7.23829e+02	 6.45609e-04	 2.37206e-04	 1.10849e-04
 982.3800	 3.95114e-03	 3.77731e-02	 7.01167e+02	 6.45657e-04	 2.63883e-04	 1.19463e-04
 982.3900	 4.10814e-03	 3.83725e-02	 6.79443e+02	 6.45705e-04	 2.99975e-04	 1.31605e-04
 982.4000	 4.32204e-03	 3.89757e-02	 6.58586e+02	 6.45754e-04	 3.49163e-04	 1.48494e-04
 982.4100	 4.61759e-03	 3.95833e-02	 6.38535e+02	 6.45802e-04	 4.17142e-04	 1.72016e-04
 982.4200	 5.03364e-03	 4.01954e-02	 6.19250e+02	 6.45851e-04	 5.12846e-04	 2.05109e-04
 982.4300	 5.63130e-03	 4.08106e-02	 6.00739e+02	 6.45900e-04	 6.50334e-04	 2.52341e-04
 982.4400	 6.50361e-03	 4.14232e-02	 5.83119e+02	 6.45950e-04	 8.50991e-04	 3.20539e-04
 982.4500	 7.77283e-03	 4.20174e-02	 5.66757e+02	 6.46000e-04	 1.14290e-03	 4.18444e-04
 982.4600	 9.51558e-03	 4.25553e-02	 5.52517e+02	 6.46049e-04	 1.54359e-03	 5.50990e-04
 982.4700	 1.14719e-02	 4.29732e-02	 5.41796e+02	 6.46100e-04	 1.99320e-03	 6.97729e-04
 982.4800	 1.26507e-02	 4.32407e-02	 5.35083e+02	 6.46150e-04	 2.26401e-03	 7.82769e-04
 982.4900	 1.20595e-02	 4.34747e-02	 5.29365e+02	 6.46200e-04	 2.12813e-03	 7.27982e-04
 982.5000	 1.02341e-02	 4.38358e-02	 5.20726e+02	 6.46251e-04	 1.70856e-03	 5.74964e-04
 982.5100	 8.35237e-03	 4.43383e-02	 5.09009e+02	 6.46302e-04	 1.27588e-03	 4.19731e-04
 982.5200	 6.91354e-03	 4.49180e-02	 4.95953e+02	 6.46353e-04	 9.44892e-04	 3.02896e-04
 982.5300	 5.91314e-03	 4.55266e-02	 4.82772e+02	 6.46405e-04	 7.14682e-04	 2.23028e-04
 982.5400	 5.22934e-03	 4.61419e-02	 4.69975e+02	 6.46456e-04	 5.57279e-04	 1.69312e-04
 982.5500	 4.75661e-03	 4.67553e-02	 4.57715e+02	 6.46508e-04	 4.48433e-04	 1.32699e-04
 982.5600	 4.42336e-03	 4.73646e-02	 4.46009e+02	 6.46560e-04	 3.71677e-04	 1.07181e-04
 982.5700	 4.18379e-03	 4.79694e-02	 4.34831e+02	 6.46613e-04	 3.16481e-04	 8.89841e-05
 982.5800	 4.00884e-03	 4.85701e-02	 4.24139e+02	 6.46665e-04	 2.76157e-04	 7.57432e-05
 982.5900	 3.87982e-03	 4.91674e-02	 4.13895e+02	 6.46718e-04	 2.46403e-04	 6.59556e-05
 982.6000	 3.78451e-03	 4.97620e-02	 4.04063e+02	 6.46771e-04	 2.24411e-04	 5.86468e-05
 982.6100	 3.71486e-03	 5.03545e-02	 3.94612e+02	 6.46824e-04	 2.08322e-04	 5.31731e-05
 982.6200	 3.66548e-03	 5.09453e-02	 3.85513e+02	 6.46878e-04	 1.96901e-04	 4.91031e-05
 982.6300	 3.63285e-03	 5.15350e-02	 3.76742e+02	 6.46931e-04	 1.89336e-04	 4.61461e-05
 982.6400	 3.61477e-03	 5.21240e-02	 3.68278e+02	 6.46985e-04	 1.85120e-04	 4.41087e-05
 982.6500	 3.61007e-03	 5.27126e-02	 3.60101e+02	 6.47039e-04	 1.83983e-04	 4.28680e-05
 982.6600	 3.61842e-03	 5.33013e-02	 3.52193e+02	 6.47094e-04	 1.85853e-04	 4.23562e-05
 982.6700	 3.64035e-03	 5.38905e-02	 3.44538e+02	 6.47148e-04	 1.90846e-04	 4.25524e-05
 982.6800	 3.67726e-03	 5.44804e-02	 3.37120e+02	 6.47203e-04	 1.99287e-04	 4.34814e-05
 982.6900	 3.73161e-03	 5.50716e-02	 3.29924e+02	 6.47258e-04	 2.11745e-04	 4.52174e-05
 982.7000	 3.80733e-03	 5.56646e-02	 3.22937e+02	 6.47313e-04	 2.29120e-04	 4.78956e-05
 982.7100	 3.91031e-03	 5.62598e-02	 3.16145e+02	 6.47369e-04	 2.52772e-04	 5.17329e-05
 982.7200	 4.04946e-03	 5.68579e-02	 3.09534e+02	 6.47424e-04	 2.84748e-04	 5.70636e-05
 982.7300	 4.23825e-03	 5.74596e-02	 3.03093e+02	 6.47480e-04	 3.28148e-04	 6.43979e-05
 982.7400	 4.49736e-03	 5.80655e-02	 2.96809e+02	 6.47536e-04	 3.87734e-04	 7.45203e-05
 982.7500	 4.85911e-03	 5.86759e-02	 2.90676e+02	 6.47593e-04	 4.70937e-04	 8.86490e-05
 982.7600	 5.37438e-03	 5.92903e-02	 2.84696e+02	 6.47649e-04	 5.89464e-04	 1.08687e-04
 982.7700	 6.12223e-03	 5.99052e-02	 2.78899e+02	 6.47706e-04	 7.61489e-04	 1.37559e-04
 982.7800	 7.21565e-03	 6.05101e-02	 2.73373e+02	 6.47763e-04	 1.01298e-03	 1.79380e-04
 982.7900	 8.76904e-03	 6.10776e-02	 2.68343e+02	 6.47820e-04	 1.37018e-03	 2.38189e-04
 982.8000	 1.07152e-02	 6.15530e-02	 2.64241e+02	 6.47878e-04	 1.81753e-03	 3.11154e-04
 982.8100	 1.23792e-02	 6.18779e-02	 2.61491e+02	 6.47935e-04	 2.19984e-03	 3.72718e-04
 982.8200	 1.25567e-02	 6.21018e-02	 2.59611e+02	 6.47993e-04	 2.24056e-03	 3.76921e-04
 982.8300	 1.10849e-02	 6.23987e-02	 2.57136e+02	 6.48051e-04	 1.90233e-03	 3.16998e-04
 982.8400	 9.11596e-03	 6.28490e-02	 2.53444e+02	 6.48110e-04	 1.44965e-03	 2.38119e-04
 982.8500	 7.47346e-03	 6.34043e-02	 2.49002e+02	 6.48168e-04	 1.07187e-03	 1.72995e-04
 982.8600	 6.30176e-03	 6.40049e-02	 2.44333e+02	 6.48227e-04	 8.02275e-04	 1.27067e-04
 982.8700	 5.49924e-03	 6.46190e-02	 2.39698e+02	 6.48286e-04	 6.17558e-04	 9.59641e-05
 982.8800	 4.94787e-03	 6.52338e-02	 2.35192e+02	 6.48346e-04	 4.90614e-04	 7.48115e-05
 982.8900	 4.56237e-03	 6.58451e-02	 2.30840e+02	 6.48405e-04	 4.01828e-04	 6.01446e-05
 982.9000	 4.28735e-03	 6.64519e-02	 2.26640e+02	 6.48465e-04	 3.38468e-04	 4.97439e-05
 982.9100	 4.08768e-03	 6.70543e-02	 2.22583e+02	 6.48525e-04	 2.92446e-04	 4.22147e-05
 982.9200	 3.94088e-03	 6.76531e-02	 2.18659e+02	 6.48585e-04	 2.58593e-04	 3.66734e-05
 982.9300	 3.83238e-03	 6.82488e-02	 2.14858e+02	 6.48645e-04	 2.33555e-04	 3.25498e-05
 982.9400	 3.75257e-03	 6.88422e-02	 2.11170e+02	 6.48706e-04	 2.15121e-04	 2.94688e-05
 982.9500	 3.69506e-03	 6.94338e-02	 2.07588e+02	 6.48767e-04	 2.01822e-04	 2.71806e-05
 982.9600	 3.65564e-03	 7.00240e-02	 2.04104e+02	 6.48828e-04	 1.92686e-04	 2.55171e-05
 982.9700	 3.63159e-03	 7.06133e-02	 2.00712e+02	 6.48889e-04	 1.87088e-04	 2.43663e-05
 982.9800	 3.62132e-03	 7.12021e-02	 1.97408e+02	 6.48950e-04	 1.84662e-04	 2.36566e-05
 982.9900	 3.62417e-03	 7.17908e-02	 1.94185e+02	 6.49012e-04	 1.85255e-04	 2.33474e-05
 983.0000	 3.64029e-03	 7.23798e-02	 1.91039e+02	 6.49074e-04	 1.88904e-04	 2.34238e-05

5.2 Cによる追加解析

Cへの移植は問題なくできたので、次はモード解析を完結させるために条件を変えての検討です。遠視野像のミルククラウンを眺めていて、「4.3 数値解析の結果」に書いた「斜めビームなので裏面反射光は垂直共振器に戻らない」という考えが間違っているのではないかと思いました。そこでまずやったのは、講演資料15頁の「① 斜め光線を仮定した数値解析」です。REF.RED改めref_read.tsvで、tht0が0°以外であっても外界が空気で裏面反射ありとしました。以下に示すのはtht0=1.0°の時のref2_out.tsvですが、講演資料に載せているのは0°、1.0°、1.5°に対する計算結果をまとめてグラフ化したものです。


dn	tht0	S-wave
0.000e+00	 1.000
wavelength	gab_dB	gph	ss	t1	t2	tt
 980.0000	 8.71064e-03	-8.71677e-02	 1.31808e+02	 6.38531e-04	 1.36603e-03	 1.14970e-04
 980.0100	 1.06540e-02	-8.66960e-02	 1.33266e+02	 6.38531e-04	 1.81279e-03	 1.54259e-04
 980.0200	 1.22702e-02	-8.63761e-02	 1.34270e+02	 6.38530e-04	 2.18419e-03	 1.87263e-04
 980.0300	 1.23508e-02	-8.61508e-02	 1.34974e+02	 6.38530e-04	 2.20271e-03	 1.89840e-04
 980.0400	 1.08207e-02	-8.58437e-02	 1.35925e+02	 6.38530e-04	 1.85110e-03	 1.60661e-04
 980.0500	 8.86546e-03	-8.53833e-02	 1.37372e+02	 6.38530e-04	 1.40163e-03	 1.22946e-04
 980.0600	 7.26506e-03	-8.48224e-02	 1.39175e+02	 6.38530e-04	 1.03357e-03	 9.18507e-05
 980.0700	 6.13319e-03	-8.42195e-02	 1.41158e+02	 6.38531e-04	 7.73185e-04	 6.96903e-05
 980.0800	 5.36086e-03	-8.36047e-02	 1.43231e+02	 6.38532e-04	 5.95470e-04	 5.44601e-05
 980.0900	 4.83105e-03	-8.29899e-02	 1.45352e+02	 6.38533e-04	 4.73542e-04	 4.39503e-05
 980.1000	 4.46081e-03	-8.23788e-02	 1.47510e+02	 6.38534e-04	 3.88326e-04	 3.65764e-05
 980.1100	 4.19673e-03	-8.17723e-02	 1.49701e+02	 6.38535e-04	 3.27540e-04	 3.13093e-05
 980.1200	 4.00503e-03	-8.11701e-02	 1.51926e+02	 6.38537e-04	 2.83411e-04	 2.74938e-05
 980.1300	 3.86416e-03	-8.05715e-02	 1.54188e+02	 6.38539e-04	 2.50980e-04	 2.47103e-05
 980.1400	 3.76014e-03	-7.99759e-02	 1.56491e+02	 6.38541e-04	 2.27034e-04	 2.26866e-05
 980.1500	 3.68381e-03	-7.93826e-02	 1.58836e+02	 6.38543e-04	 2.09458e-04	 2.12441e-05
 980.1600	 3.62905e-03	-7.87910e-02	 1.61228e+02	 6.38546e-04	 1.96850e-04	 2.02660e-05
 980.1700	 3.59185e-03	-7.82007e-02	 1.63669e+02	 6.38549e-04	 1.88284e-04	 1.96777e-05
 980.1800	 3.56967e-03	-7.76113e-02	 1.66163e+02	 6.38552e-04	 1.83173e-04	 1.94354e-05
 980.1900	 3.56103e-03	-7.70224e-02	 1.68712e+02	 6.38555e-04	 1.81182e-04	 1.95191e-05
 980.2000	 3.56539e-03	-7.64335e-02	 1.71321e+02	 6.38558e-04	 1.82182e-04	 1.99304e-05
 980.2100	 3.58302e-03	-7.58442e-02	 1.73992e+02	 6.38562e-04	 1.86238e-04	 2.06919e-05
 980.2200	 3.61507e-03	-7.52543e-02	 1.76730e+02	 6.38566e-04	 1.93611e-04	 2.18497e-05
 980.2300	 3.66369e-03	-7.46633e-02	 1.79538e+02	 6.38570e-04	 2.04800e-04	 2.34799e-05
 980.2400	 3.73236e-03	-7.40707e-02	 1.82422e+02	 6.38574e-04	 2.20605e-04	 2.56983e-05
 980.2500	 3.82639e-03	-7.34759e-02	 1.85388e+02	 6.38579e-04	 2.42248e-04	 2.86784e-05
 980.2600	 3.95380e-03	-7.28784e-02	 1.88441e+02	 6.38583e-04	 2.71572e-04	 3.26797e-05
 980.2700	 4.12671e-03	-7.22776e-02	 1.91589e+02	 6.38588e-04	 3.11369e-04	 3.80949e-05
 980.2800	 4.36372e-03	-7.16727e-02	 1.94839e+02	 6.38594e-04	 3.65920e-04	 4.55288e-05
 980.2900	 4.69386e-03	-7.10632e-02	 1.98199e+02	 6.38599e-04	 4.41901e-04	 5.59313e-05
 980.3000	 5.16293e-03	-7.04496e-02	 2.01674e+02	 6.38605e-04	 5.49848e-04	 7.08150e-05
 980.3100	 5.84282e-03	-6.98341e-02	 2.05255e+02	 6.38610e-04	 7.06296e-04	 9.25797e-05
 980.3200	 6.83987e-03	-6.92252e-02	 2.08896e+02	 6.38616e-04	 9.35680e-04	 1.24824e-04
 980.3300	 8.27707e-03	-6.86454e-02	 2.12460e+02	 6.38623e-04	 1.26624e-03	 1.71805e-04
 980.3400	 1.01571e-02	-6.81435e-02	 2.15625e+02	 6.38629e-04	 1.69849e-03	 2.33889e-04
 980.3500	 1.19672e-02	-6.77842e-02	 2.17936e+02	 6.38636e-04	 2.11446e-03	 2.94294e-04
 980.3600	 1.25147e-02	-6.75502e-02	 2.19452e+02	 6.38643e-04	 2.24025e-03	 3.13974e-04
 980.3700	 1.12979e-02	-6.72777e-02	 2.21220e+02	 6.38650e-04	 1.96066e-03	 2.77006e-04
 980.3800	 9.34366e-03	-6.68537e-02	 2.24009e+02	 6.38657e-04	 1.51145e-03	 2.16236e-04
 980.3900	 7.62577e-03	-6.63118e-02	 2.27658e+02	 6.38665e-04	 1.11641e-03	 1.62322e-04
 980.4000	 6.38308e-03	-6.57159e-02	 2.31782e+02	 6.38673e-04	 8.30537e-04	 1.22947e-04
 980.4100	 5.53195e-03	-6.51027e-02	 2.36151e+02	 6.38681e-04	 6.34691e-04	 9.57275e-05
 980.4200	 4.94985e-03	-6.44875e-02	 2.40665e+02	 6.38689e-04	 5.00727e-04	 7.69668e-05
 980.4300	 4.54509e-03	-6.38755e-02	 2.45288e+02	 6.38697e-04	 4.07561e-04	 6.38505e-05
 980.4400	 4.25779e-03	-6.32681e-02	 2.50013e+02	 6.38706e-04	 3.41425e-04	 5.45203e-05
 980.4500	 4.05005e-03	-6.26650e-02	 2.54842e+02	 6.38715e-04	 2.93596e-04	 4.77890e-05
 980.4600	 3.89775e-03	-6.20657e-02	 2.59781e+02	 6.38724e-04	 2.58528e-04	 4.28972e-05
 980.4700	 3.78532e-03	-6.14696e-02	 2.64840e+02	 6.38733e-04	 2.32638e-04	 3.93536e-05
 980.4800	 3.70257e-03	-6.08759e-02	 2.70027e+02	 6.38743e-04	 2.13578e-04	 3.68375e-05
 980.4900	 3.64272e-03	-6.02841e-02	 2.75352e+02	 6.38753e-04	 1.99790e-04	 3.51394e-05
 980.5000	 3.60130e-03	-5.96937e-02	 2.80822e+02	 6.38763e-04	 1.90245e-04	 3.41258e-05
 980.5100	 3.57542e-03	-5.91043e-02	 2.86449e+02	 6.38773e-04	 1.84276e-04	 3.37181e-05
 980.5200	 3.56336e-03	-5.85154e-02	 2.92241e+02	 6.38783e-04	 1.81491e-04	 3.38804e-05
 980.5300	 3.56436e-03	-5.79267e-02	 2.98209e+02	 6.38794e-04	 1.81709e-04	 3.46145e-05
 980.5400	 3.57846e-03	-5.73377e-02	 3.04365e+02	 6.38805e-04	 1.84944e-04	 3.59587e-05
 980.5500	 3.60657e-03	-5.67482e-02	 3.10720e+02	 6.38816e-04	 1.91405e-04	 3.79925e-05
 980.5600	 3.65056e-03	-5.61577e-02	 3.17288e+02	 6.38827e-04	 2.01520e-04	 4.08466e-05
 980.5700	 3.71351e-03	-5.55657e-02	 3.24085e+02	 6.38838e-04	 2.16000e-04	 4.47202e-05
 980.5800	 3.80017e-03	-5.49717e-02	 3.31126e+02	 6.38850e-04	 2.35939e-04	 4.99104e-05
 980.5900	 3.91771e-03	-5.43752e-02	 3.38432e+02	 6.38862e-04	 2.62986e-04	 5.68605e-05
 980.6000	 4.07697e-03	-5.37755e-02	 3.46025e+02	 6.38874e-04	 2.99634e-04	 6.62389e-05
 980.6100	 4.29448e-03	-5.31719e-02	 3.53928e+02	 6.38887e-04	 3.49689e-04	 7.90717e-05
 980.6200	 4.59593e-03	-5.25639e-02	 3.62169e+02	 6.38899e-04	 4.19060e-04	 9.69661e-05
 980.6300	 5.02174e-03	-5.19514e-02	 3.70767e+02	 6.38912e-04	 5.17049e-04	 1.22482e-04
 980.6400	 5.63566e-03	-5.13361e-02	 3.79719e+02	 6.38925e-04	 6.58313e-04	 1.59715e-04
 980.6500	 6.53434e-03	-5.07242e-02	 3.88951e+02	 6.38938e-04	 8.65070e-04	 2.14983e-04
 980.6600	 7.84183e-03	-5.01331e-02	 3.98193e+02	 6.38952e-04	 1.16581e-03	 2.96613e-04
 980.6700	 9.62050e-03	-4.96036e-02	 4.06750e+02	 6.38965e-04	 1.57479e-03	 4.09287e-04
 980.6800	 1.15481e-02	-4.92010e-02	 4.13429e+02	 6.38979e-04	 2.01782e-03	 5.33053e-04
 980.6900	 1.25585e-02	-4.89445e-02	 4.17762e+02	 6.38994e-04	 2.24998e-03	 6.00624e-04
 980.7000	 1.17694e-02	-4.87008e-02	 4.21955e+02	 6.39008e-04	 2.06866e-03	 5.57779e-04
 980.7100	 9.88925e-03	-4.83196e-02	 4.28639e+02	 6.39022e-04	 1.63652e-03	 4.48258e-04
 980.7200	 8.05733e-03	-4.78032e-02	 4.37933e+02	 6.39037e-04	 1.21529e-03	 3.40105e-04
 980.7300	 6.68615e-03	-4.72175e-02	 4.48842e+02	 6.39052e-04	 8.99881e-04	 2.58116e-04
 980.7400	 5.73974e-03	-4.66071e-02	 4.60654e+02	 6.39067e-04	 6.82119e-04	 2.00808e-04
 980.7500	 5.09383e-03	-4.59918e-02	 4.73043e+02	 6.39083e-04	 5.33468e-04	 1.61275e-04
 980.7600	 4.64700e-03	-4.53788e-02	 4.85893e+02	 6.39098e-04	 4.30615e-04	 1.33720e-04
 980.7700	 4.33157e-03	-4.47702e-02	 4.99179e+02	 6.39114e-04	 3.57999e-04	 1.14213e-04
 980.7800	 4.10454e-03	-4.41661e-02	 5.12917e+02	 6.39130e-04	 3.05723e-04	 1.00223e-04
 980.7900	 3.93861e-03	-4.35660e-02	 5.27137e+02	 6.39147e-04	 2.67510e-04	 9.01290e-05
 980.8000	 3.81623e-03	-4.29692e-02	 5.41874e+02	 6.39163e-04	 2.39324e-04	 8.28890e-05
 980.8100	 3.72597e-03	-4.23750e-02	 5.57170e+02	 6.39180e-04	 2.18528e-04	 7.78247e-05
 980.8200	 3.66023e-03	-4.17829e-02	 5.73067e+02	 6.39197e-04	 2.03377e-04	 7.44975e-05
 980.8300	 3.61398e-03	-4.11923e-02	 5.89612e+02	 6.39214e-04	 1.92713e-04	 7.26314e-05
 980.8400	 3.58395e-03	-4.06027e-02	 6.06853e+02	 6.39232e-04	 1.85782e-04	 7.20685e-05
 980.8500	 3.56812e-03	-4.00139e-02	 6.24841e+02	 6.39249e-04	 1.82120e-04	 7.27441e-05
 980.8600	 3.56547e-03	-3.94253e-02	 6.43632e+02	 6.39267e-04	 1.81491e-04	 7.46751e-05
 980.8700	 3.57581e-03	-3.88366e-02	 6.63288e+02	 6.39285e-04	 1.83855e-04	 7.79599e-05
 980.8800	 3.59981e-03	-3.82474e-02	 6.83877e+02	 6.39303e-04	 1.89361e-04	 8.27895e-05
 980.8900	 3.63903e-03	-3.76573e-02	 7.05473e+02	 6.39322e-04	 1.98372e-04	 8.94705e-05
 980.9000	 3.69617e-03	-3.70659e-02	 7.28161e+02	 6.39340e-04	 2.11508e-04	 9.84659e-05
 980.9100	 3.77544e-03	-3.64727e-02	 7.52036e+02	 6.39359e-04	 2.29737e-04	 1.10462e-04
 980.9200	 3.88320e-03	-3.58771e-02	 7.77209e+02	 6.39379e-04	 2.54524e-04	 1.26481e-04
 980.9300	 4.02904e-03	-3.52785e-02	 8.03805e+02	 6.39398e-04	 2.88077e-04	 1.48057e-04
 980.9400	 4.22756e-03	-3.46762e-02	 8.31965e+02	 6.39417e-04	 3.33754e-04	 1.77548e-04
 980.9500	 4.50129e-03	-3.40697e-02	 8.61849e+02	 6.39437e-04	 3.96740e-04	 2.18642e-04
 980.9600	 4.88558e-03	-3.34585e-02	 8.93610e+02	 6.39457e-04	 4.85167e-04	 2.77237e-04
 980.9700	 5.43626e-03	-3.28438e-02	 9.27354e+02	 6.39477e-04	 6.11876e-04	 3.62856e-04
 980.9800	 6.23953e-03	-3.22299e-02	 9.62977e+02	 6.39498e-04	 7.96684e-04	 4.90615e-04
 980.9900	 7.41450e-03	-3.16299e-02	 9.99759e+02	 6.39519e-04	 1.06696e-03	 6.82176e-04
 981.0000	 9.06148e-03	-3.10763e-02	 1.03548e+03	 6.39539e-04	 1.44569e-03	 9.57377e-04
 981.0100	 1.10224e-02	-3.06298e-02	 1.06550e+03	 6.39561e-04	 1.89645e-03	 1.29234e-03
 981.0200	 1.24437e-02	-3.03367e-02	 1.08580e+03	 6.39582e-04	 2.22302e-03	 1.54380e-03
 981.0300	 1.21881e-02	-3.01099e-02	 1.10226e+03	 6.39603e-04	 2.16425e-03	 1.52581e-03
 981.0400	 1.04927e-02	-2.97762e-02	 1.12747e+03	 6.39625e-04	 1.77463e-03	 1.27979e-03
 981.0500	 8.56903e-03	-2.92936e-02	 1.16526e+03	 6.39647e-04	 1.33235e-03	 9.93073e-04
 981.0600	 7.05318e-03	-2.87226e-02	 1.21224e+03	 6.39669e-04	 9.83698e-04	 7.62790e-04
 981.0700	 5.99221e-03	-2.81167e-02	 1.26514e+03	 6.39692e-04	 7.39588e-04	 5.98547e-04
 981.0800	 5.26831e-03	-2.75019e-02	 1.32238e+03	 6.39714e-04	 5.72990e-04	 4.84718e-04
 981.0900	 4.77004e-03	-2.68879e-02	 1.38347e+03	 6.39737e-04	 4.58296e-04	 4.05617e-04
 981.1000	 4.42041e-03	-2.62781e-02	 1.44842e+03	 6.39760e-04	 3.77800e-04	 3.50086e-04
 981.1100	 4.17009e-03	-2.56728e-02	 1.51752e+03	 6.39784e-04	 3.20159e-04	 3.10838e-04
 981.1200	 3.98785e-03	-2.50716e-02	 1.59115e+03	 6.39807e-04	 2.78185e-04	 2.83201e-04
 981.1300	 3.85369e-03	-2.44740e-02	 1.66979e+03	 6.39831e-04	 2.47279e-04	 2.64189e-04
 981.1400	 3.75461e-03	-2.38791e-02	 1.75400e+03	 6.39855e-04	 2.24447e-04	 2.51897e-04
 981.1500	 3.68204e-03	-2.32865e-02	 1.84438e+03	 6.39879e-04	 2.07716e-04	 2.45142e-04
 981.1600	 3.63028e-03	-2.26956e-02	 1.94164e+03	 6.39903e-04	 1.95775e-04	 2.43242e-04
 981.1700	 3.59557e-03	-2.21059e-02	 2.04658e+03	 6.39928e-04	 1.87761e-04	 2.45903e-04
 981.1800	 3.57557e-03	-2.15170e-02	 2.16010e+03	 6.39953e-04	 1.83131e-04	 2.53153e-04
 981.1900	 3.56896e-03	-2.09285e-02	 2.28324e+03	 6.39978e-04	 1.81584e-04	 2.65335e-04
 981.2000	 3.57531e-03	-2.03399e-02	 2.41722e+03	 6.40003e-04	 1.83021e-04	 2.83139e-04
 981.2100	 3.59502e-03	-1.97510e-02	 2.56344e+03	 6.40029e-04	 1.87533e-04	 3.07682e-04
 981.2200	 3.62936e-03	-1.91614e-02	 2.72355e+03	 6.40054e-04	 1.95413e-04	 3.40648e-04
 981.2300	 3.68065e-03	-1.85705e-02	 2.89949e+03	 6.40080e-04	 2.07193e-04	 3.84532e-04
 981.2400	 3.75255e-03	-1.79780e-02	 3.09360e+03	 6.40106e-04	 2.23721e-04	 4.43020e-04
 981.2500	 3.85068e-03	-1.73833e-02	 3.30869e+03	 6.40133e-04	 2.46285e-04	 5.21631e-04
 981.2600	 3.98347e-03	-1.67858e-02	 3.54814e+03	 6.40159e-04	 2.76825e-04	 6.28774e-04
 981.2700	 4.16368e-03	-1.61848e-02	 3.81611e+03	 6.40186e-04	 3.18282e-04	 7.77569e-04
 981.2800	 4.41094e-03	-1.55797e-02	 4.11764e+03	 6.40213e-04	 3.75169e-04	 9.89009e-04
 981.2900	 4.75588e-03	-1.49701e-02	 4.45879e+03	 6.40240e-04	 4.54534e-04	 1.29756e-03
 981.3000	 5.24684e-03	-1.43563e-02	 4.84636e+03	 6.40268e-04	 5.67496e-04	 1.76092e-03
 981.3100	 5.95937e-03	-1.37414e-02	 5.28644e+03	 6.40295e-04	 7.31427e-04	 2.47579e-03
 981.3200	 7.00343e-03	-1.31347e-02	 5.77938e+03	 6.40323e-04	 9.71599e-04	 3.59557e-03
 981.3300	 8.49848e-03	-1.25613e-02	 6.30576e+03	 6.40351e-04	 1.31542e-03	 5.31155e-03
 981.3400	 1.04126e-02	-1.20732e-02	 6.80177e+03	 6.40380e-04	 1.75547e-03	 7.64633e-03
 981.3500	 1.21464e-02	-1.17323e-02	 7.17328e+03	 6.40408e-04	 2.15388e-03	 9.89457e-03
 981.3600	 1.24912e-02	-1.15042e-02	 7.45046e+03	 6.40437e-04	 2.23307e-03	 1.06552e-02
 981.3700	 1.11290e-02	-1.12180e-02	 7.85414e+03	 6.40466e-04	 1.92004e-03	 9.65840e-03
 981.3800	 9.16736e-03	-1.07786e-02	 8.53473e+03	 6.40495e-04	 1.46908e-03	 8.03067e-03
 981.3900	 7.49681e-03	-1.02289e-02	 9.49818e+03	 6.40525e-04	 1.08489e-03	 6.60025e-03
 981.4000	 6.29951e-03	-9.63035e-03	 1.07295e+04	 6.40554e-04	 8.09428e-04	 5.56304e-03
 981.4100	 5.48019e-03	-9.01684e-03	 1.22475e+04	 6.40584e-04	 6.20878e-04	 4.87113e-03
 981.4200	 4.91874e-03	-8.40213e-03	 1.41092e+04	 6.40614e-04	 4.91642e-04	 4.44372e-03
 981.4300	 4.52729e-03	-7.79089e-03	 1.64102e+04	 6.40644e-04	 4.01517e-04	 4.22119e-03
 981.4400	 4.24873e-03	-7.18419e-03	 1.92952e+04	 6.40675e-04	 3.37369e-04	 4.17054e-03
 981.4500	 4.04688e-03	-6.58181e-03	 2.29796e+04	 6.40706e-04	 2.90875e-04	 4.28261e-03
 981.4600	 3.89869e-03	-5.98315e-03	 2.77907e+04	 6.40737e-04	 2.56732e-04	 4.57150e-03
 981.4700	 3.78924e-03	-5.38753e-03	 3.42430e+04	 6.40768e-04	 2.31505e-04	 5.07963e-03
 981.4800	 3.70872e-03	-4.79433e-03	 4.31816e+04	 6.40799e-04	 2.12937e-04	 5.89212e-03
 981.4900	 3.65062e-03	-4.20298e-03	 5.60722e+04	 6.40831e-04	 1.99530e-04	 7.16967e-03
 981.5000	 3.61064e-03	-3.61299e-03	 7.56375e+04	 6.40863e-04	 1.90295e-04	 9.22419e-03
 981.5100	 3.58601e-03	-3.02391e-03	 1.07404e+05	 6.40895e-04	 1.84592e-04	 1.27064e-02
 981.5200	 3.57510e-03	-2.43535e-03	 1.63993e+05	 6.40927e-04	 1.82049e-04	 1.91347e-02
 981.5300	 3.57721e-03	-1.84691e-03	 2.79390e+05	 6.40959e-04	 1.82501e-04	 3.26818e-02
 981.5400	 3.59245e-03	-1.25824e-03	 5.70288e+05	 6.40992e-04	 1.85978e-04	 6.79844e-02
 981.5500	 3.62181e-03	-6.68931e-04	 1.61010e+06	 6.41025e-04	 1.92703e-04	 1.98892e-01
 981.5600	 3.66721e-03	-7.85799e-05	 5.42440e+06	 6.41058e-04	 2.03121e-04	 7.06325e-01
 981.5700	 3.73183e-03	 5.13270e-04	 2.23291e+06	 6.41091e-04	 2.17965e-04	 3.12016e-01
 981.5800	 3.82056e-03	 1.10713e-03	 7.04925e+05	 6.41125e-04	 2.38356e-04	 1.07724e-01
 981.5900	 3.94074e-03	 1.70359e-03	 3.21891e+05	 6.41159e-04	 2.65988e-04	 5.48955e-02
 981.6000	 4.10347e-03	 2.30329e-03	 1.80972e+05	 6.41193e-04	 3.03414e-04	 3.52075e-02
 981.6100	 4.32570e-03	 2.90691e-03	 1.15024e+05	 6.41227e-04	 3.54535e-04	 2.61493e-02
 981.6200	 4.63376e-03	 3.51499e-03	 7.91579e+04	 6.41262e-04	 4.25406e-04	 2.15940e-02
 981.6300	 5.06907e-03	 4.12748e-03	 5.75820e+04	 6.41296e-04	 5.25556e-04	 1.94073e-02
 981.6400	 5.69681e-03	 4.74261e-03	 4.36539e+04	 6.41331e-04	 6.69977e-04	 1.87571e-02
 981.6500	 6.61530e-03	 5.35381e-03	 3.42219e+04	 6.41366e-04	 8.81268e-04	 1.93428e-02
 981.6600	 7.94856e-03	 5.94278e-03	 2.76848e+04	 6.41402e-04	 1.18791e-03	 2.10938e-02
 981.6700	 9.74988e-03	 6.46744e-03	 2.32346e+04	 6.41437e-04	 1.60207e-03	 2.38764e-02
 981.6800	 1.16672e-02	 6.86230e-03	 2.04793e+04	 6.41473e-04	 2.04270e-03	 2.68348e-02
 981.6900	 1.26099e-02	 7.11359e-03	 1.89991e+04	 6.41509e-04	 2.25926e-03	 2.75361e-02
 981.7000	 1.17499e-02	 7.36015e-03	 1.78809e+04	 6.41545e-04	 2.06163e-03	 2.36497e-02
 981.7100	 9.85103e-03	 7.74707e-03	 1.63309e+04	 6.41582e-04	 1.62518e-03	 1.70279e-02
 981.7200	 8.03070e-03	 8.26679e-03	 1.44654e+04	 6.41618e-04	 1.20658e-03	 1.11986e-02
 981.7300	 6.67427e-03	 8.85373e-03	 1.26714e+04	 6.41655e-04	 8.94547e-04	 7.27326e-03
 981.7400	 5.73837e-03	 9.46435e-03	 1.11173e+04	 6.41692e-04	 6.79179e-04	 4.84517e-03
 981.7500	 5.09898e-03	 1.00794e-02	 9.81554e+03	 6.41729e-04	 5.32008e-04	 3.35107e-03
 981.7600	 4.65608e-03	 1.06921e-02	 8.73011e+03	 6.41767e-04	 4.30037e-04	 2.40937e-03
 981.7700	 4.34304e-03	 1.13004e-02	 7.81962e+03	 6.41805e-04	 3.57947e-04	 1.79642e-03
 981.7800	 4.11748e-03	 1.19042e-02	 7.04893e+03	 6.41843e-04	 3.05990e-04	 1.38439e-03
 981.7900	 3.95250e-03	 1.25040e-02	 6.39039e+03	 6.41881e-04	 2.67973e-04	 1.09919e-03
 981.8000	 3.83076e-03	 1.31006e-02	 5.82266e+03	 6.41919e-04	 2.39911e-04	 8.96709e-04
 981.8100	 3.74094e-03	 1.36946e-02	 5.32926e+03	 6.41958e-04	 2.19196e-04	 7.49904e-04
 981.8200	 3.67554e-03	 1.42865e-02	 4.89732e+03	 6.41997e-04	 2.04101e-04	 6.41706e-04
 981.8300	 3.62957e-03	 1.48769e-02	 4.51671e+03	 6.42036e-04	 1.93480e-04	 5.61070e-04
 981.8400	 3.59979e-03	 1.54662e-02	 4.17935e+03	 6.42075e-04	 1.86584e-04	 5.00689e-04
 981.8500	 3.58420e-03	 1.60549e-02	 3.87870e+03	 6.42115e-04	 1.82954e-04	 4.55659e-04
 981.8600	 3.58177e-03	 1.66433e-02	 3.60946e+03	 6.42154e-04	 1.82357e-04	 4.22673e-04
 981.8700	 3.59236e-03	 1.72318e-02	 3.36726e+03	 6.42194e-04	 1.84754e-04	 3.99520e-04
 981.8800	 3.61662e-03	 1.78209e-02	 3.14846e+03	 6.42234e-04	 1.90299e-04	 3.84794e-04
 981.8900	 3.65613e-03	 1.84108e-02	 2.95001e+03	 6.42275e-04	 1.99353e-04	 3.77718e-04
 981.9000	 3.71357e-03	 1.90020e-02	 2.76936e+03	 6.42315e-04	 2.12537e-04	 3.78060e-04
 981.9100	 3.79316e-03	 1.95951e-02	 2.60431e+03	 6.42356e-04	 2.30818e-04	 3.86135e-04
 981.9200	 3.90125e-03	 2.01906e-02	 2.45300e+03	 6.42397e-04	 2.55660e-04	 4.02870e-04
 981.9300	 4.04742e-03	 2.07890e-02	 2.31383e+03	 6.42439e-04	 2.89266e-04	 4.29992e-04
 981.9400	 4.24620e-03	 2.13912e-02	 2.18541e+03	 6.42480e-04	 3.34981e-04	 4.70341e-04
 981.9500	 4.52004e-03	 2.19976e-02	 2.06657e+03	 6.42522e-04	 3.97969e-04	 5.28429e-04
 981.9600	 4.90409e-03	 2.26086e-02	 1.95634e+03	 6.42564e-04	 4.86319e-04	 6.11339e-04
 981.9700	 5.45382e-03	 2.32232e-02	 1.85408e+03	 6.42606e-04	 6.12788e-04	 7.30103e-04
 981.9800	 6.25486e-03	 2.38372e-02	 1.75966e+03	 6.42648e-04	 7.97061e-04	 9.01349e-04
 981.9900	 7.42578e-03	 2.44375e-02	 1.67397e+03	 6.42691e-04	 1.06638e-03	 1.14726e-03
 982.0000	 9.06833e-03	 2.49922e-02	 1.59996e+03	 6.42734e-04	 1.44408e-03	 1.48501e-03
 982.0100	 1.10339e-02	 2.54413e-02	 1.54318e+03	 6.42777e-04	 1.89587e-03	 1.88055e-03
 982.0200	 1.24870e-02	 2.57367e-02	 1.50726e+03	 6.42820e-04	 2.22971e-03	 2.16037e-03
 982.0300	 1.22788e-02	 2.59618e-02	 1.48143e+03	 6.42863e-04	 2.18183e-03	 2.07789e-03
 982.0400	 1.06025e-02	 2.62904e-02	 1.44553e+03	 6.42907e-04	 1.79658e-03	 1.66963e-03
 982.0500	 8.66725e-03	 2.67688e-02	 1.39508e+03	 6.42951e-04	 1.35164e-03	 1.21237e-03
 982.0600	 7.13191e-03	 2.73378e-02	 1.33803e+03	 6.42995e-04	 9.98482e-04	 8.59040e-04
 982.0700	 6.05436e-03	 2.79430e-02	 1.28090e+03	 6.43040e-04	 7.50539e-04	 6.18198e-04
 982.0800	 5.31845e-03	 2.85577e-02	 1.22645e+03	 6.43084e-04	 5.81159e-04	 4.58367e-04
 982.0900	 4.81183e-03	 2.91717e-02	 1.17542e+03	 6.43129e-04	 4.64521e-04	 3.51153e-04
 982.1000	 4.45637e-03	 2.97817e-02	 1.12779e+03	 6.43174e-04	 3.82663e-04	 2.77571e-04
 982.1100	 4.20192e-03	 3.03871e-02	 1.08332e+03	 6.43219e-04	 3.24050e-04	 2.25801e-04
 982.1200	 4.01669e-03	 3.09884e-02	 1.04170e+03	 6.43265e-04	 2.81365e-04	 1.88539e-04
 982.1300	 3.88031e-03	 3.15861e-02	 1.00265e+03	 6.43310e-04	 2.49927e-04	 1.61207e-04
 982.1400	 3.77956e-03	 3.21810e-02	 9.65936e+02	 6.43356e-04	 2.26686e-04	 1.40872e-04
 982.1500	 3.70568e-03	 3.27736e-02	 9.31326e+02	 6.43402e-04	 2.09633e-04	 1.25616e-04
 982.1600	 3.65288e-03	 3.33645e-02	 8.98636e+02	 6.43449e-04	 1.97431e-04	 1.14160e-04
 982.1700	 3.61732e-03	 3.39542e-02	 8.67700e+02	 6.43495e-04	 1.89198e-04	 1.05641e-04
 982.1800	 3.59658e-03	 3.45431e-02	 8.38374e+02	 6.43542e-04	 1.84378e-04	 9.94770e-05
 982.1900	 3.58931e-03	 3.51316e-02	 8.10528e+02	 6.43589e-04	 1.82656e-04	 9.52821e-05
 982.2000	 3.59503e-03	 3.57201e-02	 7.84049e+02	 6.43636e-04	 1.83925e-04	 9.28162e-05
 982.2100	 3.61407e-03	 3.63089e-02	 7.58833e+02	 6.43684e-04	 1.88263e-04	 9.19566e-05
 982.2200	 3.64767e-03	 3.68984e-02	 7.34784e+02	 6.43731e-04	 1.95950e-04	 9.26850e-05
 982.2300	 3.69806e-03	 3.74891e-02	 7.11818e+02	 6.43779e-04	 2.07501e-04	 9.50882e-05
 982.2400	 3.76881e-03	 3.80815e-02	 6.89853e+02	 6.43827e-04	 2.23741e-04	 9.93736e-05
 982.2500	 3.86537e-03	 3.86760e-02	 6.68816e+02	 6.43876e-04	 2.45921e-04	 1.05902e-04
 982.2600	 3.99594e-03	 3.92733e-02	 6.48637e+02	 6.43924e-04	 2.75929e-04	 1.15248e-04
 982.2700	 4.17290e-03	 3.98740e-02	 6.29251e+02	 6.43973e-04	 3.16614e-04	 1.28299e-04
 982.2800	 4.41524e-03	 4.04788e-02	 6.10599e+02	 6.44022e-04	 3.72348e-04	 1.46422e-04
 982.2900	 4.75256e-03	 4.10881e-02	 5.92637e+02	 6.44071e-04	 4.49938e-04	 1.71742e-04
 982.3000	 5.23149e-03	 4.17017e-02	 5.75342e+02	 6.44121e-04	 5.60111e-04	 2.07572e-04
 982.3100	 5.92500e-03	 4.23169e-02	 5.58755e+02	 6.44170e-04	 7.19645e-04	 2.59024e-04
 982.3200	 6.94030e-03	 4.29249e-02	 5.43056e+02	 6.44220e-04	 9.53179e-04	 3.33467e-04
 982.3300	 8.39918e-03	 4.35028e-02	 5.28737e+02	 6.44270e-04	 1.28867e-03	 4.38986e-04
 982.3400	 1.02960e-02	 4.40009e-02	 5.16830e+02	 6.44321e-04	 1.72472e-03	 5.74339e-04
 982.3500	 1.20999e-02	 4.43552e-02	 5.08580e+02	 6.44371e-04	 2.13924e-03	 7.01060e-04
 982.3600	 1.26168e-02	 4.45862e-02	 5.03316e+02	 6.44422e-04	 2.25793e-03	 7.32356e-04
 982.3700	 1.13755e-02	 4.48588e-02	 4.97252e+02	 6.44473e-04	 1.97268e-03	 6.32175e-04
 982.3800	 9.41236e-03	 4.52833e-02	 4.88001e+02	 6.44524e-04	 1.52138e-03	 4.78519e-04
 982.3900	 7.69008e-03	 4.58250e-02	 4.76533e+02	 6.44576e-04	 1.12529e-03	 3.45646e-04
 982.4000	 6.44289e-03	 4.64206e-02	 4.64373e+02	 6.44627e-04	 8.38343e-04	 2.50956e-04
 982.4100	 5.58724e-03	 4.70335e-02	 4.52338e+02	 6.44679e-04	 6.41417e-04	 1.87045e-04
 982.4200	 5.00115e-03	 4.76485e-02	 4.40727e+02	 6.44731e-04	 5.06490e-04	 1.43920e-04
 982.4300	 4.59308e-03	 4.82603e-02	 4.29617e+02	 6.44784e-04	 4.12519e-04	 1.14272e-04
 982.4400	 4.30313e-03	 4.88676e-02	 4.19000e+02	 6.44836e-04	 3.45729e-04	 9.34113e-05
 982.4500	 4.09329e-03	 4.94705e-02	 4.08847e+02	 6.44889e-04	 2.97373e-04	 7.84057e-05
 982.4600	 3.93933e-03	 5.00696e-02	 3.99120e+02	 6.44942e-04	 2.61881e-04	 6.74105e-05
 982.4700	 3.82561e-03	 5.06656e-02	 3.89784e+02	 6.44995e-04	 2.35647e-04	 5.92439e-05
 982.4800	 3.74182e-03	 5.12591e-02	 3.80811e+02	 6.45049e-04	 2.16306e-04	 5.31338e-05
 982.4900	 3.68116e-03	 5.18507e-02	 3.72171e+02	 6.45102e-04	 2.02286e-04	 4.85666e-05
 982.5000	 3.63908e-03	 5.24409e-02	 3.63843e+02	 6.45156e-04	 1.92546e-04	 4.51973e-05
 982.5100	 3.61266e-03	 5.30301e-02	 3.55804e+02	 6.45210e-04	 1.86410e-04	 4.27939e-05
 982.5200	 3.60015e-03	 5.36188e-02	 3.48036e+02	 6.45265e-04	 1.83476e-04	 4.12043e-05
 982.5300	 3.60074e-03	 5.42072e-02	 3.40523e+02	 6.45319e-04	 1.83557e-04	 4.03359e-05
 982.5400	 3.61444e-03	 5.47959e-02	 3.33248e+02	 6.45374e-04	 1.86656e-04	 4.01441e-05
 982.5500	 3.64212e-03	 5.53852e-02	 3.26198e+02	 6.45429e-04	 1.92972e-04	 4.06278e-05
 982.5600	 3.68556e-03	 5.59754e-02	 3.19358e+02	 6.45484e-04	 2.02919e-04	 4.18298e-05
 982.5700	 3.74778e-03	 5.65671e-02	 3.12715e+02	 6.45540e-04	 2.17187e-04	 4.38435e-05
 982.5800	 3.83339e-03	 5.71608e-02	 3.06258e+02	 6.45595e-04	 2.36838e-04	 4.68273e-05
 982.5900	 3.94934e-03	 5.77570e-02	 2.99973e+02	 6.45651e-04	 2.63474e-04	 5.10291e-05
 982.6000	 4.10612e-03	 5.83563e-02	 2.93849e+02	 6.45707e-04	 2.99508e-04	 5.68288e-05
 982.6100	 4.31970e-03	 5.89595e-02	 2.87875e+02	 6.45764e-04	 3.48614e-04	 6.48071e-05
 982.6200	 4.61479e-03	 5.95671e-02	 2.82041e+02	 6.45820e-04	 4.16479e-04	 7.58607e-05
 982.6300	 5.03019e-03	 6.01792e-02	 2.76344e+02	 6.45877e-04	 5.12026e-04	 9.13887e-05
 982.6400	 5.62698e-03	 6.07944e-02	 2.70794e+02	 6.45934e-04	 6.49307e-04	 1.13574e-04
 982.6500	 6.49828e-03	 6.14071e-02	 2.65436e+02	 6.45991e-04	 8.49722e-04	 1.45701e-04
 982.6600	 7.76685e-03	 6.20016e-02	 2.60394e+02	 6.46049e-04	 1.14147e-03	 1.92027e-04
 982.6700	 9.51110e-03	 6.25401e-02	 2.55957e+02	 6.46107e-04	 1.54250e-03	 2.55092e-04
 982.6800	 1.14747e-02	 6.29586e-02	 2.52590e+02	 6.46164e-04	 1.99378e-03	 3.25413e-04
 982.6900	 1.26666e-02	 6.32260e-02	 2.50470e+02	 6.46223e-04	 2.26760e-03	 3.67032e-04
 982.7000	 1.20834e-02	 6.34585e-02	 2.48635e+02	 6.46281e-04	 2.13354e-03	 3.42834e-04
 982.7100	 1.02549e-02	 6.38182e-02	 2.45823e+02	 6.46339e-04	 1.71327e-03	 2.72213e-04
 982.7200	 8.36652e-03	 6.43201e-02	 2.41979e+02	 6.46398e-04	 1.27904e-03	 2.00060e-04
 982.7300	 6.92236e-03	 6.48997e-02	 2.37656e+02	 6.46457e-04	 9.46817e-04	 1.45463e-04
 982.7400	 5.91862e-03	 6.55083e-02	 2.33245e+02	 6.46517e-04	 7.15830e-04	 1.07945e-04
 982.7500	 5.23283e-03	 6.61236e-02	 2.28913e+02	 6.46576e-04	 5.57963e-04	 8.25839e-05
 982.7600	 4.75892e-03	 6.67371e-02	 2.24716e+02	 6.46636e-04	 4.48836e-04	 6.52202e-05
 982.7700	 4.42493e-03	 6.73465e-02	 2.20664e+02	 6.46696e-04	 3.71904e-04	 5.30716e-05
 982.7800	 4.18490e-03	 6.79512e-02	 2.16750e+02	 6.46756e-04	 3.16594e-04	 4.43816e-05
 982.7900	 4.00964e-03	 6.85519e-02	 2.12966e+02	 6.46816e-04	 2.76191e-04	 3.80453e-05
 982.8000	 3.88040e-03	 6.91493e-02	 2.09302e+02	 6.46877e-04	 2.46379e-04	 3.33579e-05
 982.8100	 3.78493e-03	 6.97438e-02	 2.05749e+02	 6.46938e-04	 2.24341e-04	 2.98613e-05
 982.8200	 3.71514e-03	 7.03362e-02	 2.02297e+02	 6.46999e-04	 2.08214e-04	 2.72523e-05
 982.8300	 3.66564e-03	 7.09270e-02	 1.98942e+02	 6.47060e-04	 1.96757e-04	 2.53280e-05
 982.8400	 3.63290e-03	 7.15167e-02	 1.95676e+02	 6.47121e-04	 1.89157e-04	 2.39522e-05
 982.8500	 3.61469e-03	 7.21056e-02	 1.92493e+02	 6.47183e-04	 1.84904e-04	 2.30351e-05
 982.8600	 3.60984e-03	 7.26942e-02	 1.89390e+02	 6.47245e-04	 1.83726e-04	 2.25214e-05
 982.8700	 3.61802e-03	 7.32829e-02	 1.86362e+02	 6.47307e-04	 1.85546e-04	 2.23830e-05
 982.8800	 3.63973e-03	 7.38719e-02	 1.83403e+02	 6.47369e-04	 1.90481e-04	 2.26157e-05
 982.8900	 3.67635e-03	 7.44618e-02	 1.80511e+02	 6.47432e-04	 1.98848e-04	 2.32391e-05
 982.9000	 3.73033e-03	 7.50530e-02	 1.77681e+02	 6.47495e-04	 2.11213e-04	 2.42995e-05
 982.9100	 3.80554e-03	 7.56458e-02	 1.74909e+02	 6.47558e-04	 2.28465e-04	 2.58769e-05
 982.9200	 3.90785e-03	 7.62410e-02	 1.72192e+02	 6.47621e-04	 2.51954e-04	 2.80967e-05
 982.9300	 4.04606e-03	 7.68390e-02	 1.69526e+02	 6.47685e-04	 2.83706e-04	 3.11508e-05
 982.9400	 4.23352e-03	 7.74406e-02	 1.66907e+02	 6.47748e-04	 3.26792e-04	 3.53307e-05
 982.9500	 4.49072e-03	 7.80464e-02	 1.64331e+02	 6.47812e-04	 3.85929e-04	 4.10845e-05
 982.9600	 4.84965e-03	 7.86567e-02	 1.61798e+02	 6.47877e-04	 4.68477e-04	 4.91081e-05
 982.9700	 5.36074e-03	 7.92711e-02	 1.59309e+02	 6.47941e-04	 5.86032e-04	 6.04917e-05
 982.9800	 6.10243e-03	 7.98863e-02	 1.56877e+02	 6.48006e-04	 7.56633e-04	 7.69171e-05
 982.9900	 7.18744e-03	 8.04918e-02	 1.54541e+02	 6.48071e-04	 1.00618e-03	 1.00773e-04
 983.0000	 8.73227e-03	 8.10610e-02	 1.52400e+02	 6.48136e-04	 1.36141e-03	 1.34474e-04

①のグラフでは、tht0を変化させるとABS(G) [dB](gab_db)とARG(G) [rad](gph)は共に短波長側にシフトしていきますが、そのずれ量は同じです。その結果、グラフ中の上向き矢印で示すように共振条件(gphが0になる波長)におけるレーザ発振に必要な閾値利得(gab_dbの値)はtht0に関係なく一定になります。閾値利得が小さいほど同じ電流値に対する出力光強度は大きくなるので、閾値利得が同じということはtht0による光強度の 変化はないということです。従って、このモデルでは縦モードにサブピークを生じることはありません。

そこで次に考えたのが講演資料15頁の「②ビーム拡がりで反射戻り光は垂直と仮定」というモデルです。半導体基板中での光ビームの拡がり角は小さいとはいえ、基板裏面に垂直に入射するものもあるので、これが垂直共振器に戻ると考えたのです。このモデルに対する計算をするためには、ref_read.tsvではなくプログラムそのものを修正する必要があります。修正後のプログラムが以下のref3.cです。変更しているのは下部反射器の実効反射率crr2を計算する109行目からのforループで、i<2(i=0の外界とi=1の半導体基板)では入射角tht1と屈折角tht2がtht0に依らず0であるとしています。


/*
---------------------------------------------------------
Calculation of phase condition for a vertical cavity
* Modified from ref2.c.
* In ref2.c, the ray in the substrate bent by refraction.
  Here always vertical even when tilted in the cavity.

        i=0,1,2,...,nc(QW),nc+1,...,nl
          <--------------------------> light

since 2015/8/25
by K. Matsuda
---------------------------------------------------------
*/

/* header files */
#include <stdio.h>
#include <complex.h>
#include <math.h>

/* macros */
#define N_ARY 150

/* main */
int main(void){
	int     spflg, nl, nc, i, imax, i_wl;
//          (spflg: =0 for s-wave, =1 for p-wave)
	double  wl, tht0, wl_s, wl_e, dwl, dn, wlin, tht1, tht2;
	double  phi1, gab_dB, gph, ss, t1, t2, tt;
	double  n[N_ARY], l[N_ARY], a[N_ARY], nw[N_ARY];
	double complex  crr, cr, cwk1, cwk2, cwk3, crr1, crr2, cg;
	double complex  cn[N_ARY];
	FILE    *fp;
	char    *ifname = "ref_read.tsv";
	char    *ofname = "ref3_out.tsv";

	printf("start\n");
	printf("reading...\n");
	fp = fopen(ifname, "r");
	if(fp == NULL){
		printf("Error: cannot open the file '%s'\n", ifname);
		return -1;
	}
	fscanf(fp, "%lf\t%lf\t%d\n", &wl, &tht0, &spflg);
	fscanf(fp, "%d\t%d\n", &nl, &nc);
	fscanf(fp, "%lf\n", &n[0]);
	for(i=1; i<nl+1; i++){
		fscanf(fp, "%lf\t%lf\t%lf\n", &n[i], &l[i], &a[i]);
	}
	fscanf(fp, "%lf\n", &n[nl+1]);
	fscanf(fp, "%lf\t%lf\t%lf\n", &wl_s, &wl_e, &dwl);
	fscanf(fp, "%lf\n", &dn);
	fclose(fp);

	printf("calc...\n");
	fp = fopen(ofname, "w");
	if(spflg == 0){
		fprintf(fp, "dn\ttht0\tS-wave\n");
	}else{
		fprintf(fp, "dn\ttht0\tP-wave\n");
	}
	fprintf(fp, "%9.3e\t%6.3f\n", dn, tht0);
	fprintf(fp, "wavelength\tgab_dB\tgph\tss\tt1\tt2\ttt\n");

	tht0 = tht0*M_PI/180.0;
	for(i=1; i<nl+1; i++){
		if(l[i]<5.0){
			l[i] = wl*l[i]/n[i];
		}
	}
	imax = (int)(wl_e - wl_s)/dwl;

	for(i_wl=0; i_wl<imax+1; i_wl++){
		wlin = wl_s + i_wl*dwl;
		nw[0] = (n[0] - 7.4e-4*(wlin-wl))*(1.0 + dn);
		cn[0] = nw[0] + I*0.0;
		for(i=1; i<nl; i++){
			nw[i] = (n[i] - 7.4e-4*(wlin - wl))*(1.0 + dn);
			cn[i] = nw[i] - I*(a[i]*(wlin/1.0e7)/(4.0*M_PI));
		}
		nw[nl] = n[nl] - 7.4e-4*(wlin-wl);
		cn[nl] = nw[nl] - I*(a[nl]*(wlin/1.0e7)/(4.0*M_PI));
		nw[nl+1] = n[nl+1];
		cn[nl+1] = nw[nl+1] + I*0.0;

		crr = 0.0 + I*0.0;
		for(i=0; i<nc; i++){
			tht1 = asin(sin(tht0)*nw[0]/nw[i]);
			tht2 = asin(sin(tht0)*nw[0]/nw[i+1]);
			if(spflg == 0){
				cr = (cn[i+1]*cos(tht2) - cn[i]*cos(tht1))/
					 (cn[i+1]*cos(tht2) + cn[i]*cos(tht1));
			}else{
				cr = (cn[i]*cos(tht2) - cn[i+1]*cos(tht1))/
					 (cn[i]*cos(tht2) + cn[i+1]*cos(tht1));
			}
			if(i == 0){
				crr = cr;
			}else{
				cwk3 = I*4.0*M_PI*cn[i]*l[i]*cos(tht1)/wlin;
				cwk1 = cr + crr*cexp(cwk3);
				cwk2 = 1.0 + cr*crr*cexp(cwk3);
				crr = cwk1/cwk2;
			}
		}
		crr1 = crr;

		crr = 0.0 + I*0.0;
		for(i=0; i<nl-nc+1; i++){
			if(i<2){
				tht1 = 0.0;
				tht2 = 0.0;
			}else{
				tht1 = asin(sin(tht0)*nw[0]/nw[nl-i+1]);
				tht2 = asin(sin(tht0)*nw[0]/nw[nl-i]);
			}
			if(spflg == 0){
				cr = (cn[nl-i]*cos(tht2) - cn[nl-i+1]*cos(tht1))/
					 (cn[nl-i]*cos(tht2) + cn[nl-i+1]*cos(tht1));
			}else{
				cr = (cn[nl-i+1]*cos(tht2) - cn[nl-i]*cos(tht1))/
					 (cn[nl-i+1]*cos(tht2) + cn[nl-i]*cos(tht1));
			}
			if(i == 0){
				crr = cr;
			}else{
				cwk3 = I*4.0*M_PI*cn[nl-i+1]*l[nl-i+1]*cos(tht1)/wlin;
				cwk1 = cr + crr*cexp(cwk3);
				cwk2 = 1.0 + cr*crr*cexp(cwk3);
				crr = cwk1/cwk2;
			}
		}
		crr2 = crr;

		tht1 = asin(sin(tht0)*nw[0]/nw[nc]);
		phi1 = 4.0*M_PI*nw[nc]*l[nc]*cos(tht1)/wlin;
		cg = 1.0/(crr1*crr2*cexp(I*phi1));
		gab_dB = 20.0*log10(cabs(cg));
		gph = carg(cg);
		ss = cabs(cpow(1.0/(1.0 - 1.0/cg), 2.0));
		t1 = 1.0 - cabs(cpow(crr1, 2.0));
		t2 = 1.0 - cabs(cpow(crr2, 2.0));
		tt = t1*t2*ss;
		fprintf(fp, "%9.4f\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\n",
				wlin, gab_dB, gph, ss, t1, t2, tt);
	}
	fclose(fp);
	printf("end.\n");
	return 0;
}

②のグラフはref3.cによって計算したref3_out.tsvをグラフ化したものですが、①のグラフと同様にtht0が0°、1.0°、1.5°の結果をまとめてあります。この場合は、ARG(G) [rad](gph)は短波長側にシフトしていきますが、ABS(G) [dB](gab_db)の方は変化しません(グラフでは3条件が重なっているので一番上のtht=1.5°しか見えません)。その結果、上向き矢印で示す共振条件における閾値利得はtht0によって変化することになり、このモデルであれば縦モードにサブピークが生じることを説明できます。これで縦モードについては解決したので、次は遠視野像についての検討です。

今までの結果と、さらに追加した解析をまとめたのが講演資料16頁にある一覧表です。表の横軸にあるI-Lは電流-光出力のグラフで、FFPは遠視野像です。縦軸の1行目は垂直光しか考えなかった場合で、2行目がref3.cによる解析です。遠視野像のミルククラウンから、垂直共振器内で斜めモードが発振しているのではないかと考えたのが、3行目と4行目のモデルです。3行目では斜め光が垂直共振器に戻り、4行目では垂直光が戻ります。これらのモデルを解析するために新たにref4.cを作成しましたが、結論として物理現象をうまく説明できないことが分ったので、ref4.cについては紹介しません。

確かに、垂直共振器で斜め光がメインモードとして発振するというのはおかしな話で、ミルククラウンの美しさに幻惑されてしまったとしか言えません。では、遠視野像のミルククラウンの原因は何なのか? 垂直発振光は半導体基板内で拡がり角を持ち、半導体基板が光学フィルタとして機能するために出射角度による放射光の強弱が生じます。3次元的に見れば、これは同心円状の強弱になります。一方、駆動電流による垂直共振器の温度上昇で垂直発振光の波長自体が長波長側にシフトしていきます。この結果、放射光が強められる角度が変って、同心円が波紋状に広がって行くミルククラウンになるというのが正しい解釈だと思われます。

6. Pythonプログラム

駄待ち狐は、FORTRANからCへの移植を行ってからさらに8年後の2023年、ref3.cをPythonに移植しようと思い立ちました。「I. 人生の余技として作成したプログラム」の「自作プログラムの50年史」で紹介した年表はそのずっと前から作成していて、Cに「お疲れさまでした」と言うためにはPythonへの移植が必要だと感じたためです。Pythonでも複素数型と複素関数は扱えるので、移植自体には何の困難もありません。それだけでは物足りないと思ったので、Cのプログラムではtht0が0°、1.0°、1.5°のそれぞれに対してプログラムを走らせて、その結果をExcel上でまとめていたのを一括処理できるようにしました。


"""
Calculation of phase condition for a vertical cavity
* Converted from ref3.c of C version.
* In ref3.c, three ray-angle conditions are calculated one by one.
  Here calculated in a run and saved directly in the Excel file.

        i=0,1,2,...,nc(qw),nc+1,...,nl, nl+1
                                   sub, air
          <---------------------------> light

since 2015/8/25
by K. Matsuda
"""

import math
import cmath
import openpyxl


# Reading analysis conditions and VC structures from 'ref_read.tsv'
file = open('ref_read.tsv', 'r')
wl, tht0, spflg = [float(s) for s in file.readline().split()]
nl, nc = [int(s) for s in file.readline().split()]
n = [0.0] * (nl + 2)
l = [0.0] * (nl + 2)
a = [0.0] * (nl + 2)
n[0], = [float(s) for s in file.readline().split()]
for i in range(1, nl + 1):
    n[i], l[i], a[i] = [float(s) for s in file.readline().split()]
n[nl + 1], = [float(s) for s in file.readline().split()]
wl_s, wl_e, dwl = [float(s) for s in file.readline().split()]
dn, = [float(s) for s in file.readline().split()]
file.close()

# Converting readout parameters
tht0s = [0.0, 1.0, 1.5]                 # ignoring tht0 readout
tht0_labels = ['0°  ', '1°  ', '1.5°']  # used in the Excel file
spflg = int(spflg)
for i in range(1, nl+1):
    if l[i] < 5.0:
        l[i] = wl * l[i] / n[i]
imax = int((wl_e - wl_s) / dwl)

gains = []   # gains[0] = [gab_dBs, gphs] for tht0=0.0
# Loop for changing tht0
for i_tht0, tht0 in enumerate(tht0s):
    # Values for the top row in the Excel file given here
    wls = ['wavelength']
    gab_dBs = [tht0_labels[i_tht0] + ' ABS']
    gphs = [tht0_labels[i_tht0] + ' ARG']
    tht0 = tht0 * math.pi / 180.0
    # Loop for changing wavelength
    for i_wl in range(imax + 1):
        # Calculating real and complex refractive indices for each wavelength
        wlin = wl_s + i_wl * dwl
        nw = []
        cn = []
        nw.append((n[0] - 7.4e-4 * (wlin - wl)) * (1.0 + dn))
        cn.append(nw[0] + 0.0j)
        for i in range(1, nl):
            nw.append((n[i] - 7.4e-4 * (wlin - wl)) * (1.0 + dn))
            cn_imag = -1.0 * a[i] * (wlin / 1.0e7) / (4.0 * math.pi)
            cn.append(complex(nw[i], cn_imag))
        nw.append((n[nl] - 7.4e-4 * (wlin - wl)))
        cn_imag = -1.0 * a[nl] * (wlin / 1.0e7) / (4.0 * math.pi)
        cn.append(complex(nw[nl], cn_imag))
        nw.append(n[nl+1])
        cn.append(nw[nl+1] + 0.0j)
        # Calculating the effective complex reflectivity of the top-side 
        for i in range(nc):
            tht1 = math.asin(math.sin(tht0) * nw[0] / nw[i])
            tht2 = math.asin(math.sin(tht0) * nw[0] / nw[i+1])
            if spflg == 0:
                cr = (cn[i+1] * math.cos(tht2) - cn[i] * math.cos(tht1)) \
                     / (cn[i+1] * math.cos(tht2) + cn[i] * math.cos(tht1))
            else:
                cr = (cn[i] * math.cos(tht2) - cn[i+1] * math.cos(tht1)) \
                     / (cn[i] * math.cos(tht2) + cn[i+1] * math.cos(tht1));
            if i == 0:
                crr = cr
            else:
                cwk0 = 4.0j * math.pi * cn[i] * l[i] * math.cos(tht1) / wlin
                cwk1 = cr + crr * cmath.exp(cwk0)
                cwk2 = 1.0 + cr * crr * cmath.exp(cwk0)
                crr = cwk1 / cwk2
        crr1 = crr
        # Calculating the effective complex reflectivity of the bottom-side
        for i in range(nl-nc+1):
            if i < 2:
                tht1 = 0.0
                tht2 = 0.0
            else:
                tht1 = math.asin(math.sin(tht0) * nw[0] / nw[nl-i+1])
                tht2 = math.asin(math.sin(tht0) * nw[0] / nw[nl-i])
            if spflg == 0:
                cr = (cn[nl-i] * math.cos(tht2) - cn[nl-i+1] * math.cos(tht1)) \
                     / (cn[nl-i] * math.cos(tht2) + cn[nl-i+1] * math.cos(tht1))
            else:
                cr = (cn[nl-i+1] * math.cos(tht2) - cn[nl-i] * math.cos(tht1)) \
                     / (cn[nl-i+1] * math.cos(tht2) + cn[nl-i] * math.cos(tht1))
            if i == 0:
                crr = cr
            else:
                cwk0 = 4.0j * math.pi * cn[nl-i+1] * l[nl-i+1] \
                       * math.cos(tht1) / wlin
                cwk1 = cr + crr * cmath.exp(cwk0)
                cwk2 = 1.0 + cr * crr * cmath.exp(cwk0)
                crr = cwk1 / cwk2
        crr2 = crr
        # Calculating gabs_dB and gph (also with ss, t1, t2, and tt)
        tht1 = math.asin(math.sin(tht0) * nw[0] / nw[nc])
        phi1 = 4.0 * math.pi * nw[nc] * l[nc] * math.cos(tht1) / wlin
        cg = 1.0 / (crr1 * crr2  * cmath.exp(1j * phi1))
        wls.append(wlin)
        gab_dBs.append(20.0 * math.log10(abs(cg)))
        gphs.append(cmath.phase(cg))
    gains.append([gab_dBs, gphs])
    
# Calculated results put into the xlsx file
wb = openpyxl.load_workbook('ref_out.xlsx')
sheet = wb['ref']
for i, wl in enumerate(wls):
    sheet.cell(row=i+1, column=1).value = wl
for i_tht0, tht0 in enumerate(tht0s):
    st_row = 1
    st_col = 2 + i_tht0 * 2
    for x, col in enumerate(gains[i_tht0]):
        for y, data in enumerate(col):
            sheet.cell(row=st_row + y, column=st_col + x).value = data
wb.save('ref_out.xlsx')

46行目から117行目の一番外側のforループで、tht0を0°、1.0°、1.5°とした計算をします。120~130行目で結果をExcelファイルに書出しますが、Pythonにはopenpyxlというモジュールが用意されていて、これをインポートすればExcelファイルの読み書きが自由自在です。ただ、Excel上で書式を整えたグラフを生成するのは困難なので、雛型のExcelファイルref_out.xlsx(HTML形式で保存したものはこちら)に予めグラフを埋込んでおき、セルの値のみを書換えるというプログラムになっています。この後のファイル名をクリックしてref_read.tsvref_out.xlsxをダウンロードすれば、上記プログラムの動作確認ができます。


ここで紹介した垂直共振器のモード解析は、1996年から2023年の足掛け28年に亘って手を入れてきたプログラムです。さらに言うと、今回の解析のポイントは半導体基板裏面からの「反射戻り光」ですが、1983~1985年に開発した外部共振器レーザは、水平共振器ながら反射戻り光を利用した半導体レーザです。外部共振器レーザの代表的な論文で示したFig. 5は、計算式(1)および(2)を連名著者である佐藤久直先生に教えていただき、雄谷順君がグラフ化してくれました。しかし、私自身はあまり意味が分っておらず「気色悪さ」が残っていました。それが、垂直共振器のモード解析をする間に完全に理解できました。

共振器のモード解析という視点で見ると、40年間に亘る手持ち(頭持ち?)ネタだったことになります。「???」の気色悪さが年月を経て「!!!」になることは、駄待ち狐にとって無上の喜びです。それに要した年月が長いほどその満足感は大きくなります。そういう意味で、これは趣味のプログラミングの中でも特筆に値するものだと思っています。会社の利益に貢献していない(だから「趣味」)という反省と、世のため、人のためになっていない無念さはありますが、雌伏のままでも至福はあるということです。

複素関数による垂直共振器モード解析(1)に戻る