Skip to content
Snippets Groups Projects
Commit b47ccbe0 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Remove duplicate geometry configuration arguments from OpneMP loop function calls

parent ffabe9cd
No related branches found
No related tags found
No related merge requests found
...@@ -53,7 +53,7 @@ using namespace std; ...@@ -53,7 +53,7 @@ using namespace std;
// I would like to put it all in a struct, but then I'd have to write a constructor for it, due to members defined as references, creating a worse nightmare than the one I'd like to simplify... // I would like to put it all in a struct, but then I'd have to write a constructor for it, due to members defined as references, creating a worse nightmare than the one I'd like to simplify...
int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, C1 *c1, C1_AddOns *c1ao, C2 *c2, C3 *c3, C4 *c4, C6 *c6, C9 *c9, FILE *output, string output_path, double *gaps, double **tqse, dcomplex **tqspe, double **tqss, dcomplex **tqsps, double ****zpv, double **gapm, dcomplex **gappm, double *argi, double *args, double **gap, dcomplex **gapp, double **tqce, dcomplex **tqcpe, double **tqcs, dcomplex **tqcps, double *duk, fstream &tppoan, double **cextlr, double **cext, double **cmullr, double **cmul, double *gapv, double *tqev, double *tqsv, int nxi, int nsph, np_int mxndm, int inpol, int iavm, int npnt, int npntts, int isam, int lm, double *u, double *us, double *un, double *uns, double *up, double *ups, double *unmp, double *unsmp, double *upmp, double *upsmp, double &scan, double &cfmp, double &sfmp, double &cfsp, double &sfsp, double sqsfi, double exri, int lcalc, dcomplex arg, double wn, double vk, np_int ndit, int isq, int ibf, Logger *logger); int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, C1 *c1, C1_AddOns *c1ao, C2 *c2, C3 *c3, C4 *c4, C6 *c6, C9 *c9, FILE *output, string output_path, double *gaps, double **tqse, dcomplex **tqspe, double **tqss, dcomplex **tqsps, double ****zpv, double **gapm, dcomplex **gappm, double *argi, double *args, double **gap, dcomplex **gapp, double **tqce, dcomplex **tqcpe, double **tqcs, dcomplex **tqcps, double *duk, fstream &tppoan, double **cextlr, double **cext, double **cmullr, double **cmul, double *gapv, double *tqev, double *tqsv, double *u, double *us, double *un, double *uns, double *up, double *ups, double *unmp, double *unsmp, double *upmp, double *upsmp, double &scan, double &cfmp, double &sfmp, double &cfsp, double &sfsp, double sqsfi, double exri, dcomplex arg, double wn, double vk, Logger *logger);
/*! \brief C++ implementation of CLU /*! \brief C++ implementation of CLU
* *
...@@ -97,22 +97,9 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -97,22 +97,9 @@ void cluster(const string& config_file, const string& data_file, const string& o
int nsph = gconf->get_param("nsph"); int nsph = gconf->get_param("nsph");
if (s_nsph == nsph) { if (s_nsph == nsph) {
// Shortcuts to variables stored in configuration objects // Shortcuts to variables stored in configuration objects
np_int mxndm = (np_int)gconf->get_param("mxndm");
int inpol = (int)gconf->get_param("in_pol");
int npnt = (int)gconf->get_param("npnt");
int npntts = (int)gconf->get_param("npntts");
int iavm = (int)gconf->get_param("iavm");
int isam = (int)gconf->get_param("meridional_type");
int nxi = (int)sconf->get_param("number_of_scales");
int idfc = (int)sconf->get_param("idfc");
ScatteringAngles *p_scattering_angles = new ScatteringAngles(gconf); ScatteringAngles *p_scattering_angles = new ScatteringAngles(gconf);
double wp = sconf->get_param("wp"); double wp = sconf->get_param("wp");
// Global variables for CLU // Global variables for CLU
int lm = (int)gconf->get_param("l_max");
int li = (int)gconf->get_param("li");
int le = (int)gconf->get_param("le");
if (li > lm) lm = li;
if (le > lm) lm = le;
C1 *c1 = new C1(gconf, sconf); C1 *c1 = new C1(gconf, sconf);
C3 *c3 = new C3(); C3 *c3 = new C3();
C4 *c4 = new C4(gconf); C4 *c4 = new C4(gconf);
...@@ -120,18 +107,15 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -120,18 +107,15 @@ void cluster(const string& config_file, const string& data_file, const string& o
// End of add-ons initialization // End of add-ons initialization
C6 *c6 = new C6(c4->lmtpo); C6 *c6 = new C6(c4->lmtpo);
FILE *output = fopen((output_path + "/c_OCLU").c_str(), "w"); FILE *output = fopen((output_path + "/c_OCLU").c_str(), "w");
int jer = 0;
int lcalc = 0;
dcomplex arg = 0.0 + 0.0 * I; dcomplex arg = 0.0 + 0.0 * I;
dcomplex ccsam = 0.0 + 0.0 * I; dcomplex ccsam = 0.0 + 0.0 * I;
int configurations = (int)sconf->get_param("configurations");
C2 *c2 = new C2(gconf, sconf); C2 *c2 = new C2(gconf, sconf);
np_int ndit = 2 * nsph * c4->nlim; const int ndi = c4->nsph * c4->nlim;
np_int ndit = 2 * ndi;
logger->log("INFO: Size of matrices to invert: " + to_string((int64_t)ndit) + " x " + to_string((int64_t)ndit) +".\n"); logger->log("INFO: Size of matrices to invert: " + to_string((int64_t)ndit) + " x " + to_string((int64_t)ndit) +".\n");
time_logger->log("INFO: Size of matrices to invert: " + to_string((int64_t)ndit) + " x " + to_string((int64_t)ndit) +".\n"); time_logger->log("INFO: Size of matrices to invert: " + to_string((int64_t)ndit) + " x " + to_string((int64_t)ndit) +".\n");
const int ndi = c4->nsph * c4->nlim;
C9 *c9 = new C9(ndi, c4->nlem, 2 * ndi, 2 * c4->nlem); C9 *c9 = new C9(ndi, c4->nlem, 2 * ndi, 2 * c4->nlem);
double *gaps = new double[nsph](); double *gaps = new double[(int)gconf->get_param("nsph")]();
double *tqev = new double[3](); double *tqev = new double[3]();
double *tqsv = new double[3](); double *tqsv = new double[3]();
double **tqse, **tqss, **tqce, **tqcs; double **tqse, **tqss, **tqce, **tqcs;
...@@ -145,10 +129,10 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -145,10 +129,10 @@ void cluster(const string& config_file, const string& data_file, const string& o
tqcs = new double*[2]; tqcs = new double*[2];
tqcps = new dcomplex*[2]; tqcps = new dcomplex*[2];
for (int ti = 0; ti < 2; ti++) { for (int ti = 0; ti < 2; ti++) {
tqse[ti] = new double[nsph](); tqse[ti] = new double[(int)gconf->get_param("nsph")]();
tqspe[ti] = new dcomplex[nsph](); tqspe[ti] = new dcomplex[(int)gconf->get_param("nsph")]();
tqss[ti] = new double[nsph](); tqss[ti] = new double[(int)gconf->get_param("nsph")]();
tqsps[ti] = new dcomplex[nsph](); tqsps[ti] = new dcomplex[(int)gconf->get_param("nsph")]();
tqce[ti] = new double[3](); tqce[ti] = new double[3]();
tqcpe[ti] = new dcomplex[3](); tqcpe[ti] = new dcomplex[3]();
tqcs[ti] = new double[3](); tqcs[ti] = new double[3]();
...@@ -192,13 +176,14 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -192,13 +176,14 @@ void cluster(const string& config_file, const string& data_file, const string& o
cmullr[ci] = new double[4](); cmullr[ci] = new double[4]();
cmul[ci] = new double[4](); cmul[ci] = new double[4]();
} }
int isq, ibf;
int jwtm = (int)gconf->get_param("jwtm");
double scan, cfmp, sfmp, cfsp, sfsp; double scan, cfmp, sfmp, cfsp, sfsp;
// End of global variables for CLU // End of global variables for CLU
fprintf(output, " READ(IR,*)NSPH,LI,LE,MXNDM,INPOL,NPNT,NPNTTS,IAVM,ISAM\n"); fprintf(output, " READ(IR,*)NSPH,LI,LE,MXNDM,INPOL,NPNT,NPNTTS,IAVM,ISAM\n");
fprintf(output, " %5d%5d%5d%5ld%5d%5d%5d%5d%5d\n", fprintf(output, " %5d%5d%5d%5ld%5d%5d%5d%5d%5d\n",
nsph, c4->li, c4->le, mxndm, inpol, npnt, npntts, iavm, isam nsph, c4->li, c4->le, (np_int)gconf->get_param("mxndm"),
(int)gconf->get_param("in_pol"), (int)gconf->get_param("npnt"),
(int)gconf->get_param("npntts"), (int)gconf->get_param("iavm"),
(int)gconf->get_param("meridional_type")
); );
fprintf(output, " READ(IR,*)RXX(I),RYY(I),RZZ(I)\n"); fprintf(output, " READ(IR,*)RXX(I),RYY(I),RZZ(I)\n");
for (int ri = 0; ri < nsph; ri++) fprintf(output, "%17.8lE%17.8lE%17.8lE\n", for (int ri = 0; ri < nsph; ri++) fprintf(output, "%17.8lE%17.8lE%17.8lE\n",
...@@ -219,7 +204,7 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -219,7 +204,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
p_scattering_angles->phsstp, p_scattering_angles->phslst p_scattering_angles->phsstp, p_scattering_angles->phslst
); );
fprintf(output, " READ(IR,*)JWTM\n"); fprintf(output, " READ(IR,*)JWTM\n");
fprintf(output, " %5d\n", jwtm); fprintf(output, " %5d\n", (int)gconf->get_param("jwtm"));
fprintf(output, " READ(ITIN)NSPHT\n"); fprintf(output, " READ(ITIN)NSPHT\n");
fprintf(output, " READ(ITIN)(IOG(I),I=1,NSPH)\n"); fprintf(output, " READ(ITIN)(IOG(I),I=1,NSPH)\n");
fprintf(output, " READ(ITIN)EXDC,WP,XIP,IDFC,NXI\n"); fprintf(output, " READ(ITIN)EXDC,WP,XIP,IDFC,NXI\n");
...@@ -241,7 +226,7 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -241,7 +226,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
thdps(c4->lm, zpv); thdps(c4->lm, zpv);
double exdc = sconf->get_param("exdc"); double exdc = sconf->get_param("exdc");
double exri = sqrt(exdc); double exri = sqrt(exdc);
double vk = 0.0; // NOTE: Not really sure it should be initialized at 0 double vk = 0.0;
fprintf(output, " REFR. INDEX OF EXTERNAL MEDIUM=%15.7lE\n", exri); fprintf(output, " REFR. INDEX OF EXTERNAL MEDIUM=%15.7lE\n", exri);
fstream *tppoanp = new fstream; fstream *tppoanp = new fstream;
fstream &tppoan = *tppoanp; fstream &tppoan = *tppoanp;
...@@ -253,6 +238,10 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -253,6 +238,10 @@ void cluster(const string& config_file, const string& data_file, const string& o
#else #else
logger->log("INFO: using fall-back lucin() calls.\n", LOG_INFO); logger->log("INFO: using fall-back lucin() calls.\n", LOG_INFO);
#endif #endif
int iavm = (int)gconf->get_param("iavm");
int isam = (int)gconf->get_param("meridional_type");
int inpol = (int)gconf->get_param("in_pol");
int nxi = (int)sconf->get_param("nxi");
int nth = p_scattering_angles->nth; int nth = p_scattering_angles->nth;
int nths = p_scattering_angles->nths; int nths = p_scattering_angles->nths;
int nph = p_scattering_angles->nph; int nph = p_scattering_angles->nph;
...@@ -268,7 +257,7 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -268,7 +257,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
double wn = wp / 3.0e8; double wn = wp / 3.0e8;
double xip = sconf->get_param("xip"); double xip = sconf->get_param("xip");
double sqsfi = 1.0; double sqsfi = 1.0;
if (idfc < 0) { if (sconf->get_param("idfc") < 0.0) {
vk = xip * wn; vk = xip * wn;
fprintf(output, " VK=%15.7lE, XI IS SCALE FACTOR FOR LENGTHS\n", vk); fprintf(output, " VK=%15.7lE, XI IS SCALE FACTOR FOR LENGTHS\n", vk);
fprintf(output, " \n"); fprintf(output, " \n");
...@@ -276,12 +265,11 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -276,12 +265,11 @@ void cluster(const string& config_file, const string& data_file, const string& o
// do the first iteration on jxi488 separately, since it seems to be different from the others // do the first iteration on jxi488 separately, since it seems to be different from the others
int jxi488 = 1; int jxi488 = 1;
chrono::time_point<chrono::high_resolution_clock> start_iter_1 = chrono::high_resolution_clock::now(); chrono::time_point<chrono::high_resolution_clock> start_iter_1 = chrono::high_resolution_clock::now();
jer = cluster_jxi488_cycle(jxi488, sconf, gconf, p_scattering_angles, c1, c1ao, c2, c3, c4, c6, c9, output, output_path, gaps, tqse, tqspe, tqss, tqsps, zpv, gapm, gappm, argi, args, gap, gapp, tqce, tqcpe, tqcs, tqcps, duk, tppoan, cextlr, cext, cmullr, cmul, gapv, tqev, tqsv, nxi, nsph, mxndm, inpol, iavm, npnt, npntts, isam, lm, u, us, un, uns, up, ups, unmp, unsmp, upmp, upsmp, scan, cfmp, sfmp, cfsp, sfsp, sqsfi, exri, lcalc, arg, wn, vk, ndit, isq, ibf, logger); int jer = cluster_jxi488_cycle(jxi488, sconf, gconf, p_scattering_angles, c1, c1ao, c2, c3, c4, c6, c9, output, output_path, gaps, tqse, tqspe, tqss, tqsps, zpv, gapm, gappm, argi, args, gap, gapp, tqce, tqcpe, tqcs, tqcps, duk, tppoan, cextlr, cext, cmullr, cmul, gapv, tqev, tqsv, u, us, un, uns, up, ups, unmp, unsmp, upmp, upsmp, scan, cfmp, sfmp, cfsp, sfsp, sqsfi, exri, arg, wn, vk, logger);
chrono::time_point<chrono::high_resolution_clock> end_iter_1 = chrono::high_resolution_clock::now(); chrono::time_point<chrono::high_resolution_clock> end_iter_1 = chrono::high_resolution_clock::now();
elapsed = end_iter_1 - start_iter_1; elapsed = end_iter_1 - start_iter_1;
message = "INFO: First iteration took " + to_string(elapsed.count()) + "s.\n"; message = "INFO: First iteration took " + to_string(elapsed.count()) + "s.\n";
logger->log(message); logger->log(message);
logger->log("Finished: output written to " + output_path + "/c_OCLU\n");
time_logger->log(message); time_logger->log(message);
// Create this variable and initialise it with a default here, so that it is defined anyway, with or without OpenMP support enabled // Create this variable and initialise it with a default here, so that it is defined anyway, with or without OpenMP support enabled
...@@ -332,15 +320,6 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -332,15 +320,6 @@ void cluster(const string& config_file, const string& data_file, const string& o
double *gapv_2 = NULL; double *gapv_2 = NULL;
double *tqev_2 = NULL; double *tqev_2 = NULL;
double *tqsv_2 = NULL; double *tqsv_2 = NULL;
int nxi_2 = nxi;
int nsph_2 = nsph;
np_int mxndm_2 = mxndm;
int inpol_2 = inpol;
int iavm_2 = iavm;
int npnt_2 = npnt;
int npntts_2 = npntts;
int isam_2 = isam;
int lm_2 = lm;
double *u_2 = NULL; double *u_2 = NULL;
double *us_2 = NULL; double *us_2 = NULL;
double *un_2 = NULL; double *un_2 = NULL;
...@@ -358,13 +337,9 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -358,13 +337,9 @@ void cluster(const string& config_file, const string& data_file, const string& o
double sfsp_2 = sfsp; double sfsp_2 = sfsp;
double sqsfi_2 = sqsfi; double sqsfi_2 = sqsfi;
double exri_2 = exri; double exri_2 = exri;
int lcalc_2 = lcalc;
dcomplex arg_2 = arg; dcomplex arg_2 = arg;
double wn_2 = wn; double wn_2 = wn;
double vk_2 = vk; double vk_2 = vk;
np_int ndit_2 = ndit;
int isq_2 = isq;
int ibf_2 = ibf;
// for threads other than the 0, create distinct copies of all relevant data, while for thread 0 just define new references / pointers to the original ones // for threads other than the 0, create distinct copies of all relevant data, while for thread 0 just define new references / pointers to the original ones
if (myompthread == 0) { if (myompthread == 0) {
sconf_2 = sconf; sconf_2 = sconf;
...@@ -545,7 +520,7 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -545,7 +520,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
// ok, now I can actually start the parallel calculations // ok, now I can actually start the parallel calculations
#pragma omp for #pragma omp for
for (jxi488 = 2; jxi488 <= nxi; jxi488++) { for (jxi488 = 2; jxi488 <= nxi; jxi488++) {
jer = cluster_jxi488_cycle(jxi488, sconf_2, gconf_2, p_scattering_angles, c1_2, c1ao_2, c2_2, c3_2, c4_2, c6_2, c9_2, output_2, output_path, gaps_2, tqse_2, tqspe_2, tqss_2, tqsps_2, zpv_2, gapm_2, gappm_2, argi_2, args_2, gap_2, gapp_2, tqce_2, tqcpe_2, tqcs_2, tqcps_2, duk_2, tppoan_2, cextlr_2, cext_2, cmullr_2, cmul_2, gapv_2, tqev_2, tqsv_2, nxi_2, nsph_2, mxndm_2, inpol_2, iavm_2, npnt_2, npntts_2, isam_2, lm_2, u_2, us_2, un_2, uns_2, up_2, ups_2, unmp_2, unsmp_2, upmp_2, upsmp_2, scan_2, cfmp_2, sfmp_2, cfsp_2, sfsp_2, sqsfi_2, exri_2, lcalc_2, arg_2, wn_2, vk_2, ndit_2, isq_2, ibf_2, logger); int jer = cluster_jxi488_cycle(jxi488, sconf_2, gconf_2, p_scattering_angles, c1_2, c1ao_2, c2_2, c3_2, c4_2, c6_2, c9_2, output_2, output_path, gaps_2, tqse_2, tqspe_2, tqss_2, tqsps_2, zpv_2, gapm_2, gappm_2, argi_2, args_2, gap_2, gapp_2, tqce_2, tqcpe_2, tqcs_2, tqcps_2, duk_2, tppoan_2, cextlr_2, cext_2, cmullr_2, cmul_2, gapv_2, tqev_2, tqsv_2, u_2, us_2, un_2, uns_2, up_2, ups_2, unmp_2, unsmp_2, upmp_2, upsmp_2, scan_2, cfmp_2, sfmp_2, cfsp_2, sfsp_2, sqsfi_2, exri_2, arg_2, wn_2, vk_2, logger);
} }
#pragma omp barrier #pragma omp barrier
...@@ -631,7 +606,7 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -631,7 +606,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
} }
#pragma omp barrier #pragma omp barrier
{ {
string message = "Closing thread-local output files of thread " + to_string(myompthread) + " and syncing threads.\n"; message = "Closing thread-local output files of thread " + to_string(myompthread) + " and syncing threads.\n";
logger->log(message); logger->log(message);
} }
} // closes pragma omp parallel } // closes pragma omp parallel
...@@ -642,7 +617,7 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -642,7 +617,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
for (int ri = 1; ri < ompnumthreads; ri++) { for (int ri = 1; ri < ompnumthreads; ri++) {
// Giovanni, please add here in this loop code to reopen the temporary files, reread them and append them respectively to the global output and tppoan, before closing them // Giovanni, please add here in this loop code to reopen the temporary files, reread them and append them respectively to the global output and tppoan, before closing them
string partial_file_name = output_path + "/c_OCLU_" + to_string(ri); string partial_file_name = output_path + "/c_OCLU_" + to_string(ri);
string message = "Copying ASCII output of thread " + to_string(ri) + " of " + to_string(ompnumthreads - 1) + "... "; message = "Copying ASCII output of thread " + to_string(ri) + " of " + to_string(ompnumthreads - 1) + "... ";
logger->log(message); logger->log(message);
FILE *partial_output = fopen(partial_file_name.c_str(), "r"); FILE *partial_output = fopen(partial_file_name.c_str(), "r");
char c = fgetc(partial_output); char c = fgetc(partial_output);
...@@ -769,14 +744,29 @@ void cluster(const string& config_file, const string& data_file, const string& o ...@@ -769,14 +744,29 @@ void cluster(const string& config_file, const string& data_file, const string& o
} }
int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, C1 *c1, C1_AddOns *c1ao, C2 *c2, C3 *c3, C4 *c4, C6 *c6, C9 *c9, FILE *output, string output_path, double *gaps, double **tqse, dcomplex **tqspe, double **tqss, dcomplex **tqsps, double ****zpv, double **gapm, dcomplex **gappm, double *argi, double *args, double **gap, dcomplex **gapp, double **tqce, dcomplex **tqcpe, double **tqcs, dcomplex **tqcps, double *duk, fstream &tppoan, double **cextlr, double **cext, double **cmullr, double **cmul, double *gapv, double *tqev, double *tqsv, int nxi, int nsph, np_int mxndm, int inpol, int iavm, int npnt, int npntts, int isam, int lm, double *u, double *us, double *un, double *uns, double *up, double *ups, double *unmp, double *unsmp, double *upmp, double *upsmp, double &scan, double &cfmp, double &sfmp, double &cfsp, double &sfsp, double sqsfi, double exri, int lcalc, dcomplex arg, double wn, double vk, np_int ndit, int isq, int ibf, Logger *logger) int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, C1 *c1, C1_AddOns *c1ao, C2 *c2, C3 *c3, C4 *c4, C6 *c6, C9 *c9, FILE *output, string output_path, double *gaps, double **tqse, dcomplex **tqspe, double **tqss, dcomplex **tqsps, double ****zpv, double **gapm, dcomplex **gappm, double *argi, double *args, double **gap, dcomplex **gapp, double **tqce, dcomplex **tqcpe, double **tqcs, dcomplex **tqcps, double *duk, fstream &tppoan, double **cextlr, double **cext, double **cmullr, double **cmul, double *gapv, double *tqev, double *tqsv, double *u, double *us, double *un, double *uns, double *up, double *ups, double *unmp, double *unsmp, double *upmp, double *upsmp, double &scan, double &cfmp, double &sfmp, double &cfsp, double &sfsp, double sqsfi, double exri, dcomplex arg, double wn, double vk, Logger *logger)
{ {
int nxi = (int)sconf->get_param("nxi");
logger->log("INFO: running scale iteration " + to_string(jxi488) + " of " + to_string(nxi) + ".\n"); logger->log("INFO: running scale iteration " + to_string(jxi488) + " of " + to_string(nxi) + ".\n");
int jer = 0; int jer = 0;
int lcalc = 0;
int jaw = 1; int jaw = 1;
int jwtm = (int)gconf->get_param("jwtm");
int li = (int)gconf->get_param("li"); int li = (int)gconf->get_param("li");
int le = (int)gconf->get_param("le"); int le = (int)gconf->get_param("le");
int lm = 0;
if (le > lm) lm = le;
if (li > lm) lm = li;
int nsph = gconf->get_param("nsph");
int mxndm = gconf->get_param("mxndm");
int iavm = gconf->get_param("iavm");
int inpol = gconf->get_param("in_pol");
int npnt = gconf->get_param("npnt");
int npntts = gconf->get_param("npntts");
int isam = gconf->get_param("meridional_type");
int jwtm = (int)gconf->get_param("jwtm");
np_int ndit = 2 * nsph * c4->nlim;
int isq, ibf;
fprintf(output, "========== JXI =%3d ====================\n", jxi488); fprintf(output, "========== JXI =%3d ====================\n", jxi488);
double xi = sconf->get_scale(jxi488 - 1); double xi = sconf->get_scale(jxi488 - 1);
double exdc = sconf->get_param("exdc"); double exdc = sconf->get_param("exdc");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment