221 static double g[6]={9.,3.,9.,3.,15.,9};
263 c31 =
dense.cdsqte*1.0/
g[2];
266 c61 =
dense.cdsqte*1./
g[5];
268 c12 = c21*
g[1]/
g[0]*e12;
269 c13 = c31*
g[2]/
g[0]*e12*e23;
270 c14 = c41*
g[3]/
g[0]*e12*e23*e34;
271 c15 = c51*
g[4]/
g[0]*e12*e23*e34*e45;
272 c16 = c61*
g[5]/
g[0]*e12*e23*e34*e45*e56;
274 c32 =
dense.cdsqte*85./
g[2];
275 c42 =
dense.cdsqte*85./
g[3];
276 c52 =
dense.cdsqte*85./
g[4];
277 c62 =
dense.cdsqte*85./
g[5];
279 c23 = c32*
g[2]/
g[1]*e23;
280 c24 = c42*
g[3]/
g[1]*e23*e34;
281 c25 = c52*
g[4]/
g[1]*e23*e34*e45;
282 c26 = c62*
g[5]/
g[1]*e23*e34*e45*e56;
284 c43 =
dense.cdsqte*70./
g[3];
285 c53 =
dense.cdsqte*312./
g[4];
286 c63 =
dense.cdsqte*1./
g[5];
288 c34 = c43*
g[3]/
g[2]*e34;
289 c35 = c53*
g[4]/
g[2]*e34*e45;
290 c36 = c63*
g[5]/
g[2]*e34*e45*e56;
292 c54 =
dense.cdsqte*50./
g[4];
293 c64 =
dense.cdsqte*415./
g[5];
295 c45 = c54*
g[4]/
g[3]*e45;
296 c46 = c64*
g[5]/
g[3]*e45*e56;
298 c65 =
dense.cdsqte*400./
g[5];
299 c56 = c65*
g[5]/
g[4]*e56;
304 simple = (c16 +
atoms.pmpo15)/(c61 + c62 + c64 + a65 + a64 + a62);
307 atoms.popoi[0] = abundoi;
308 for( i=1; i < 6; i++ )
318 for( i=0; i < 6; i++ )
329 zz[1][1] = c21 + c23 + c24 + c25 + c26 + a21;
330 zz[2][1] = -c32 - a32;
333 zz[5][1] = -c62 - a62;
338 zz[2][2] = c31 + c32 + c34 + c35 + c36 + a32;
339 zz[3][2] = -c43 - a43;
340 zz[4][2] = -c53 - a53;
347 zz[3][3] = c41 + c42 + c43 + c45 + c46 + a41 + a43;
349 zz[5][3] = -c64 - a64;
352 zz[0][4] = -c15 -
atoms.pmpo15;
356 zz[4][4] = c51 + c52 + c53 + c54 + c56 + a51 + a53;
357 zz[5][4] = -c65 - a65;
365 zz[5][5] = c61 + c62 + c63 + c64 + c65 + a65 + a64 + a62;
368 for( j=0; j < 6; j++ )
370 for( i=0; i < 6; i++ )
372 amat[i][j] = zz[i][j];
386 fprintf(
ioQQQ,
" oi_level_pops: dgetrs finds singular or ill-conditioned matrix\n" );
392 for( i=0; i < 6; i++ )
398 for( i=0; i < 6; i++ )
400 atoms.popoi[i] = zz[6][i];
401 if(
atoms.popoi[i] < 0. )
419 e12*e23*e34*e45*e56);
421 fprintf(
ioQQQ,
" oilevl finds levl pop" );
424 fprintf(
ioQQQ,
"\n" );
426 fprintf(
ioQQQ,
" oilevl finds dep coef" );
428 fprintf(
ioQQQ,
"%11.3e", deptoi[i] );
429 fprintf(
ioQQQ,
"\n" );
437 fprintf(
ioQQQ,
" OILEVL finds negative population" );
440 fprintf(
ioQQQ,
"\n" );
442 fprintf(
ioQQQ,
" simple 5 =%10.2e\n", simple );
445 atoms.popoi[4] = abundoi*(c15 +
atoms.pmpo15)/(a51 + a53 + c51 + c53);
447 atoms.popoi[2] = (
atoms.popoi[4]*(a53 + c53)) / (a32 + c32);
448 atoms.popoi[1] = (
atoms.popoi[4]*(a53 + c53) + abundoi*c12) / (a21 + c21);
449 atoms.popoi[0] = abundoi;
456 (
atoms.popoi[0]*c12 -
atoms.popoi[1]*c21)*1.53e-11 +
457 (
atoms.popoi[0]*c14 -
atoms.popoi[3]*c41)*1.92e-11 +
458 (
atoms.popoi[0]*c15 -
atoms.popoi[4]*c51)*1.94e-11 +
459 (
atoms.popoi[1]*c23 -
atoms.popoi[2]*c32)*2.36e-12 +
460 (
atoms.popoi[1]*c26 -
atoms.popoi[5]*c62)*4.55e-12 +
461 (
atoms.popoi[2]*c35 -
atoms.popoi[4]*c53)*1.76e-12 +
462 (
atoms.popoi[2]*c34 -
atoms.popoi[3]*c43)*1.52e-12 +
463 (
atoms.popoi[3]*c46 -
atoms.popoi[5]*c64)*6.86e-13 +
464 (
atoms.popoi[4]*c56 -
atoms.popoi[5]*c65)*4.32e-13;
void getrs_wrapper(char trans, long N, long nrhs, double *A, long lda, int32 *ipiv, double *B, long ldb, int32 *info)