Commit e72c6c59 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Build trapping as a single program

parent bf7aa56e
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ CXX=g++
CXXFLAGS=-O2 -ggdb -pg -coverage
CXXLFLAGS=-L/usr/lib64 -lhdf5_hl -lhdf5

all: frfme lffft np_frfme np_lffft
all: frfme lffft np_trapping

frfme: frfme.o
	$(FC) $(FCFLAGS) -o $(BUILDDIR)/frfme $(BUILDDIR)/frfme.o $(LFLAGS)
@@ -14,11 +14,11 @@ frfme: frfme.o
lffft: lffft.o
	$(FC) $(FCFLAGS) -o $(BUILDDIR)/lffft $(BUILDDIR)/lffft.o $(LFLAGS)

np_frfme: $(BUILDDIR)/cfrfme.o $(BUILDDIR)/Parsers.o $(BUILDDIR)/Commons.o $(BUILDDIR)/Configuration.o $(BUILDDIR)/file_io.o $(BUILDDIR)/sph_subs.o $(BUILDDIR)/tra_subs.o
	$(CXX) $(CXXFLAGS) $(CXXLFLAGS) -o $(BUILDDIR)/np_frfme $(BUILDDIR)/cfrfme.o $(BUILDDIR)/file_io.o $(BUILDDIR)/Parsers.o $(BUILDDIR)/Commons.o $(BUILDDIR)/Configuration.o $(BUILDDIR)/sph_subs.o $(BUILDDIR)/tra_subs.o
np_trapping: $(BUILDDIR)/np_trapping.o $(BUILDDIR)/cfrfme.o $(BUILDDIR)/clffft.o $(BUILDDIR)/Parsers.o $(BUILDDIR)/Commons.o $(BUILDDIR)/Configuration.o $(BUILDDIR)/file_io.o $(BUILDDIR)/sph_subs.o $(BUILDDIR)/tra_subs.o
	$(CXX) $(CXXFLAGS) $(CXXLFLAGS) -o $(BUILDDIR)/np_trapping $(BUILDDIR)/np_trapping.o $(BUILDDIR)/cfrfme.o $(BUILDDIR)/clffft.o $(BUILDDIR)/file_io.o $(BUILDDIR)/Parsers.o $(BUILDDIR)/Commons.o $(BUILDDIR)/Configuration.o $(BUILDDIR)/sph_subs.o $(BUILDDIR)/tra_subs.o

np_lffft: $(BUILDDIR)/clffft.o $(BUILDDIR)/Parsers.o $(BUILDDIR)/Commons.o $(BUILDDIR)/Configuration.o $(BUILDDIR)/file_io.o $(BUILDDIR)/sph_subs.o $(BUILDDIR)/tra_subs.o
	$(CXX) $(CXXFLAGS) $(CXXLFLAGS) -o $(BUILDDIR)/np_lffft $(BUILDDIR)/clffft.o $(BUILDDIR)/file_io.o $(BUILDDIR)/Parsers.o $(BUILDDIR)/Commons.o $(BUILDDIR)/Configuration.o $(BUILDDIR)/sph_subs.o $(BUILDDIR)/tra_subs.o
$(BUILDDIR)/np_trapping.o:
	$(CXX) $(CXXFLAGS) np_trapping.cpp -c -o $(BUILDDIR)/np_trapping.o

$(BUILDDIR)/cfrfme.o:
	$(CXX) $(CXXFLAGS) frfme.cpp -c -o $(BUILDDIR)/cfrfme.o
+6 −7
Original line number Diff line number Diff line
@@ -29,9 +29,7 @@ using namespace std;
 *  \param data_file: `string` Name of the input data file.
 *  \param output_path: `string` Directory to write the output files in.
 */
