From 55a2769372fe3f3d56d78f1de472b08008ab729b Mon Sep 17 00:00:00 2001
From: Antoine Hoffmann <antoine.hoffmann@epfl.ch>
Date: Fri, 3 Jun 2022 12:12:05 +0200
Subject: [PATCH] removed headers

---
 src/diag_headers/diagnose_fields.h      | 157 --------
 src/diag_headers/diagnose_full.h        | 496 ------------------------
 src/diag_headers/diagnose_gridgeom.h    |  50 ---
 src/diag_headers/diagnose_moments.h     | 136 -------
 src/diag_headers/diagnose_momspectrum.h | 105 -----
 src/diag_headers/diagnose_profiler.h    |  54 ---
 src/diag_headers/diagnose_timetraces.h  |  76 ----
 7 files changed, 1074 deletions(-)
 delete mode 100644 src/diag_headers/diagnose_fields.h
 delete mode 100644 src/diag_headers/diagnose_full.h
 delete mode 100644 src/diag_headers/diagnose_gridgeom.h
 delete mode 100644 src/diag_headers/diagnose_moments.h
 delete mode 100644 src/diag_headers/diagnose_momspectrum.h
 delete mode 100644 src/diag_headers/diagnose_profiler.h
 delete mode 100644 src/diag_headers/diagnose_timetraces.h

