TDLDA in PARSEC
Home page
This describes an "as is" fortran code written by Murilo Tiago, Shiv Gowda, and Emmanuel Lorin de la Grandmaison. Looks like it was written in 2004. It's not the most recent version, apparently. Look here for the most recent version.
File names and routines coincide (careful with extension f90p or f90)
Expand   Collapse
  • initialize
    • MPI_INIT
    • MPI_COMM_RANK
    • MPI_COMM_SIZE
    • timacc
    • date_time
      • date_and_time
      • chrchk
  • input_t
    • die
      • date_time
        • date_and_time
        • chrchk
      • myflush
        • flush_
      • MPI_Abort
  • read_wfn
    • adjustfft
    • die
      • date_time
        • date_and_time
        • chrchk
      • myflush
        • flush_
      • MPI_Abort
    • heapsort
    • logit
      • MPI_COMM_RANK
      • MPI_COMM_SIZE
      • date_and_time
      • myflush
        • flush_
    • MPI_BARRIER
    • MPI_BCAST
    • read_wfn_old
      • adjustfft
      • die
        • date_time
          • date_and_time
          • chrchk
        • myflush
          • flush_
        • MPI_Abort
      • heapsort
      • logit
        • MPI_COMM_RANK
        • MPI_COMM_SIZE
        • date_and_time
        • myflush
          • flush_
      • MPI_BARRIER
      • MPI_BCAST
  • die
    • date_time
      • date_and_time
      • chrchk
    • myflush
      • flush_
    • MPI_Abort
  • logit
    • MPI_COMM_RANK
    • MPI_COMM_SIZE
    • date_and_time
    • myflush
      • flush_
  • timacc
  • setup_t
    • dipole
      • die
        • date_time
          • date_and_time
          • chrchk
        • myflush
          • flush_
        • MPI_Abort
      • get_wfn
        • MPI_Bcast
        • MPI_Barrier
      • MPI_Allreduce
      • MPI_BARRIER
      • multiply_vec
      • unfold
    • define_pmap
      • mapinverse
    • define_kmap
  • timacc
  • chkpt_pol
  • MPI_Bcast
  • create_coul
  • MPI_Barrier
  • logit
    • MPI_COMM_RANK
    • MPI_COMM_SIZE
    • date_and_time
    • myflush
      • flush_
  • timacc
  • calculatematrix
    • daxpy [BLAS netlib routine]
    • dcopy [BLAS netlib routine]
    • die
      • date_time
        • date_and_time
        • chrchk
      • myflush
        • flush_
      • MPI_Abort
    • get_wfn
      • MPI_Bcast
      • MPI_Barrier
    • logit
      • MPI_COMM_RANK
      • MPI_COMM_SIZE
      • date_and_time
      • myflush
        • flush_
    • MPI_ALLREDUCE
    • MPI_BARRIER
    • MPI_BCAST
    • multiply_rvec
    • multiply_vec
    • myflush
      • flush_
    • poisson
    • scopy
    • select1234
    • timacc
  • timacc
  • logit
    • MPI_COMM_RANK
    • MPI_COMM_SIZE
    • date_and_time
    • myflush
      • flush_
  • timacc
  • diag_pol_td
    • date_time
      • date_and_time
      • chrchk
    • die
      • date_time
        • date_and_time
        • chrchk
      • myflush
        • flush_
      • MPI_Abort
    • logit
      • MPI_COMM_RANK
      • MPI_COMM_SIZE
      • date_and_time
      • myflush
        • flush_
    • MPI_Allreduce
    • MPI_BARRIER
    • MPI_BCAST
    • MPI_RECV
    • MPI_SEND
    • myflush
      • flush_
    • peig_inter
      • layout_scalapack
    • timacc
  • diag_pol
    • date_time
      • date_and_time
      • chrchk
    • die
      • date_time
        • date_and_time
        • chrchk
      • myflush
        • flush_
      • MPI_Abort
    • logit
      • MPI_COMM_RANK
      • MPI_COMM_SIZE
      • date_and_time
      • myflush
        • flush_
    • MPI_Allreduce
    • MPI_BARRIER
    • MPI_BCAST
    • MPI_RECV
    • MPI_SEND
    • myflush
      • flush_
    • peig_inter
      • dsyevx [used in sequencial and parallel case]
      • blacs_get
      • blacs_gridexit
      • blacs_gridinfo
      • blacs_gridinit
      • descinit
      • dspev
      • layout_scalapack
      • mpi_allreduce
      • mpi_barrier
      • MPI_BCAST
      • mpi_comm_rank
      • mpi_isend
      • mpi_recv
      • mpi_send
      • pdsyevx
    • timacc
  • timacc
  • myflush
    • flush (could also be "flush_" depending on the machine)
  • sum_rule
    • heapsort
  • timacc
  • timsum
    • timacc
    • MPI_ALLREDUCE
    • date_time
      • date_and_time
      • chrchk
  • MPI_Finalize

  • Makefile for serial case, MSI BladeCenter:

      EXT = .ser

      MKL_PATH = /soft/intel/mkl/10.1.0.015/lib/em64t
      LIBMKL = -L$(MKL_PATH) -lmkl_lapack -lmkl_em64t -openmp -lmkl_core -lmkl_intel_ilp64 -lmkl_intel_thread

      FFTW_DIR = /home/bc1/carrierp/LIB/FFTW
      LIBFFTW = -I$(FFTW_DIR)/include -L$(FFTW_DIR)/lib -lfftw3

      FC = ifort
      F90 = ifort

      CPPOPT = -DUSEFFTW3
      CPP = /usr/bin/cpp -P -traditional

      FFLAGS = -O3
      FFLAGS2 = $(FFLAGS)

      #
      # source files without preprocessing
      #
      SRCF = chrchk.f90 cputime.f90 date_time.f90 heapsort.f90 input_t.f90 myflush.f90 sum_rule.f90 timacc.f90 walltime.f90

      OBJF = $(SRCF:.f90=.o)

      #
      # source files with preprocessing
      #
      PSRCF = xc_lda.o adjustfft.f90p calculatematrix.f90p chkpt_pol.f90p create_coul.f90p define_kmap.f90p define_pmap.f90p diag_pol.f90p diag_pol_td.f90p die.f90p dipole.f90p do_rFFT.f90p get_wfn.f90p initialize.f90p layout_scalapack.f90p logit.f90p logitint.f90p mapinverse.f90p multiply_rvec.f90p multiply_vec.f90p peig_inter.f90p poisson.f90p read_wfn.f90p read_wfn_old.f90p select1234.f90p setup_t.f90p tdlda.f90p timsum.f90p unfold.f90p

      POBJF = $(PSRCF:.f90p=.o)

      #
      # modules, with optimization
      #
      MODULE = typedefs.o myconstants.o

      tdlda: module objf pobjf
      $(FC) -o tdlda$(EXT) $(FFLAGS) \
      $(OBJF) $(POBJF) \
      $(LIBMKL) $(LIBFFTW) $(LIBMPI)

      all: tdlda

      .SUFFIXES: .f90 .f90p $(SUFFIXES)

      objf:
      [TAB CHARACTER]make FOPTS="$(FFLAGS)" $(OBJF)

      pobjf:
      [TAB CHARACTER]make FOPTS="$(FFLAGS)" $(POBJF)

      module:
      [TAB CHARACTER]make FOPTS="$(FFLAGS)" $(MODULE)

      .f.o:
      [TAB CHARACTER]$(FC) -c $(FOPTS) $*.f

      .f90.o:
      [TAB CHARACTER]$(F90) -c $(FOPTS) $*.f90

      .f90p.o:
      [TAB CHARACTER]$(CPP) $(CPPOPT) $< | sed '/^#pragma/d' > $*.tmp.f90
      [TAB CHARACTER]$(F90) -c $(FOPTS) $*.tmp.f90 -o $*.o

      cleanall: clean
      [TAB CHARACTER]-@if [ -d ]; \
      [TAB CHARACTER]make allclean; cd ..; fi
      [TAB CHARACTER]/bin/rm -f tdlda.ser* tdlda.mpi*
      [TAB CHARACTER]/bin/rm -f *~

      allclean: cleanall

      clean: cleantmp
      [TAB CHARACTER]/bin/rm -f *.o
      [TAB CHARACTER]/bin/rm -f *.mod

      cleantmp:
      [TAB CHARACTER]/bin/rm -f *.tmp.f *.tmp.f90

      #####################################
      # Dependencies on "include" files #
      #####################################
      tdlda.o:


