diff --git a/src/advance_field.F90 b/src/advance_field.F90
index ef7d2e463336550ce2f93a37468e35c762dfd510..f8ee34c80aba555785fdd7aeed8d6648ae68027b 100644
--- a/src/advance_field.F90
+++ b/src/advance_field.F90
@@ -14,6 +14,49 @@ CONTAINS
     CALL set_updatetlevel(mod(updatetlevel,ntimelevel)+1)
   END SUBROUTINE advance_time_level
 
+  SUBROUTINE advance_moments_explicit
+
+    USE basic
+    USE time_integration
+    USE grid
+    use prec_const
+    use fields, ONLY: moments_e,     moments_i
+    use array,  ONLY: moments_rhs_e, moments_rhs_i
+    IMPLICIT NONE
+
+    INTEGER :: istage
+    ! Execution time start
+    CALL cpu_time(t0_adv_field)
+    SELECT CASE (updatetlevel)
+    CASE(1)
+      DO istage=1,ntimelevel
+        moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,1) = moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,1) &
+                    + dt*b_E(istage)*moments_rhs_e(ips_e:ipe_e,ijs_e:ije_e,:,:,istage)
+      END DO
+      ! Advance ions
+      DO istage=1,ntimelevel
+        moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,1) = moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,1) &
+                    + dt*b_E(istage)*moments_rhs_i(ips_i:ipe_i,ijs_i:ije_i,:,:,istage)
+      END DO
+
+    CASE DEFAULT
+      ! Advance electrons
+      moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,updatetlevel) = moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,1);
+      DO istage=1,updatetlevel-1
+        moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,updatetlevel) = moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,updatetlevel) &
+              + dt*A_E(updatetlevel,istage)*moments_rhs_e(ips_e:ipe_e,ijs_e:ije_e,:,:,istage)
+      END DO
+      ! Advance ions
+      moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,updatetlevel) = moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,1);
+      DO istage=1,updatetlevel-1
+        moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,updatetlevel) = moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,updatetlevel) &
+              + dt*A_E(updatetlevel,istage)*moments_rhs_i(ips_i:ipe_i,ijs_i:ije_i,:,:,istage)
+      END DO
+    END SELECT
+    ! Execution time end
+    CALL cpu_time(t1_adv_field)
+    tc_adv_field = tc_adv_field + (t1_adv_field - t0_adv_field)
+  END SUBROUTINE advance_moments_explicit
 
 
   SUBROUTINE advance_field( f, f_rhs )