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

Merge branch 'fix_order_4' into 'master'

Draft: Fix order 4

See merge request giacomo.mulas/np_tmcode!58
parents 1a790c4c f8e946c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
LDADD=libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${MAGMALDFLAGS}
LDADD=libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${MAGMALDFLAGS}
lib_LTLIBRARIES=libnptm/libnptm.la
lib_LTLIBRARIES=libnptm/libnptm.la
libnptm_libnptm_la_SOURCES=../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/file_io.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/logging.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/tra_subs.cpp
libnptm_libnptm_la_SOURCES=../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/file_io.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/logging.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/utils.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/tra_subs.cpp
if BUILDFORTRAN
if BUILDFORTRAN
PROGS=cluster/edfb_clu cluster/clu cluster/np_cluster sphere/edfb_sph sphere/sph sphere/np_sphere trapping/frfme trapping/lffft trapping/np_trapping testing/test_TEDF testing/test_TTMS
PROGS=cluster/edfb_clu cluster/clu cluster/np_cluster sphere/edfb_sph sphere/sph sphere/np_sphere trapping/frfme trapping/lffft trapping/np_trapping testing/test_TEDF testing/test_TTMS
bin_PROGRAMS=$(PROGS)
bin_PROGRAMS=$(PROGS)
+11 −3
Original line number Original line Diff line number Diff line
@@ -156,8 +156,9 @@ am_libnptm_libnptm_la_OBJECTS = ../src/libnptm/algebraic.lo \
	../src/libnptm/Configuration.lo ../src/libnptm/file_io.lo \
	../src/libnptm/Configuration.lo ../src/libnptm/file_io.lo \
	../src/libnptm/lapack_calls.lo ../src/libnptm/logging.lo \
	../src/libnptm/lapack_calls.lo ../src/libnptm/logging.lo \
	../src/libnptm/magma_calls.lo ../src/libnptm/Parsers.lo \
	../src/libnptm/magma_calls.lo ../src/libnptm/Parsers.lo \
	../src/libnptm/sph_subs.lo ../src/libnptm/tfrfme.lo \
	../src/libnptm/sph_subs.lo ../src/libnptm/utils.lo \
	../src/libnptm/TransitionMatrix.lo ../src/libnptm/tra_subs.lo
	../src/libnptm/tfrfme.lo ../src/libnptm/TransitionMatrix.lo \
	../src/libnptm/tra_subs.lo