List of module exchange-correlation files:
xc_lda.f90p

List of .f90p files:
adjustfft.f90p calculatematrix.f90p chkpt_pol.f90p create_coul.f90p define_kmap.f90p define_pmap.f90p diag_pol.f90p diag_pol_td.f90p die.f90p dipole.f90p do_rFFT.f90p get_wfn.f90p initialize.f90p layout_scalapack.f90p logit.f90p logitint.f90p mapinverse.f90p multiply_rvec.f90p multiply_vec.f90p peig_inter.f90p poisson.f90p read_wfn.f90p read_wfn_old.f90p select1234.f90p setup_t.f90p tdlda.f90p timsum.f90p unfold.f90p

List of .f90 files:
chrchk.f90 cputime.f90 date_time.f90 heapsort.f90 input_t.f90 myflush.f90 sum_rule.f90 timacc.f90 walltime.f90

List of lapack-blas mkl routines:
daxpy dcopy svem dvem dscal scopy

List of Fourier transform routines and libraries:
FFTW: dfftw_execute dfftw_plan_dft_r2c_3d dfftw_plan_dft_c2r_3d
ESSL: dcrft3 drcft3

List of timing routines:
date_and_time

List of MPI routines:
MPI_Abort MPI_Bcast MPI_Barrier MPI_Comm_Rank MPI_Comm_size MPI_Allreduce MPI_Recv MPI_Send MPI_Init MPI_Finalize


This web page is regularly updated Summer 2009. This web page is for personal use; I don't see how this web page could be useful to anyone besides myself.