From d5ae8d7bd1241302e03b1c97423a95783aab2114 Mon Sep 17 00:00:00 2001
From: Antoine Hoffmann <antoine.hoffmann@epfl.ch>
Date: Fri, 26 May 2023 15:36:42 +0200
Subject: [PATCH] option to remove landau damping for temperature and higher
 equations

---
 src/model_mod.F90          | 5 ++++-
 src/moments_eq_rhs_mod.F90 | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/model_mod.F90 b/src/model_mod.F90
index 0e306701..901c7fe4 100644
--- a/src/model_mod.F90
+++ b/src/model_mod.F90
@@ -26,6 +26,8 @@ MODULE model
   REAL(xp), PUBLIC, PROTECTED ::   tau_e = 1.0        ! electron temperature ratio for adiabatic electrons
   ! Auxiliary variable
   LOGICAL,  PUBLIC, PROTECTED ::      EM =  .false.   ! Electromagnetic effects flag
+  ! Removes Landau damping in temperature and higher equation (Ivanov 2022)
+  LOGICAL,  PUBLIC, PROTECTED :: RM_LD_T_EQ = .false.
   PUBLIC :: model_readinputs, model_outputinputs
 
 CONTAINS
@@ -37,7 +39,7 @@ CONTAINS
     USE prec_const
     IMPLICIT NONE
 
-    NAMELIST /MODEL_PAR/ KERN, LINEARITY, &
+    NAMELIST /MODEL_PAR/ KERN, LINEARITY, RM_LD_T_EQ, &
                          mu_x, mu_y, N_HD, HDz_h, mu_z, mu_p, mu_j, HYP_V, Na,&
                          nu, k_gB, k_cB, lambdaD, beta, ADIAB_E, tau_e
 
@@ -71,6 +73,7 @@ CONTAINS
     CALL creatd(fid, 0,(/0/),TRIM(str),'Model Input')
     CALL attach(fid, TRIM(str),      "KERN",    KERN)
     CALL attach(fid, TRIM(str), "LINEARITY", LINEARITY)
+    CALL attach(fid, TRIM(str),"RM_LD_T_EQ",RM_LD_T_EQ)
     CALL attach(fid, TRIM(str),      "mu_x",    mu_x)
     CALL attach(fid, TRIM(str),      "mu_y",    mu_y)
     CALL attach(fid, TRIM(str),      "N_HD",    N_HD)
diff --git a/src/moments_eq_rhs_mod.F90 b/src/moments_eq_rhs_mod.F90
index 146e28ab..f7c83770 100644
--- a/src/moments_eq_rhs_mod.F90
+++ b/src/moments_eq_rhs_mod.F90
@@ -76,6 +76,8 @@ CONTAINS
                   ! ddz derivative for Landau damping term
                   Ldamp     = xnapp1j(ia,ip) * ddz_napj(ia,ipi+1,iji,iky,ikx,iz) &
                             + xnapm1j(ia,ip) * ddz_napj(ia,ipi-1,iji,iky,ikx,iz)
+                  ! neglect Landau damping in temperature equation and higher moments as in Ivanov 2022
+                  IF(RM_LD_T_EQ .AND. ((j_int .GT. 0) .OR. (p_int .GT. 1))) Ldamp = 0._xp 
                   ! Mirror terms
                   Tnapp1j   = ynapp1j  (ia,ip,ij) * interp_napj(ia,ipi+1,iji  ,iky,ikx,iz)
                   Tnapp1jm1 = ynapp1jm1(ia,ip,ij) * interp_napj(ia,ipi+1,iji-1,iky,ikx,iz)
-- 
GitLab