diff --git a/src/diag_headers/diagnose_fields.h b/src/diag_headers/diagnose_fields.h
deleted file mode 100644
index a68cb8fb..00000000
--- a/src/diag_headers/diagnose_fields.h
+++ /dev/null
@@ -1,157 +0,0 @@
-SUBROUTINE diagnose_fields(kstep)
-  USE basic
-  USE grid
-  USE diagnostics_par
-  USE futils
-  USE array
-  USE model
-  USE initial_par
-  USE fields
-  USE time_integration
-  USE utility
-  USE prec_const
-  USE collision, ONLY: coll_outputinputs
-  USE geometry
-  USE processing
-  IMPLICIT NONE
-  INTEGER, INTENT(in) :: kstep
-  INTEGER, parameter  :: BUFSIZE = 2
-  INTEGER :: rank = 0
-  INTEGER :: dims(1) = (/0/)
-  !____________________________________________________________________________!
-  IF ((kstep .EQ. 0)) THEN
-   !  fields result file (electro. pot., Ni00 moment, fluid moments etc.)
-   IF (nsave_3d .GT. 0) THEN
-    CALL init_outfile(comm_kyz,fldfile0,fldfile,fidfld)
-    CALL creatd(fidfld, rank, dims,  "/data/time",     "Time t*c_s/R")
-    CALL creatd(fidfld, rank, dims, "/data/cstep", "iteration number")
-
-    IF (write_phi) CALL creatg(fidfld, "/data/phi", "phi")
-
-    IF (write_Na00) THEN
-     IF(KIN_E)&
-     CALL creatg(fidfld, "/data/Ne00", "Ne00")
-     CALL creatg(fidfld, "/data/Ni00", "Ni00")
-    ENDIF
-
-    IF (write_dens) THEN
-      IF(KIN_E)&
-     CALL creatg(fidfld, "/data/dens_e", "dens_e")
-     CALL creatg(fidfld, "/data/dens_i", "dens_i")
-    ENDIF
-
-    IF (write_fvel) THEN
-      IF(KIN_E) THEN
-      CALL creatg(fidfld, "/data/upar_e", "upar_e")
-      CALL creatg(fidfld, "/data/uper_e", "uper_e")
-      ENDIF
-      CALL creatg(fidfld, "/data/upar_i", "upar_i")
-      CALL creatg(fidfld, "/data/uper_i", "uper_i")
-    ENDIF
-
-    IF (write_temp) THEN
-      IF(KIN_E) THEN
-      CALL creatg(fidfld, "/data/Tper_e", "Tper_e")
-      CALL creatg(fidfld, "/data/Tpar_e", "Tpar_e")
-      CALL creatg(fidfld, "/data/temp_e", "temp_e")
-      ENDIF
-      CALL creatg(fidfld, "/data/Tper_i", "Tper_i")
-      CALL creatg(fidfld, "/data/Tpar_i", "Tpar_i")
-      CALL creatg(fidfld, "/data/temp_i", "temp_i")
-    ENDIF
-
-    IF (cstep==0) THEN
-      iframe3d=0
-    ENDIF
-    CALL attach(fidfld,"/data/" , "frames", iframe3d)
-   END IF
-  ENDIF
-
-  !_____________________________________________________________________________
-  !                   2.   Periodic diagnostics
-  !
-  IF (kstep .GE. 0) THEN
-
-  !                       2.2   3d profiles
-  IF (nsave_3d .GT. 0) THEN
-     IF (MOD(cstep, nsave_3d) == 0) THEN
-
-       CALL append(fidfld,  "/data/time",           time,ionode=0)
-       CALL append(fidfld, "/data/cstep", real(cstep,dp),ionode=0)
-       CALL getatt(fidfld,      "/data/",       "frames",iframe3d)
-       iframe3d=iframe3d+1
-       CALL attach(fidfld,"/data/" , "frames", iframe3d)
-
-       IF (write_phi) CALL write_field3d_kykxz(phi (ikys:ikye,ikxs:ikxe,izs:ize), 'phi')
-
-       IF (write_Na00) THEN
-         IF(KIN_E)THEN
-         IF (ips_e .EQ. 1) THEN
-           Ne00(ikys:ikye,ikxs:ikxe,izs:ize) = moments_e(ips_e,1,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel)
-         ENDIF
-         CALL write_field3d_kykxz(Ne00(ikys:ikye,ikxs:ikxe,izs:ize), 'Ne00')
-         ENDIF
-         IF (ips_i .EQ. 1) THEN
-           Ni00(ikys:ikye,ikxs:ikxe,izs:ize) = moments_i(ips_e,1,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel)
-         ENDIF
-         CALL write_field3d_kykxz(Ni00(ikys:ikye,ikxs:ikxe,izs:ize), 'Ni00')
-       ENDIF
-
-       !! Fuid moments
-       IF (write_dens .OR. write_fvel .OR. write_temp) &
-       CALL compute_fluid_moments
-
-       IF (write_dens) THEN
-         IF(KIN_E)&
-         CALL write_field3d_kykxz(dens_e(ikys:ikye,ikxs:ikxe,izs:ize), 'dens_e')
-         CALL write_field3d_kykxz(dens_i(ikys:ikye,ikxs:ikxe,izs:ize), 'dens_i')
-       ENDIF
-
-       IF (write_fvel) THEN
-         IF(KIN_E)&
-         CALL write_field3d_kykxz(upar_e(ikys:ikye,ikxs:ikxe,izs:ize), 'upar_e')
-         CALL write_field3d_kykxz(upar_i(ikys:ikye,ikxs:ikxe,izs:ize), 'upar_i')
-         IF(KIN_E)&
-         CALL write_field3d_kykxz(uper_e(ikys:ikye,ikxs:ikxe,izs:ize), 'uper_e')
-         CALL write_field3d_kykxz(uper_i(ikys:ikye,ikxs:ikxe,izs:ize), 'uper_i')
-       ENDIF
-
-       IF (write_temp) THEN
-         IF(KIN_E)&
-         CALL write_field3d_kykxz(Tpar_e(ikys:ikye,ikxs:ikxe,izs:ize), 'Tpar_e')
-         CALL write_field3d_kykxz(Tpar_i(ikys:ikye,ikxs:ikxe,izs:ize), 'Tpar_i')
-         IF(KIN_E)&
-         CALL write_field3d_kykxz(Tper_e(ikys:ikye,ikxs:ikxe,izs:ize), 'Tper_e')
-         CALL write_field3d_kykxz(Tper_i(ikys:ikye,ikxs:ikxe,izs:ize), 'Tper_i')
-         IF(KIN_E)&
-         CALL write_field3d_kykxz(temp_e(ikys:ikye,ikxs:ikxe,izs:ize), 'temp_e')
-         CALL write_field3d_kykxz(temp_i(ikys:ikye,ikxs:ikxe,izs:ize), 'temp_i')
-       ENDIF
-
-     END IF
-  END IF
-  !_____________________________________________________________________________
-  !                   3.   Final diagnostics
-  ELSEIF (kstep .EQ. -1) THEN
-    !   Close diagnostic files
-    CALL mpi_barrier(MPI_COMM_WORLD, ierr)
-    CALL closef(fidfld)
-
-  END IF
-
-  CONTAINS
-    SUBROUTINE write_field3d_kykxz(field, text)
-      IMPLICIT NONE
-      COMPLEX(dp), DIMENSION(ikys:ikye,ikxs:ikxe, izs:ize), INTENT(IN) :: field
-      CHARACTER(*), INTENT(IN) :: text
-      CHARACTER(LEN=50) :: dset_name
-      WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data", TRIM(text), iframe3d
-      IF (num_procs .EQ. 1) THEN ! no data distribution
-        CALL putarr(fidfld, dset_name, field(ikys:ikye,ikxs:ikxe, izs:ize), ionode=0)
-      ELSE
-        CALL putarrnd(fidfld, dset_name, field(ikys:ikye,ikxs:ikxe, izs:ize),  (/1, 3/))
-      ENDIF
-      CALL attach(fidfld, dset_name, "time", time)
-    END SUBROUTINE write_field3d_kykxz
-
-END SUBROUTINE diagnose_fields
diff --git a/src/diag_headers/diagnose_full.h b/src/diag_headers/diagnose_full.h
deleted file mode 100644
index 091ff4b0..00000000
--- a/src/diag_headers/diagnose_full.h
+++ /dev/null
@@ -1,496 +0,0 @@
-SUBROUTINE diagnose_full(kstep)
-USE basic
-USE grid
-USE diagnostics_par
-USE futils, ONLY: creatf, creatg, creatd, closef, putarr, putfile, attach, openf, putarrnd
-USE array
-USE model
-USE initial_par
-USE fields
-USE time_integration
-USE parallel
-USE prec_const
-USE collision, ONLY: coll_outputinputs
-USE geometry
-IMPLICIT NONE
-
-INTEGER, INTENT(in) :: kstep
-INTEGER, parameter  :: BUFSIZE = 2
-INTEGER :: rank = 0
-INTEGER :: dims(1) = (/0/)
-INTEGER :: cp_counter = 0
-CHARACTER(len=256) :: str,test_
-!____________________________________________________________________________
-!                   1.   Initial diagnostics
-
-IF ((kstep .EQ. 0)) THEN
-  CALL init_outfile(comm0,   resfile0,resfile,fidres)
-
-  ! Profiler time measurement
-  CALL creatg(fidres, "/profiler", "performance analysis")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_rhs",        "cumulative rhs computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_adv_field",  "cumulative adv. fields computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_clos",       "cumulative closure computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_ghost",       "cumulative communication time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_coll",       "cumulative collision computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_poisson",    "cumulative poisson computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_Sapj",       "cumulative Sapj computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_checkfield", "cumulative checkfield computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_diag",       "cumulative sym computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_process",    "cumulative process computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/Tc_step",       "cumulative total step computation time")
-  CALL creatd(fidres, 0, dims, "/profiler/time",          "current simulation time")
-
-  ! Grid info
-  CALL creatg(fidres, "/data/grid", "Grid data")
-  CALL putarr(fidres, "/data/grid/coordkx",   kxarray_full,  "kx*rho_s0", ionode=0)
-  CALL putarr(fidres, "/data/grid/coordky",   kyarray_full,  "ky*rho_s0", ionode=0)
-  CALL putarr(fidres, "/data/grid/coordz",    zarray_full,   "z/R", ionode=0)
-  CALL putarr(fidres, "/data/grid/coordp_e" , parray_e_full, "p_e", ionode=0)
-  CALL putarr(fidres, "/data/grid/coordj_e" , jarray_e_full, "j_e", ionode=0)
-  CALL putarr(fidres, "/data/grid/coordp_i" , parray_i_full, "p_i", ionode=0)
-  CALL putarr(fidres, "/data/grid/coordj_i" , jarray_i_full, "j_i", ionode=0)
-
-  ! Metric info
-  CALL   creatg(fidres, "/data/metric", "Metric data")
-  CALL putarrnd(fidres, "/data/metric/gxx",            gxx(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gxy",            gxy(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gyy",            gyy(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gyz",            gyz(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gzz",            gzz(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/hatR",          hatR(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/hatZ",          hatZ(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/hatB",          hatB(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gradxB",      gradxB(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gradyB",      gradyB(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gradzB",      gradzB(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/Jacobian",    Jacobian(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/gradz_coeff", gradz_coeff(izs:ize,0:1), (/1, 1, 1/))
-  CALL putarrnd(fidres, "/data/metric/Ckxky",       Ckxky(ikys:ikye,ikxs:ikxe,izs:ize,0:1), (/1, 1, 3/))
-  CALL putarrnd(fidres, "/data/metric/kernel_i",    kernel_i(ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize,0:1), (/ 1, 2, 4/))
-
-  !  var0d group (gyro transport)
-  IF (nsave_0d .GT. 0) THEN
-   CALL creatg(fidres, "/data/var0d", "0d profiles")
-   CALL creatd(fidres, rank, dims,  "/data/var0d/time",     "Time t*c_s/R")
-   CALL creatd(fidres, rank, dims, "/data/var0d/cstep", "iteration number")
-
-   IF (write_gamma) THEN
-     CALL creatd(fidres, rank, dims, "/data/var0d/gflux_ri", "Radial gyro ion transport")
-     CALL creatd(fidres, rank, dims, "/data/var0d/pflux_ri", "Radial part ion transport")
-   ENDIF
-   IF (write_hf) THEN
-     CALL creatd(fidres, rank, dims, "/data/var0d/hflux_x", "Radial part ion heat flux")
-   ENDIF
-   IF (cstep==0) THEN
-     iframe0d=0
-   ENDIF
-   CALL attach(fidres,"/data/var0d/" , "frames", iframe0d)
-  END IF
-
-
-  !  var2d group (??)
-  IF (nsave_2d .GT. 0) THEN
-   CALL creatg(fidres, "/data/var2d", "2d profiles")
-   CALL creatd(fidres, rank, dims,  "/data/var2d/time",     "Time t*c_s/R")
-   CALL creatd(fidres, rank, dims, "/data/var2d/cstep", "iteration number")
-   IF (cstep==0) THEN
-     iframe2d=0
-   ENDIF
-   CALL attach(fidres,"/data/var2d/" , "frames", iframe2d)
-  END IF
-
-  !  var3d group (electro. pot., Ni00 moment)
-  IF (nsave_3d .GT. 0) THEN
-   CALL creatg(fidres, "/data/var3d", "3d profiles")
-   CALL creatd(fidres, rank, dims,  "/data/var3d/time",     "Time t*c_s/R")
-   CALL creatd(fidres, rank, dims, "/data/var3d/cstep", "iteration number")
-
-   IF (write_phi) CALL creatg(fidres, "/data/var3d/phi", "phi")
-   IF (write_phi) THEN
-    CALL creatg(fidres, "/data/var3d/phi_gatherv", "phi_gatherv")
-   ENDIF
-
-   IF (write_Na00) THEN
-    IF(KIN_E)&
-    CALL creatg(fidres, "/data/var3d/Ne00", "Ne00")
-    CALL creatg(fidres, "/data/var3d/Ni00", "Ni00")
-    CALL creatg(fidres, "/data/var3d/Ni00_gatherv", "Ni00_gatherv")
-    IF(KIN_E)&
-    CALL creatg(fidres, "/data/var3d/Nepjz", "Nepjz")
-    CALL creatg(fidres, "/data/var3d/Nipjz", "Nipjz")
-    CALL creatg(fidres, "/data/var3d/Nipjz_full", "Nipjz")
-   ENDIF
-
-   IF (write_dens) THEN
-     IF(KIN_E)&
-    CALL creatg(fidres, "/data/var3d/dens_e", "dens_e")
-    CALL creatg(fidres, "/data/var3d/dens_i", "dens_i")
-   ENDIF
-
-   IF (write_fvel) THEN
-     IF(KIN_E) THEN
-     CALL creatg(fidres, "/data/var3d/upar_e", "upar_e")
-     CALL creatg(fidres, "/data/var3d/uper_e", "uper_e")
-     ENDIF
-     CALL creatg(fidres, "/data/var3d/upar_i", "upar_i")
-     CALL creatg(fidres, "/data/var3d/uper_i", "uper_i")
-   ENDIF
-
-   IF (write_temp) THEN
-     IF(KIN_E) THEN
-     CALL creatg(fidres, "/data/var3d/Tper_e", "Tper_e")
-     CALL creatg(fidres, "/data/var3d/Tpar_e", "Tpar_e")
-     CALL creatg(fidres, "/data/var3d/temp_e", "temp_e")
-     ENDIF
-     CALL creatg(fidres, "/data/var3d/Tper_i", "Tper_i")
-     CALL creatg(fidres, "/data/var3d/Tpar_i", "Tpar_i")
-     CALL creatg(fidres, "/data/var3d/temp_i", "temp_i")
-   ENDIF
-
-   IF (cstep==0) THEN
-     iframe3d=0
-   ENDIF
-   CALL attach(fidres,"/data/var3d/" , "frames", iframe3d)
-  END IF
-
-  !  var5d group (moments)
-  IF (nsave_5d .GT. 0) THEN
-    CALL creatg(fidres, "/data/var5d", "5d profiles")
-    CALL creatd(fidres, rank, dims,  "/data/var5d/time",     "Time t*c_s/R")
-    CALL creatd(fidres, rank, dims, "/data/var5d/cstep", "iteration number")
-
-    IF (write_Napj) THEN
-      IF(KIN_E)&
-     CALL creatg(fidres, "/data/var5d/moments_e", "moments_e")
-     CALL creatg(fidres, "/data/var5d/moments_i", "moments_i")
-    ENDIF
-
-    IF (write_Sapj) THEN
-      IF(KIN_E)&
-     CALL creatg(fidres, "/data/var5d/moments_e", "Sipj")
-     CALL creatg(fidres, "/data/var5d/moments_i", "Sepj")
-    ENDIF
-
-    IF (cstep==0) THEN
-     iframe5d=0
-    END IF
-    CALL attach(fidres,"/data/var5d/" , "frames", iframe5d)
-  END IF
-ENDIF
-
-!_____________________________________________________________________________
-!                   2.   Periodic diagnostics
-!
-IF (kstep .GE. 0) THEN
-
-   !                       2.1   0d history arrays
-   IF (nsave_0d .GT. 0) THEN
-      IF ( MOD(cstep, nsave_0d) == 0 ) THEN
-         CALL diagnose_0d
-      END IF
-   END IF
-
-   !                       2.2   1d profiles
-   ! empty in our case
-
-   !                       2.3   2d profiles
-   ! empty in our case
-
-
-   !                       2.3   2d profiles
-   IF (nsave_3d .GT. 0) THEN
-      IF (MOD(cstep, nsave_3d) == 0) THEN
-        CALL diagnose_3d
-      END IF
-   END IF
-
-   !                       2.4   3d profiles
-   IF (nsave_5d .GT. 0 .AND. cstep .GT. 0) THEN
-      IF (MOD(cstep, nsave_5d) == 0) THEN
-         CALL diagnose_5d
-      END IF
-   END IF
-
-!_____________________________________________________________________________
-!                   3.   Final diagnostics
-
-ELSEIF (kstep .EQ. -1) THEN
-   CALL attach(fidres, "/data/input","cpu_time",finish-start)
-
-   ! make a checkpoint at last timestep if not crashed
-   IF(.NOT. crashed) THEN
-     IF(my_id .EQ. 0) write(*,*) 'Saving last state'
-     IF (nsave_5d .GT. 0) &
-     CALL diagnose_5d
-   ENDIF
-
-   !   Close all diagnostic files
-   CALL mpi_barrier(MPI_COMM_WORLD, ierr)
-   CALL closef(fidres)
-
-END IF
-
-END SUBROUTINE diagnose_full
-
-!!-------------- Auxiliary routines -----------------!!
-SUBROUTINE diagnose_0d
-
-  USE basic
-  USE futils, ONLY: append, attach, getatt
-  USE diagnostics_par
-  USE prec_const
-  USE processing
-  USE model, ONLY: KIN_E
-
-  IMPLICIT NONE
-  ! Time measurement data
-  CALL append(fidres, "/profiler/Tc_rhs",              tc_rhs,ionode=0)
-  CALL append(fidres, "/profiler/Tc_adv_field",  tc_adv_field,ionode=0)
-  CALL append(fidres, "/profiler/Tc_clos",            tc_clos,ionode=0)
-  CALL append(fidres, "/profiler/Tc_ghost",          tc_ghost,ionode=0)
-  CALL append(fidres, "/profiler/Tc_coll",            tc_coll,ionode=0)
-  CALL append(fidres, "/profiler/Tc_poisson",      tc_poisson,ionode=0)
-  CALL append(fidres, "/profiler/Tc_Sapj",            tc_Sapj,ionode=0)
-  CALL append(fidres, "/profiler/Tc_checkfield",tc_checkfield,ionode=0)
-  CALL append(fidres, "/profiler/Tc_diag",            tc_diag,ionode=0)
-  CALL append(fidres, "/profiler/Tc_process",      tc_process,ionode=0)
-  CALL append(fidres, "/profiler/Tc_step",            tc_step,ionode=0)
-  CALL append(fidres, "/profiler/time",                  time,ionode=0)
-  ! Processing data
-  CALL append(fidres,  "/data/var0d/time",           time,ionode=0)
-  CALL append(fidres, "/data/var0d/cstep", real(cstep,dp),ionode=0)
-  CALL getatt(fidres,      "/data/var0d/",       "frames",iframe2d)
-  iframe0d=iframe0d+1
-  CALL attach(fidres,"/data/var0d/" , "frames", iframe0d)
-  ! Ion transport data
-  IF (write_gamma) THEN
-    CALL compute_radial_ion_transport
-    CALL append(fidres, "/data/var0d/gflux_ri",gflux_ri,ionode=0)
-    CALL append(fidres, "/data/var0d/pflux_ri",pflux_ri,ionode=0)
-  ENDIF
-  IF (write_hf) THEN
-    CALL compute_radial_heatflux
-    CALL append(fidres, "/data/var0d/hflux_x",hflux_x,ionode=0)
-  ENDIF
-END SUBROUTINE diagnose_0d
-
-SUBROUTINE diagnose_3d
-
-  USE basic
-  USE futils, ONLY: append, getatt, attach, putarrnd, putarr
-  USE fields
-  USE array
-  USE grid, ONLY: ikxs,ikxe, ikys,ikye, Nkx, Nky, local_nkx, ikx, iky, ips_e, ips_i
-  USE time_integration
-  USE diagnostics_par
-  USE prec_const
-  USE processing
-  USE parallel, ONLY : gather_xyz
-  USE model, ONLY: KIN_E
-
-  IMPLICIT NONE
-
-  INTEGER        :: i_, root, world_rank, world_size
-  CHARACTER(256) :: dset_name
-  CALL append(fidres,  "/data/var3d/time",           time,ionode=0)
-  CALL append(fidres, "/data/var3d/cstep", real(cstep,dp),ionode=0)
-  CALL getatt(fidres,      "/data/var3d/",       "frames",iframe3d)
-  iframe3d=iframe3d+1
-  CALL attach(fidres,"/data/var3d/" , "frames", iframe3d)
-
-  IF (write_phi) CALL write_field3d_kykxz(phi (ikys:ikye,ikxs:ikxe,izs:ize), 'phi')
-  IF (write_phi) THEN
-    CALL gather_xyz(phi(ikys:ikye,1:Nkx,izs:ize),phi_full(1:Nky,1:Nkx,1:Nz))
-    WRITE(dset_name, "(A, '/', i6.6)") "/data/var3d/phi_gatherv", iframe3d
-    CALL putarr(fidres, dset_name, phi_full(1:Nky,1:Nkx,1:Nz), ionode=0)
-    CALL attach(fidres, dset_name, "time", time)
-  ENDIF
-
-  IF (write_Na00) THEN
-    IF(KIN_E)THEN
-    IF (ips_e .EQ. 1) THEN
-      Ne00(ikys:ikye,ikxs:ikxe,izs:ize) = moments_e(ips_e,1,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel)
-    ENDIF
-    CALL write_field3d_kykxz(Ne00(ikys:ikye,ikxs:ikxe,izs:ize), 'Ne00')
-    ENDIF
-    IF (ips_i .EQ. 1) THEN
-      Ni00(ikys:ikye,ikxs:ikxe,izs:ize) = moments_i(ips_e,1,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel)
-    ENDIF
-    CALL write_field3d_kykxz(Ni00(ikys:ikye,ikxs:ikxe,izs:ize), 'Ni00')
-
-    WRITE(dset_name, "(A, '/', i6.6)") "/data/var3d/Ni00_gatherv", iframe3d
-    CALL gather_xyz(Ni00(ikys:ikye,1:Nkx,izs:ize),Ni00_full(1:Nky,1:Nkx,1:Nz))
-    CALL putarr(fidres, dset_name, Ni00_full(1:Nky,1:Nkx,1:Nz), ionode=0)
-    CALL attach(fidres, dset_name, "time", time)
-
-    CALL compute_Napjz_spectrum
-    IF(KIN_E) &
-    CALL write_field3d_pjz_e(Nepjz(ips_e:ipe_e,ijs_e:ije_e,izs:ize), 'Nepjz')
-    CALL write_field3d_pjz_i(Nipjz(ips_i:ipe_i,ijs_i:ije_i,izs:ize), 'Nipjz')
-  ENDIF
-
-  !! Fuid moments
-  IF (write_dens .OR. write_fvel .OR. write_temp) &
-  CALL compute_fluid_moments
-
-  IF (write_dens) THEN
-    IF(KIN_E)&
-    CALL write_field3d_kykxz(dens_e(ikys:ikye,ikxs:ikxe,izs:ize), 'dens_e')
-    CALL write_field3d_kykxz(dens_i(ikys:ikye,ikxs:ikxe,izs:ize), 'dens_i')
-  ENDIF
-
-  IF (write_fvel) THEN
-    IF(KIN_E)&
-    CALL write_field3d_kykxz(upar_e(ikys:ikye,ikxs:ikxe,izs:ize), 'upar_e')
-    CALL write_field3d_kykxz(upar_i(ikys:ikye,ikxs:ikxe,izs:ize), 'upar_i')
-    IF(KIN_E)&
-    CALL write_field3d_kykxz(uper_e(ikys:ikye,ikxs:ikxe,izs:ize), 'uper_e')
-    CALL write_field3d_kykxz(uper_i(ikys:ikye,ikxs:ikxe,izs:ize), 'uper_i')
-  ENDIF
-
-  IF (write_temp) THEN
-    IF(KIN_E)&
-    CALL write_field3d_kykxz(Tpar_e(ikys:ikye,ikxs:ikxe,izs:ize), 'Tpar_e')
-    CALL write_field3d_kykxz(Tpar_i(ikys:ikye,ikxs:ikxe,izs:ize), 'Tpar_i')
-    IF(KIN_E)&
-    CALL write_field3d_kykxz(Tper_e(ikys:ikye,ikxs:ikxe,izs:ize), 'Tper_e')
-    CALL write_field3d_kykxz(Tper_i(ikys:ikye,ikxs:ikxe,izs:ize), 'Tper_i')
-    IF(KIN_E)&
-    CALL write_field3d_kykxz(temp_e(ikys:ikye,ikxs:ikxe,izs:ize), 'temp_e')
-    CALL write_field3d_kykxz(temp_i(ikys:ikye,ikxs:ikxe,izs:ize), 'temp_i')
-  ENDIF
-
-  CONTAINS
-
-  SUBROUTINE write_field3d_kykxz(field, text)
-    IMPLICIT NONE
-    COMPLEX(dp), DIMENSION(ikys:ikye,ikxs:ikxe, izs:ize), INTENT(IN) :: field
-    CHARACTER(*), INTENT(IN) :: text
-    CHARACTER(256) :: dset_name
-    WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data/var3d", TRIM(text), iframe3d
-    IF (num_procs .EQ. 1) THEN ! no data distribution
-      CALL putarr(fidres, dset_name, field(ikys:ikye,ikxs:ikxe, izs:ize), ionode=0)
-    ELSE
-      CALL putarrnd(fidres, dset_name, field(ikys:ikye,ikxs:ikxe, izs:ize),  (/1, 1, 3/))
-    ENDIF
-    CALL attach(fidres, dset_name, "time", time)
-  END SUBROUTINE write_field3d_kykxz
-
-  SUBROUTINE write_field3d_pjz_i(field, text)
-    IMPLICIT NONE
-    REAL(dp), DIMENSION(ips_i:ipe_i,ijs_i:ije_i,izs:ize), INTENT(IN) :: field
-    CHARACTER(*), INTENT(IN) :: text
-    CHARACTER(LEN=50) :: dset_name
-    WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data/var3d", TRIM(text), iframe3d
-    IF (num_procs .EQ. 1) THEN ! no data distribution
-      CALL putarr(fidres, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,izs:ize), ionode=0)
-    ELSE
-      CALL putarrnd(fidres, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,izs:ize),  (/1, 0, 3/))
-    ENDIF
-    CALL attach(fidres, dset_name, "time", time)
-  END SUBROUTINE write_field3d_pjz_i
-
-  SUBROUTINE write_field3d_pjz_e(field, text)
-    IMPLICIT NONE
-    REAL(dp), DIMENSION(ips_e:ipe_e,ijs_e:ije_e,izs:ize), INTENT(IN) :: field
-    CHARACTER(*), INTENT(IN) :: text
-    CHARACTER(LEN=50) :: dset_name
-    WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data/var3d", TRIM(text), iframe3d
-    IF (num_procs .EQ. 1) THEN ! no data distribution
-      CALL putarr(fidres, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,izs:ize), ionode=0)
-    ELSE
-      CALL putarrnd(fidres, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,izs:ize),  (/1, 0, 3/))
-    ENDIF
-    CALL attach(fidres, dset_name, "time", time)
-  END SUBROUTINE write_field3d_pjz_e
-
-END SUBROUTINE diagnose_3d
-
-SUBROUTINE diagnose_5d
-
-  USE basic
-  USE futils, ONLY: append, getatt, attach, putarrnd
-  USE fields
-  USE array!, ONLY: Sepj, Sipj
-  USE grid, ONLY: ips_e,ipe_e, ips_i, ipe_i, &
-                 ijs_e,ije_e, ijs_i, ije_i, &
-                 ikxs,ikxe,ikys,ikye,izs,ize
-  USE time_integration
-  USE diagnostics_par
-  USE prec_const
-  USE model, ONLY: KIN_E
-  IMPLICIT NONE
-
-  CALL append(fidres,  "/data/var5d/time",           time,ionode=0)
-  CALL append(fidres, "/data/var5d/cstep", real(cstep,dp),ionode=0)
-  CALL getatt(fidres,      "/data/var5d/",       "frames",iframe5d)
-  iframe5d=iframe5d+1
-  CALL attach(fidres,"/data/var5d/" , "frames", iframe5d)
-
-  IF (write_Napj) THEN
-   IF(KIN_E)&
-  CALL write_field5d_e(moments_e(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel), 'moments_e')
-  CALL write_field5d_i(moments_i(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel), 'moments_i')
-  ENDIF
-
-  IF (write_Sapj) THEN
-   IF(KIN_E)&
-   CALL write_field5d_e(Sepj(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize), 'Sepj')
-   CALL write_field5d_i(Sipj(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize), 'Sipj')
-  ENDIF
-
-  CONTAINS
-
-  SUBROUTINE write_field5d_e(field, text)
-    USE futils, ONLY: attach, putarr, putarrnd
-    USE grid,   ONLY: ips_e,ipe_e, ijs_e,ije_e, ikxs,ikxe, ikys,ikye, izs,ize
-    USE prec_const
-    IMPLICIT NONE
-
-    COMPLEX(dp), DIMENSION(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize), INTENT(IN) :: field
-    CHARACTER(*), INTENT(IN) :: text
-
-    CHARACTER(LEN=50) :: dset_name
-
-    WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data/var5d", TRIM(text), iframe5d
-    IF (num_procs .EQ. 1) THEN
-     CALL putarr(fidres, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize), ionode=0)
-    ELSE
-     CALL putarrnd(fidres, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize),  (/1,3,5/))
-    ENDIF
-    CALL attach(fidres, dset_name, 'cstep', cstep)
-    CALL attach(fidres, dset_name, 'time', time)
-    CALL attach(fidres, dset_name, 'jobnum', jobnum)
-    CALL attach(fidres, dset_name, 'dt', dt)
-    CALL attach(fidres, dset_name, 'iframe2d', iframe2d)
-    CALL attach(fidres, dset_name, 'iframe5d', iframe5d)
-
-  END SUBROUTINE write_field5d_e
-
-  SUBROUTINE write_field5d_i(field, text)
-    USE futils, ONLY: attach, putarr, putarrnd
-    USE grid, ONLY: ips_i,ipe_i, ijs_i,ije_i, ikxs,ikxe, ikys,ikye, izs,ize
-    USE prec_const
-    IMPLICIT NONE
-
-    COMPLEX(dp), DIMENSION(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize), INTENT(IN) :: field
-    CHARACTER(*), INTENT(IN) :: text
-
-    CHARACTER(LEN=50) :: dset_name
-
-    WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data/var5d", TRIM(text), iframe5d
-    IF (num_procs .EQ. 1) THEN
-      CALL putarr(fidres, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize), ionode=0)
-    ELSE
-      CALL putarrnd(fidres, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize),  (/1,3,5/))
-    ENDIF
-    CALL attach(fidres, dset_name, 'cstep', cstep)
-    CALL attach(fidres, dset_name, 'time', time)
-    CALL attach(fidres, dset_name, 'jobnum', jobnum)
-    CALL attach(fidres, dset_name, 'dt', dt)
-    CALL attach(fidres, dset_name, 'iframe2d', iframe2d)
-    CALL attach(fidres, dset_name, 'iframe5d', iframe5d)
-
-  END SUBROUTINE write_field5d_i
-END SUBROUTINE diagnose_5d
diff --git a/src/diag_headers/diagnose_gridgeom.h b/src/diag_headers/diagnose_gridgeom.h
deleted file mode 100644
index 9ef1855c..00000000
--- a/src/diag_headers/diagnose_gridgeom.h
+++ /dev/null
@@ -1,50 +0,0 @@
-SUBROUTINE diagnose_gridgeom(kstep)
-  USE basic
-  USE grid
-  USE diagnostics_par
-  USE futils, ONLY: putarr, creatg, putarrnd, closef
-  USE time_integration
-  USE prec_const
-  USE geometry
-  USE array
-  IMPLICIT NONE
-  INTEGER, INTENT(in) :: kstep
-  INTEGER, parameter  :: BUFSIZE = 2
-  INTEGER :: rank = 0
-  INTEGER :: dims(1) = (/0/)
-  IF (kstep .EQ. 0) THEN
-    ! Grid info
-    CALL init_outfile(comm0,ggmfile0,ggmfile,fidggm)
-    CALL creatg(fidggm, "/data/grid", "Grid data")
-    CALL putarr(fidggm, "/data/grid/coordkx",   kxarray_full,  "kx*rho_s0", ionode=0)
-    CALL putarr(fidggm, "/data/grid/coordky",   kyarray_full,  "ky*rho_s0", ionode=0)
-    CALL putarr(fidggm, "/data/grid/coordz",    zarray_full,   "z/R", ionode=0)
-    CALL putarr(fidggm, "/data/grid/coordp_e" , parray_e_full, "p_e", ionode=0)
-    CALL putarr(fidggm, "/data/grid/coordj_e" , jarray_e_full, "j_e", ionode=0)
-    CALL putarr(fidggm, "/data/grid/coordp_i" , parray_i_full, "p_i", ionode=0)
-    CALL putarr(fidggm, "/data/grid/coordj_i" , jarray_i_full, "j_i", ionode=0)
-
-    ! Metric info
-    CALL   creatg(fidggm, "/data/metric", "Metric data")
-    CALL putarrnd(fidggm, "/data/metric/gxx",            gxx(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gxy",            gxy(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gyy",            gyy(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gyz",            gyz(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gzz",            gzz(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/hatR",          hatR(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/hatZ",          hatZ(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/hatB",          hatB(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gradxB",      gradxB(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gradyB",      gradyB(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gradzB",      gradzB(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/Jacobian",    Jacobian(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/gradz_coeff", gradz_coeff(izs:ize,0:1), (/1, 1, 1/))
-    CALL putarrnd(fidggm, "/data/metric/Ckxky",       Ckxky(ikys:ikye,ikxs:ikxe,izs:ize,0:1), (/1, 1, 3/))
-    CALL putarrnd(fidggm, "/data/metric/kernel_i",    kernel_i(ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize,0:1), (/ 1, 2, 4/))
-  ENDIF
-  IF (kstep .EQ. -1) THEN
-    CALL mpi_barrier(MPI_COMM_WORLD, ierr)
-    CALL closef(fidggm)
-  ENDIF
-
-END SUBROUTINE diagnose_gridgeom
diff --git a/src/diag_headers/diagnose_moments.h b/src/diag_headers/diagnose_moments.h
deleted file mode 100644
index 58582260..00000000
--- a/src/diag_headers/diagnose_moments.h
+++ /dev/null
@@ -1,136 +0,0 @@
-SUBROUTINE diagnose_moments(kstep)
-  USE basic
-  USE grid
-  USE diagnostics_par
-  USE futils,         ONLY: creatg,creatd,append,putarr,putarrnd,attach,closef,getatt
-  USE model,          ONLY: KIN_E
-  USE array,          ONLY: Sepj,Sipj
-  USE fields,         ONLY: moments_e, moments_i
-  USE time_integration
-  USE utility
-  USE prec_const
-  IMPLICIT NONE
-  INTEGER, INTENT(in) :: kstep
-  INTEGER, parameter  :: BUFSIZE = 2
-  INTEGER :: rank = 0
-  INTEGER :: dims(1) = (/0/)
-  !____________________________________________________________________________!
-  IF ((kstep .EQ. 0)) THEN
-
-  !  var5d group (moments)
-  IF (nsave_5d .GT. 0) THEN
-    CALL init_outfile(comm0,   momfile0,momfile,fidmom)
-
-    CALL creatd(fidmom, rank, dims,  "/data/time",     "Time t*c_s/R")
-    CALL creatd(fidmom, rank, dims, "/data/cstep", "iteration number")
-
-    IF (write_Napj) THEN
-      IF(KIN_E)&
-     CALL creatg(fidmom, "/data/moments_e", "moments_e")
-     CALL creatg(fidmom, "/data/moments_i", "moments_i")
-    ENDIF
-
-    IF (write_Sapj) THEN
-      IF(KIN_E)&
-     CALL creatg(fidmom, "/data/moments_e", "Sipj")
-     CALL creatg(fidmom, "/data/moments_i", "Sepj")
-    ENDIF
-
-    IF (cstep==0) THEN
-     iframe5d=0
-    END IF
-    CALL attach(fidmom,"/data/" , "frames", iframe5d)
-  END IF
-
-  ENDIF
-
-  !_____________________________________________________________________________
-  !                   2.   Periodic diagnostics
-  !
-  IF ((kstep .GE. 0) .OR. ((kstep .EQ. -1) .AND. (.NOT. CRASHED))) THEN
-
-  IF((kstep .EQ. -1) .AND. (.NOT. CRASHED .AND. (my_id .EQ. 0))) &
-    write(*,*) 'Saving last state'
-
-  !                       2.3   5d profiles
-    IF (MOD(cstep, nsave_5d) == 0) THEN
-     CALL append(fidmom,  "/data/time",           time,ionode=0)
-     CALL append(fidmom, "/data/cstep", real(cstep,dp),ionode=0)
-     CALL getatt(fidmom,      "/data/",       "frames",iframe5d)
-     iframe5d=iframe5d+1
-     CALL attach(fidmom,"/data/" , "frames", iframe5d)
-
-     IF (write_Napj) THEN
-      IF(KIN_E)&
-     CALL write_field5d_e(moments_e(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel), 'moments_e')
-     CALL write_field5d_i(moments_i(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize,updatetlevel), 'moments_i')
-     ENDIF
-
-     IF (write_Sapj) THEN
-      IF(KIN_E)&
-      CALL write_field5d_e(Sepj(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize), 'Sepj')
-      CALL write_field5d_i(Sipj(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize), 'Sipj')
-     ENDIF
-    END IF
-  END IF
-  !_____________________________________________________________________________
-  !                   3.   Final diagnostics
-  IF (kstep .EQ. -1) THEN
-    !   Close diagnostic files
-    CALL mpi_barrier(MPI_COMM_WORLD, ierr)
-    CALL closef(fidmom)
-  END IF
-
-  CONTAINS
-    SUBROUTINE write_field5d_e(field, text)
-      USE futils, ONLY: attach, putarr, putarrnd
-      USE grid,   ONLY: ips_e,ipe_e, ijs_e,ije_e, ikxs,ikxe, ikys,ikye, izs,ize
-      USE prec_const
-      IMPLICIT NONE
-
-      COMPLEX(dp), DIMENSION(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize), INTENT(IN) :: field
-      CHARACTER(*), INTENT(IN) :: text
-
-      CHARACTER(LEN=50) :: dset_name
-
-      WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data", TRIM(text), iframe5d
-      IF (num_procs .EQ. 1) THEN
-       CALL putarr(fidmom, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize), ionode=0)
-      ELSE
-       CALL putarrnd(fidmom, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,ikys:ikye,ikxs:ikxe,izs:ize),  (/1,3,5/))
-      ENDIF
-      CALL attach(fidmom, dset_name, 'cstep', cstep)
-      CALL attach(fidmom, dset_name, 'time', time)
-      CALL attach(fidmom, dset_name, 'jobnum', jobnum)
-      CALL attach(fidmom, dset_name, 'dt', dt)
-      CALL attach(fidmom, dset_name, 'iframe2d', iframe2d)
-      CALL attach(fidmom, dset_name, 'iframe5d', iframe5d)
-
-    END SUBROUTINE write_field5d_e
-
-    SUBROUTINE write_field5d_i(field, text)
-      USE futils, ONLY: attach, putarr, putarrnd
-      USE grid, ONLY: ips_i,ipe_i, ijs_i,ije_i, ikxs,ikxe, ikys,ikye, izs,ize
-      USE prec_const
-      IMPLICIT NONE
-
-      COMPLEX(dp), DIMENSION(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize), INTENT(IN) :: field
-      CHARACTER(*), INTENT(IN) :: text
-
-      CHARACTER(LEN=50) :: dset_name
-
-      WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data", TRIM(text), iframe5d
-      IF (num_procs .EQ. 1) THEN
-        CALL putarr(fidmom, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize), ionode=0)
-      ELSE
-        CALL putarrnd(fidmom, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,ikys:ikye,ikxs:ikxe,izs:ize),  (/1,3,5/))
-      ENDIF
-      CALL attach(fidmom, dset_name, 'cstep', cstep)
-      CALL attach(fidmom, dset_name, 'time', time)
-      CALL attach(fidmom, dset_name, 'jobnum', jobnum)
-      CALL attach(fidmom, dset_name, 'dt', dt)
-      CALL attach(fidmom, dset_name, 'iframe2d', iframe2d)
-      CALL attach(fidmom, dset_name, 'iframe5d', iframe5d)
-
-    END SUBROUTINE write_field5d_i
-END SUBROUTINE diagnose_moments
diff --git a/src/diag_headers/diagnose_momspectrum.h b/src/diag_headers/diagnose_momspectrum.h
deleted file mode 100644
index 36befdda..00000000
--- a/src/diag_headers/diagnose_momspectrum.h
+++ /dev/null
@@ -1,105 +0,0 @@
-SUBROUTINE diagnose_momspectrum(kstep)
-  USE basic
-  USE grid
-  USE diagnostics_par
-  USE futils
-  USE array
-  USE model
-  USE initial_par
-  USE fields
-  USE time_integration
-  USE utility
-  USE prec_const
-  USE collision, ONLY: coll_outputinputs
-  USE geometry
-  USE processing
-  IMPLICIT NONE
-  INTEGER, INTENT(in) :: kstep
-  INTEGER, parameter  :: BUFSIZE = 2
-  INTEGER :: rank = 0, frame
-  INTEGER :: dims(1) = (/0/)
-  !____________________________________________________________________________!
-  IF ((kstep .EQ. 0)) THEN
-    !  var3d group (pjz, spectrum of moments)
-    IF (nsave_3d .GT. 0) THEN
-     CALL init_outfile(comm_pz, mspfile0,mspfile,fidmsp)
-     CALL creatd(fidmsp, rank, dims,  "/data/time",     "Time t*c_s/R")
-     CALL creatd(fidmsp, rank, dims, "/data/cstep", "iteration number")
-
-     IF (write_Na00) THEN
-      IF(KIN_E)&
-      CALL creatg(fidmsp, "/data/Nepjz", "Nepjz")
-      CALL creatg(fidmsp, "/data/Nipjz", "Nipjz")
-     ENDIF
-
-     IF (cstep==0) THEN
-       iframe3d=0
-     ENDIF
-     CALL attach(fidmsp,"/data/" , "frames", iframe3d)
-    END IF
-
-  ENDIF
-
-  !_____________________________________________________________________________
-  !                   2.   Periodic diagnostics
-  !
-  IF (kstep .GE. 0) THEN
-  !                       2.2   3d profiles
-    IF (nsave_3d .GT. 0) THEN
-       IF (MOD(cstep, nsave_3d) == 0) THEN
-         CALL append(fidmsp,  "/data/time",           time,ionode=0)
-         CALL append(fidmsp, "/data/cstep", real(cstep,dp),ionode=0)
-         CALL getatt(fidmsp,      "/data/",       "frames",frame)
-         frame=frame+1
-         CALL attach(fidmsp,"/data/" , "frames", frame)
-
-         IF (write_Na00) THEN
-           CALL compute_Napjz_spectrum
-           IF(KIN_E) &
-           CALL write_field3d_pjz_e(Nepjz(ips_e:ipe_e,ijs_e:ije_e,izs:ize), 'Nepjz', frame)
-           CALL write_field3d_pjz_i(Nipjz(ips_i:ipe_i,ijs_i:ije_i,izs:ize), 'Nipjz', frame)
-         ENDIF
-       END IF
-    END IF
-
-  !_____________________________________________________________________________
-  !                   3.   Final diagnostics
-  ELSEIF (kstep .EQ. -1) THEN
-      !   Close diagnostic files
-      CALL mpi_barrier(MPI_COMM_WORLD, ierr)
-      CALL closef(fidmsp)
-
-  END IF
-
-    CONTAINS
-      SUBROUTINE write_field3d_pjz_i(field, text, frame)
-        IMPLICIT NONE
-        REAL(dp), DIMENSION(ips_i:ipe_i,ijs_i:ije_i,izs:ize), INTENT(IN) :: field
-        CHARACTER(*), INTENT(IN) :: text
-        INTEGER, INTENT(IN) :: frame
-        CHARACTER(LEN=50) :: dset_name
-        WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data", TRIM(text), frame
-        IF (num_procs .EQ. 1) THEN ! no data distribution
-          CALL putarr(fidmsp, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,izs:ize), ionode=0)
-        ELSE
-          CALL putarrnd(fidmsp, dset_name, field(ips_i:ipe_i,ijs_i:ije_i,izs:ize),  (/1, 3/))
-        ENDIF
-        CALL attach(fidmsp, dset_name, "time", time)
-      END SUBROUTINE write_field3d_pjz_i
-
-      SUBROUTINE write_field3d_pjz_e(field, text, frame)
-        IMPLICIT NONE
-        REAL(dp), DIMENSION(ips_e:ipe_e,ijs_e:ije_e,izs:ize), INTENT(IN) :: field
-        CHARACTER(*), INTENT(IN) :: text
-        INTEGER, INTENT(IN) :: frame
-        CHARACTER(LEN=50) :: dset_name
-        WRITE(dset_name, "(A, '/', A, '/', i6.6)") "/data", TRIM(text), frame
-        IF (num_procs .EQ. 1) THEN ! no data distribution
-          CALL putarr  (fidmsp, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,izs:ize), ionode=0)
-        ELSE
-          CALL putarrnd(fidmsp, dset_name, field(ips_e:ipe_e,ijs_e:ije_e,izs:ize),  (/1, 3/))
-        ENDIF
-        CALL attach(fidmsp, dset_name, "time", time)
-      END SUBROUTINE write_field3d_pjz_e
-
-END SUBROUTINE diagnose_momspectrum
diff --git a/src/diag_headers/diagnose_profiler.h b/src/diag_headers/diagnose_profiler.h
deleted file mode 100644
index b99f67dd..00000000
--- a/src/diag_headers/diagnose_profiler.h
+++ /dev/null
@@ -1,54 +0,0 @@
-SUBROUTINE diagnose_profiler(kstep)
-  USE basic
-  USE diagnostics_par
-  USE futils, ONLY: creatd,creatg,append,closef
-  USE time_integration
-  USE utility
-  USE prec_const
-  IMPLICIT NONE
-  INTEGER, INTENT(in) :: kstep
-  INTEGER :: dims(1) = (/0/)
-  !____________________________________________________________________________!
-  IF ((kstep .EQ. 0)) THEN
-    CALL init_outfile(comm0,   prffile0,prffile,fidprf)
-
-    ! data time measurement
-    CALL creatd(fidprf, 0, dims, "/data/Tc_rhs",        "cumulative rhs computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_adv_field",  "cumulative adv. fields computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_clos",       "cumulative closure computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_ghost",       "cumulative communication time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_coll",       "cumulative collision computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_poisson",    "cumulative poisson computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_Sapj",       "cumulative Sapj computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_checkfield", "cumulative checkfield computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_diag",       "cumulative sym computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_process",    "cumulative process computation time")
-    CALL creatd(fidprf, 0, dims, "/data/Tc_step",       "cumulative total step computation time")
-    CALL creatd(fidprf, 0, dims, "/data/time",          "current simulation time")
-  ENDIF
-  !_____________________________________________________________________________
-  !                   2.   Periodic diagnostics
-  !
-  IF (kstep .GE. 0) THEN
-  ! Time measurement data
-  CALL append(fidprf, "/data/Tc_rhs",              tc_rhs,ionode=0)
-  CALL append(fidprf, "/data/Tc_adv_field",  tc_adv_field,ionode=0)
-  CALL append(fidprf, "/data/Tc_clos",            tc_clos,ionode=0)
-  CALL append(fidprf, "/data/Tc_ghost",          tc_ghost,ionode=0)
-  CALL append(fidprf, "/data/Tc_coll",            tc_coll,ionode=0)
-  CALL append(fidprf, "/data/Tc_poisson",      tc_poisson,ionode=0)
-  CALL append(fidprf, "/data/Tc_Sapj",            tc_Sapj,ionode=0)
-  CALL append(fidprf, "/data/Tc_checkfield",tc_checkfield,ionode=0)
-  CALL append(fidprf, "/data/Tc_diag",            tc_diag,ionode=0)
-  CALL append(fidprf, "/data/Tc_process",      tc_process,ionode=0)
-  CALL append(fidprf, "/data/Tc_step",            tc_step,ionode=0)
-  CALL append(fidprf, "/data/time",                  time,ionode=0)
-  !_____________________________________________________________________________
-  !                   3.   Final diagnostics
-  ELSEIF (kstep .EQ. -1) THEN
-    !   Close diagnostic files
-    CALL mpi_barrier(MPI_COMM_WORLD, ierr)
-    CALL closef(fidprf)
-
-  END IF
-END SUBROUTINE diagnose_profiler
diff --git a/src/diag_headers/diagnose_timetraces.h b/src/diag_headers/diagnose_timetraces.h
deleted file mode 100644
index 3c688aee..00000000
--- a/src/diag_headers/diagnose_timetraces.h
+++ /dev/null
@@ -1,76 +0,0 @@
-SUBROUTINE diagnose_timetraces(kstep)
-  USE basic
-  USE grid
-  USE diagnostics_par
-  USE futils
-  USE array
-  USE model
-  USE initial_par
-  USE fields
-  USE time_integration
-  USE utility
-  USE prec_const
-  USE collision, ONLY: coll_outputinputs
-  USE geometry
-  USE processing
-  IMPLICIT NONE
-  INTEGER, INTENT(in) :: kstep
-  INTEGER, parameter  :: BUFSIZE = 2
-  INTEGER :: rank = 0
-  INTEGER :: dims(1) = (/0/)
-  !____________________________________________________________________________!
-  IF ((kstep .EQ. 0)) THEN
-    CALL init_outfile(comm0,   ttrfile0,ttrfile,fidttr)
-
-    !  var0d group (gyro transport)
-    CALL creatd(fidttr, rank, dims,  "/data/time",     "Time t*c_s/R")
-    CALL creatd(fidttr, rank, dims, "/data/cstep", "iteration number")
-
-    IF (write_gamma) THEN
-     CALL creatd(fidttr, rank, dims, "/data/gflux_ri", "Radial gyro ion transport")
-     CALL creatd(fidttr, rank, dims, "/data/pflux_ri", "Radial part ion transport")
-    ENDIF
-    IF (write_hf) THEN
-     CALL creatd(fidttr, rank, dims, "/data/hflux_x", "Radial part ion heat flux")
-    ENDIF
-    IF (cstep==0) THEN
-     iframe0d=0
-    ENDIF
-    CALL attach(fidttr,"/data/" , "frames", iframe0d)
-  ENDIF
-
-  !_____________________________________________________________________________
-  !                   2.   Periodic diagnostics
-  !
-  IF (kstep .GE. 0) THEN
-
-  !                       0d time traces arrays
-  IF ( MOD(cstep, nsave_0d) == 0 ) THEN
-   ! Processing data
-   CALL append(fidttr,  "/data/time",           time,ionode=0)
-   CALL append(fidttr, "/data/cstep", real(cstep,dp),ionode=0)
-   CALL getatt(fidttr,      "/data/",       "frames",iframe0d)
-   iframe0d=iframe0d+1
-   CALL attach(fidttr,"/data/" , "frames", iframe0d)
-   ! Ion transport data
-   IF (write_gamma) THEN
-     CALL compute_radial_ion_transport
-     CALL append(fidttr, "/data/gflux_ri",gflux_ri,ionode=0)
-     CALL append(fidttr, "/data/pflux_ri",pflux_ri,ionode=0)
-   ENDIF
-   IF (write_hf) THEN
-     CALL compute_radial_heatflux
-     CALL append(fidttr, "/data/hflux_x",hflux_x,ionode=0)
-   ENDIF
-  END IF
-  !_____________________________________________________________________________
-  !                   3.   Final diagnostics
-  ELSEIF (kstep .EQ. -1) THEN
-    !   Close diagnostic files
-    CALL mpi_barrier(MPI_COMM_WORLD, ierr)
-    CALL closef(fidttr)
-
-  END IF
-END SUBROUTINE diagnose_timetraces
-!____________________________________________________________________________!
-!                       AUXILIARY ROUTINES
-- 
GitLab