libnptm_libnptm_la_OBJECTS = $(am_libnptm_libnptm_la_OBJECTS)
libnptm_libnptm_la_OBJECTS = $(am_libnptm_libnptm_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -304,6 +305,7 @@ am__depfiles_remade = ../src/cluster/$(DEPDIR)/cluster.Po \
	../src/libnptm/$(DEPDIR)/sph_subs.Plo \
	../src/libnptm/$(DEPDIR)/sph_subs.Plo \
	../src/libnptm/$(DEPDIR)/tfrfme.Plo \
	../src/libnptm/$(DEPDIR)/tfrfme.Plo \
	../src/libnptm/$(DEPDIR)/tra_subs.Plo \
	../src/libnptm/$(DEPDIR)/tra_subs.Plo \
	../src/libnptm/$(DEPDIR)/utils.Plo \
	../src/sphere/$(DEPDIR)/np_sphere.Po \
	../src/sphere/$(DEPDIR)/np_sphere.Po \
	../src/sphere/$(DEPDIR)/sphere.Po \
	../src/sphere/$(DEPDIR)/sphere.Po \
	../src/testing/$(DEPDIR)/test_TEDF.Po \
	../src/testing/$(DEPDIR)/test_TEDF.Po \
@@ -454,6 +456,7 @@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
CYGPATH_W = @CYGPATH_W@
DEBUGFLAGS = @DEBUGFLAGS@
DEFS = @DEFS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DLLTOOL = @DLLTOOL@
@@ -577,7 +580,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
top_srcdir = @top_srcdir@
LDADD = libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${MAGMALDFLAGS}
LDADD = libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${MAGMALDFLAGS}
lib_LTLIBRARIES = libnptm/libnptm.la
lib_LTLIBRARIES = libnptm/libnptm.la
libnptm_libnptm_la_SOURCES = ../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/file_io.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/logging.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/tra_subs.cpp
libnptm_libnptm_la_SOURCES = ../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/file_io.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/logging.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/utils.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/tra_subs.cpp
@BUILDFORTRAN_FALSE@PROGS = cluster/np_cluster sphere/np_sphere trapping/np_trapping testing/test_TEDF testing/test_TTMS
@BUILDFORTRAN_FALSE@PROGS = cluster/np_cluster sphere/np_sphere trapping/np_trapping testing/test_TEDF testing/test_TTMS
@BUILDFORTRAN_TRUE@PROGS = cluster/edfb_clu cluster/clu cluster/np_cluster sphere/edfb_sph sphere/sph sphere/np_sphere trapping/frfme trapping/lffft trapping/np_trapping testing/test_TEDF testing/test_TTMS
@BUILDFORTRAN_TRUE@PROGS = cluster/edfb_clu cluster/clu cluster/np_cluster sphere/edfb_sph sphere/sph sphere/np_sphere trapping/frfme trapping/lffft trapping/np_trapping testing/test_TEDF testing/test_TTMS
@BUILDFORTRAN_TRUE@EDFBCLUSOURCES = ../src/cluster/edfb_clu.f
@BUILDFORTRAN_TRUE@EDFBCLUSOURCES = ../src/cluster/edfb_clu.f
@@ -749,6 +752,8 @@ clean-libLTLIBRARIES:
	../src/libnptm/$(DEPDIR)/$(am__dirstamp)
	../src/libnptm/$(DEPDIR)/$(am__dirstamp)
../src/libnptm/sph_subs.lo: ../src/libnptm/$(am__dirstamp) \
../src/libnptm/sph_subs.lo: ../src/libnptm/$(am__dirstamp) \
	../src/libnptm/$(DEPDIR)/$(am__dirstamp)
	../src/libnptm/$(DEPDIR)/$(am__dirstamp)
../src/libnptm/utils.lo: ../src/libnptm/$(am__dirstamp) \
	../src/libnptm/$(DEPDIR)/$(am__dirstamp)
../src/libnptm/tfrfme.lo: ../src/libnptm/$(am__dirstamp) \
../src/libnptm/tfrfme.lo: ../src/libnptm/$(am__dirstamp) \
	../src/libnptm/$(DEPDIR)/$(am__dirstamp)
	../src/libnptm/$(DEPDIR)/$(am__dirstamp)
../src/libnptm/TransitionMatrix.lo: ../src/libnptm/$(am__dirstamp) \
../src/libnptm/TransitionMatrix.lo: ../src/libnptm/$(am__dirstamp) \
@@ -900,6 +905,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/sph_subs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/sph_subs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/tfrfme.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/tfrfme.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/tra_subs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/tra_subs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/utils.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/sphere/$(DEPDIR)/np_sphere.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/sphere/$(DEPDIR)/np_sphere.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/sphere/$(DEPDIR)/sphere.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/sphere/$(DEPDIR)/sphere.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/testing/$(DEPDIR)/test_TEDF.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../src/testing/$(DEPDIR)/test_TEDF.Po@am__quote@ # am--include-marker
@@ -1268,6 +1274,7 @@ distclean: distclean-am
	-rm -f ../src/libnptm/$(DEPDIR)/sph_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/sph_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tfrfme.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tfrfme.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tra_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tra_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/utils.Plo
	-rm -f ../src/sphere/$(DEPDIR)/np_sphere.Po
	-rm -f ../src/sphere/$(DEPDIR)/np_sphere.Po
	-rm -f ../src/sphere/$(DEPDIR)/sphere.Po
	-rm -f ../src/sphere/$(DEPDIR)/sphere.Po
	-rm -f ../src/testing/$(DEPDIR)/test_TEDF.Po
	-rm -f ../src/testing/$(DEPDIR)/test_TEDF.Po
@@ -1337,6 +1344,7 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../src/libnptm/$(DEPDIR)/sph_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/sph_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tfrfme.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tfrfme.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tra_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/tra_subs.Plo
	-rm -f ../src/libnptm/$(DEPDIR)/utils.Plo
	-rm -f ../src/sphere/$(DEPDIR)/np_sphere.Po
	-rm -f ../src/sphere/$(DEPDIR)/np_sphere.Po
	-rm -f ../src/sphere/$(DEPDIR)/sphere.Po
	-rm -f ../src/sphere/$(DEPDIR)/sphere.Po
	-rm -f ../src/testing/$(DEPDIR)/test_TEDF.Po
	-rm -f ../src/testing/$(DEPDIR)/test_TEDF.Po
+23 −1
Original line number Original line Diff line number Diff line
@@ -669,6 +669,7 @@ OFFLOADFLAGS
BUILDFORTRAN_FALSE
BUILDFORTRAN_FALSE
BUILDFORTRAN_TRUE
BUILDFORTRAN_TRUE
ENABLE_ILP64
ENABLE_ILP64
DEBUGFLAGS
HDF5_LDFLAGS
HDF5_LDFLAGS
CXXCPP
CXXCPP
LT_SYS_LIBRARY_PATH
LT_SYS_LIBRARY_PATH
@@ -813,6 +814,7 @@ with_aix_soname
with_gnu_ld
with_gnu_ld
with_sysroot
with_sysroot
enable_libtool_lock
enable_libtool_lock
enable_debug
enable_ilp64
enable_ilp64
enable_fortran
enable_fortran
enable_offload
enable_offload
@@ -1479,6 +1481,7 @@ Optional Features:
  --enable-fast-install[=PKGS]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-debug=FEATURE  enable debug of FEATURE [default=no]
  --enable-ilp64          enable 64-bit indexing [default=yes]
  --enable-ilp64          enable 64-bit indexing [default=yes]
  --enable-fortran        enable legacy FORTRAN compilation [default=auto]
  --enable-fortran        enable legacy FORTRAN compilation [default=auto]
  --enable-offload        enable target offloading (requires g++ version >=
  --enable-offload        enable target offloading (requires g++ version >=
@@ -24936,6 +24939,25 @@ esac
fi
fi
# Configure the optional features
# Configure the optional features
# Check whether --enable-debug was given.
if test ${enable_debug+y}
then :
  enableval=$enable_debug;
    if test "x$enableval" = "xAM"; then
      DEBUGFLAGS="-DDEBUG_AM"
    fi
else case e in #(
  e)
    DEBUGFLAGS=""
 ;;
esac
fi
# Check whether --enable-ilp64 was given.
# Check whether --enable-ilp64 was given.
if test ${enable_ilp64+y}
if test ${enable_ilp64+y}
then :
then :
@@ -25647,7 +25669,7 @@ else case e in #(
 ;;
 ;;
esac
esac
fi
fi
CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $MAGMAFLAGS $NVTXFLAGS"
CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $DEBUGFLAGS $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $MAGMAFLAGS $NVTXFLAGS"
SUBDIRS="cluster libnptm sphere testing trapping"
SUBDIRS="cluster libnptm sphere testing trapping"
# Generate the output
# Generate the output
+14 −1
Original line number Original line Diff line number Diff line
@@ -405,6 +405,19 @@ AS_IF(
)
)


# Configure the optional features
# Configure the optional features
AC_ARG_ENABLE(
  [debug],
  [AS_HELP_STRING([--enable-debug=FEATURE], [enable debug of FEATURE [default=no]])],
  [
    if test "x$enableval" = "xAM"; then
      AC_SUBST([DEBUGFLAGS], ["-DDEBUG_AM"])
    fi
  ],
  [
    AC_SUBST([DEBUGFLAGS], [""])
  ]
)

AC_ARG_ENABLE(
AC_ARG_ENABLE(
  [ilp64],
  [ilp64],
  [AS_HELP_STRING([--enable-ilp64], [enable 64-bit indexing [default=yes]])],
  [AS_HELP_STRING([--enable-ilp64], [enable 64-bit indexing [default=yes]])],
@@ -641,7 +654,7 @@ AS_IF(
  [AC_SUBST([OMPFLAGS], [""])],
  [AC_SUBST([OMPFLAGS], [""])],
  [AC_SUBST([OMPFLAGS], [$OMPFLAGS])]
  [AC_SUBST([OMPFLAGS], [$OMPFLAGS])]
)
)
CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $MAGMAFLAGS $NVTXFLAGS"
CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $DEBUGFLAGS $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $MAGMAFLAGS $NVTXFLAGS"
SUBDIRS="cluster libnptm sphere testing trapping"
SUBDIRS="cluster libnptm sphere testing trapping"


# Generate the output
# Generate the output
+50 −1
Original line number Original line Diff line number Diff line
@@ -83,6 +83,10 @@
#include "../include/file_io.h"
#include "../include/file_io.h"
#endif
#endif


#ifndef INCLUDE_UTILS_H_
#include "../include/utils.h"
#endif

using namespace std;
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...
@@ -370,7 +374,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
      int myjxi488startoffset = 0;
      int myjxi488startoffset = 0;
      int myMPIstride = ompnumthreads;
      int myMPIstride = ompnumthreads;
      int myMPIblock = ompnumthreads;
      int myMPIblock = ompnumthreads;
      // Define here shared arrays of virtual ascii and binary files, so that thread 0 will be able to access the all later
      // Define here shared arrays of virtual ascii and binary files, so that thread 0 will be able to access them all later
      VirtualAsciiFile **p_outarray = NULL;
      VirtualAsciiFile **p_outarray = NULL;
      VirtualBinaryFile **vtppoanarray = NULL;
      VirtualBinaryFile **vtppoanarray = NULL;


@@ -762,8 +766,31 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
  interval_start = chrono::high_resolution_clock::now();
  interval_start = chrono::high_resolution_clock::now();
#ifdef USE_NVTX
#ifdef USE_NVTX
  nvtxRangePush("Calculate inverted matrix");
  nvtxRangePush("Calculate inverted matrix");
#endif
#ifdef DEBUG_AM
  /* now, before cms, output am to p_outam0 */
  VirtualAsciiFile *outam0 = new VirtualAsciiFile();
  string outam0_name = output_path + "/c_AM0_JXI" + to_string(jxi488) + ".txt";
  sprintf(virtual_line, " AM matrix before CMS\n");
  outam0->append_line(virtual_line);
  sprintf(virtual_line, " I1+1   I2+1    Real    Imag\n");
  outam0->append_line(virtual_line);
  write_dcomplex_matrix(outam0, cid->am, ndit, ndit);
  outam0->write_to_disk(outam0_name);
  delete outam0;
#endif
#endif
  cms(cid->am, cid->c1, cid->c1ao, cid->c4, cid->c6);
  cms(cid->am, cid->c1, cid->c1ao, cid->c4, cid->c6);
#ifdef DEBUG_AM
  VirtualAsciiFile *outam1 = new VirtualAsciiFile();
  string outam1_name = output_path + "/c_AM1_JXI" + to_string(jxi488) + ".txt";
  sprintf(virtual_line, " AM matrix after CMS before LUCIN\n");
  outam1->append_line(virtual_line);
  sprintf(virtual_line, " I1+1   I2+1    Real    Imag\n");
  outam1->append_line(virtual_line);
  write_dcomplex_matrix(outam1, cid->am, ndit, ndit, " %5d %5d (%17.8lE,%17.8lE)\n", 1);
  outam1->write_to_disk(outam1_name);
  delete outam1;
#endif
#ifdef USE_NVTX
#ifdef USE_NVTX
  nvtxRangePop();
  nvtxRangePop();
#endif
#endif
@@ -776,6 +803,17 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
  nvtxRangePush("Invert the matrix");
  nvtxRangePush("Invert the matrix");
#endif
#endif
  invert_matrix(cid->am, ndit, jer, mxndm, cid->proc_device);
  invert_matrix(cid->am, ndit, jer, mxndm, cid->proc_device);
#ifdef DEBUG_AM
  VirtualAsciiFile *outam2 = new VirtualAsciiFile();
  string outam2_name = output_path + "/c_AM2_JXI" + to_string(jxi488) + ".txt";
  sprintf(virtual_line, " AM matrix after LUCIN before ZTM\n");
  outam2->append_line(virtual_line);
  sprintf(virtual_line, " I1+1   I2+1    Real    Imag\n");
  outam2->append_line(virtual_line);
  write_dcomplex_matrix(outam2, cid->am, ndit, ndit);
  outam2->write_to_disk(outam2_name);
  delete outam2;
#endif
#ifdef USE_NVTX
#ifdef USE_NVTX
  nvtxRangePop();
  nvtxRangePop();
#endif
#endif
@@ -794,6 +832,17 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
  nvtxRangePush("Average calculation");
  nvtxRangePush("Average calculation");
#endif
#endif
  ztm(cid->am, cid->c1, cid->c1ao, cid->c4, cid->c6, cid->c9);
  ztm(cid->am, cid->c1, cid->c1ao, cid->c4, cid->c6, cid->c9);
#ifdef DEBUG_AM
  VirtualAsciiFile *outam3 = new VirtualAsciiFile();
  string outam3_name = output_path + "/c_AM3_JXI" + to_string(jxi488) + ".txt";
  sprintf(virtual_line, " AM matrix after ZTM\n");
  outam3->append_line(virtual_line);
  sprintf(virtual_line, " I1+1   I2+1    Real    Imag\n");
  outam3->append_line(virtual_line);
  write_dcomplex_matrix(outam3, cid->am, ndit, ndit);
  outam3->write_to_disk(outam3_name);
  delete outam3;
#endif
  if (idfc >= 0) {
  if (idfc >= 0) {
    if (jxi488 == jwtm) {
    if (jxi488 == jwtm) {
      int nlemt = 2 * cid->c4->nlem;
      int nlemt = 2 * cid->c4->nlem;
Loading