int main() {
  string data_file = "../../test_data/trapping/DFRFME";
  string output_path = ".";
void frfme(string data_file, string output_path) {
  string tfrfme_name = output_path + "/c_TFRFME";
  fstream tfrfme;
  char namef[7];
@@ -87,7 +85,8 @@ int main() {
      for (int yi = 0; yi < nxv; yi++) tfrfme.read(reinterpret_cast<char *>(&(yv[yi])), sizeof(double));
      for (int zi = 0; zi < nxv; zi++) tfrfme.read(reinterpret_cast<char *>(&(zv[zi])), sizeof(double));
      fstream temptape2;
      temptape2.open("c_TEMPTAPE2", ios::in | ios::binary);
      string tempname2 = output_path + "c_TEMPTAPE2";
      temptape2.open(tempname2.c_str(), ios::in | ios::binary);
      if (temptape2.is_open()) {
	//vkv = new double[nkv]();
	for (int jx = 0; jx < nkv; jx++) temptape2.read(reinterpret_cast<char *>(&(vkv[jx])), sizeof(double));
@@ -180,7 +179,8 @@ int main() {
      regex_search(str_target, m, re);
      int ixi = stoi(m.str());
      fstream tedf;
      tedf.open(namef, ios::in | ios::binary);
      string tedf_name = output_path + "/" + namef;
      tedf.open(tedf_name.c_str(), ios::in | ios::binary);
      if (tedf.is_open()) {
	int iduml, idum;
	tedf.read(reinterpret_cast<char *>(&iduml), sizeof(int));
@@ -334,7 +334,7 @@ int main() {
	  w = new complex<double>*[nkv];
	  for (int wi = 0; wi < nkv; wi++) w[wi] = new complex<double>[nkv]();
	  for (int j80 = jlmf - 1; j80 < jlml; j80++) {
	    temptape1.open("c_TEMPTAPE1", ios::in | ios::binary);
	    temptape1.open(temp_name1.c_str(), ios::in | ios::binary);
	    for (int jy50 = 0; jy50 < nkv; jy50++) {
	      for (int jx50 = 0; jx50 < nkv; jx50++) {
		for (int i = 0; i < nlmmt; i++) {
@@ -449,5 +449,4 @@ int main() {
    delete[] w;
  }
  printf("Done.\n");
  return 0;
}
+4 −7
Original line number Diff line number Diff line
@@ -29,14 +29,12 @@ using namespace std;
 *  \param data_file: `string` Name of the input data file.
 *  \param output_path: `string` Directory to write the output files in.
 */
int main() {
void lffft(string data_file, string output_path) {
  const complex<double> uim(0.0, 1.0);
  const double sq2i = 1.0 / sqrt(2.0);
  const complex<double> sq2iti = sq2i * uim;

  fstream tlfff, tlfft;
  string data_file = "../../test_data/trapping/DLFFFT";
  string output_path = ".";
  double ****zpv = NULL;
  double *xv = NULL, *yv = NULL, *zv = NULL;
  complex<double> *ac = NULL, *ws = NULL, *wsl = NULL;
@@ -73,7 +71,7 @@ int main() {
    cil->le = le;
    cil->nlem = le * (le + 2);
    cil->nlemt = cil->nlem + cil->nlem;
    if (is > 2222) { // label 120
    if (is >= 2222) { // label 120
      tms = new complex<double>*[le];
      for (int ti = 0; ti < le; ti++) tms[ti] = new complex<double>[3]();
      // QUESTION|WARNING: original code uses LM without defining it. Where does it come from?
@@ -90,7 +88,7 @@ int main() {
	ttms.read(reinterpret_cast<char *>(&vimag), sizeof(double));
	tms[i][2] = complex<double>(vreal, vimag);
      } // i loop
    } else if (is > 1111) { // label 125
    } else if (is >= 1111) { // label 125
      tmsm = new complex<double>[le]();
      tmse = new complex<double>[le]();
      for (int i = 0; i < le; i++) {
@@ -143,7 +141,7 @@ int main() {
    fstream binary_input;
    string binary_name;
    if (jss != 1) binary_name = output_path + "/c_TFRFME";
    else binary_name = output_path + "c_TWS";
    else binary_name = output_path + "/c_TWS";
    binary_input.open(binary_name, ios::in | ios::binary);
    if (binary_input.is_open()) {
      int lmode, lm, nkv, nxv, nyv, nzv;
@@ -390,5 +388,4 @@ int main() {
  delete ccr;
  delete[] file_lines;
  printf("Done.\n");
  return 0;
}
+29 −0
Original line number Diff line number Diff line
/*! \file trapping.cpp
 */
#include <cstdio>
#include <string>

using namespace std;

extern void frfme(string data_file, string output_path);
extern void lffft(string data_file, string output_path);

/* \brief Main program execution body.
 *
 * \param argc: `int`
 * \param argv: `char **`
 * \return result: `int`
 */
int main(int argc, char **argv) {
  string frfme_data_file = "../../test_data/trapping/DFRFME";
  string lffft_data_file = "../../test_data/trapping/DLFFFT";
  string output_path = ".";
  if (argc == 4) {
    frfme_data_file = string(argv[1]);
    lffft_data_file = string(argv[2]);
    output_path = string(argv[3]);
  }
  frfme(frfme_data_file, output_path);
  lffft(lffft_data_file, output_path);
  return 0;
}