From 46c819e0cb3d0f01866f4f4185b6e7e17fd74265 Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Fri, 23 Apr 2021 13:52:55 +0200 Subject: [PATCH] simplification of the code --- src/closure_mod.F90 | 105 +++++++++++++++++++++++++++++--------------- 1 file changed, 70 insertions(+), 35 deletions(-) diff --git a/src/closure_mod.F90 b/src/closure_mod.F90 index dc37e2f5..f8846d4a 100644 --- a/src/closure_mod.F90 +++ b/src/closure_mod.F90 @@ -12,6 +12,7 @@ PUBLIC :: apply_closure_model CONTAINS +! Positive Oob indices are approximated with a model SUBROUTINE apply_closure_model IMPLICIT NONE complex(dp) :: i_kz @@ -27,46 +28,80 @@ SUBROUTINE apply_closure_model sqpp1p_i = SQRT((pmaxi_dp+1)*(pmaxi_dp)) CALL cpu_time(t0_clos) - ! Positive Oob indices are approximated with a model - IF (CLOS .EQ. 0) THEN - ! zero truncation, An+1=0 for n+1>nmax - DO ikr = ikrs,ikre - DO ikz = ikzs,ikze +! zero truncation, An+1=0 for n+1>nmax + IF (CLOS .EQ. 0) THEN + DO ikr = ikrs,ikre + DO ikz = ikzs,ikze - DO ip = ipsg_e,ipeg_e - moments_e(ip,ijsg_e,ikr,ikz,updatetlevel) = 0._dp - moments_e(ip,ijeg_e,ikr,ikz,updatetlevel) = 0._dp - ENDDO - DO ij = ijsg_e,ijeg_e - moments_e(ipsg_e+1,ij,ikr,ikz,updatetlevel) = 0._dp - moments_e(ipsg_e ,ij,ikr,ikz,updatetlevel) = 0._dp - moments_e(ipeg_e-1,ij,ikr,ikz,updatetlevel) = 0._dp - moments_e(ipeg_e ,ij,ikr,ikz,updatetlevel) = 0._dp - ENDDO - kernel_e(ijsg_e,ikr,ikz) = 0._dp - kernel_e(ijeg_e,ikr,ikz) = 0._dp + DO ip = ipsg_e,ipeg_e + moments_e(ip,ijsg_e,ikr,ikz,updatetlevel) = 0._dp + moments_e(ip,ijeg_e,ikr,ikz,updatetlevel) = 0._dp + ENDDO + DO ij = ijsg_e,ijeg_e + moments_e(ipsg_e+1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_e(ipsg_e ,ij,ikr,ikz,updatetlevel) = 0._dp + moments_e(ipeg_e-1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_e(ipeg_e ,ij,ikr,ikz,updatetlevel) = 0._dp + ENDDO + kernel_e(ijsg_e,ikr,ikz) = 0._dp + kernel_e(ijeg_e,ikr,ikz) = 0._dp + + DO ip = ipsg_i,ipeg_i + moments_i(ip,ijsg_i,ikr,ikz,updatetlevel) = 0._dp + moments_i(ip,ijeg_i,ikr,ikz,updatetlevel) = 0._dp + ENDDO + DO ij = ijsg_i,ijeg_i + moments_i(ipsg_i+1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_i(ipsg_i ,ij,ikr,ikz,updatetlevel) = 0._dp + moments_i(ipeg_i-1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_i(ipeg_i ,ij,ikr,ikz,updatetlevel) = 0._dp + ENDDO + kernel_i(ijsg_i,ikr,ikz) = 0._dp + kernel_i(ijeg_i,ikr,ikz) = 0._dp + + ENDDO + ENDDO - DO ip = ipsg_i,ipeg_i - moments_i(ip,ijsg_i,ikr,ikz,updatetlevel) = 0._dp - moments_i(ip,ijeg_i,ikr,ikz,updatetlevel) = 0._dp - ENDDO - DO ij = ijsg_i,ijeg_i - moments_i(ipsg_i+1,ij,ikr,ikz,updatetlevel) = 0._dp - moments_i(ipsg_i ,ij,ikr,ikz,updatetlevel) = 0._dp - moments_i(ipeg_i-1,ij,ikr,ikz,updatetlevel) = 0._dp - moments_i(ipeg_i ,ij,ikr,ikz,updatetlevel) = 0._dp - ENDDO - kernel_i(ijsg_i,ikr,ikz) = 0._dp - kernel_i(ijeg_i,ikr,ikz) = 0._dp + ! zero truncation, An+1=0 for n+1>nmax + ELSEIF (CLOS .EQ. 1) THEN + DO ikr = ikrs,ikre + DO ikz = ikzs,ikze + DO ip = ipsg_e,ipeg_e + moments_e(ip,ijsg_e,ikr,ikz,updatetlevel) = 0._dp + moments_e(ip,ijeg_e,ikr,ikz,updatetlevel) = 0._dp ENDDO + DO ij = ijsg_e,ijeg_e + moments_e(ipsg_e+1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_e(ipsg_e ,ij,ikr,ikz,updatetlevel) = 0._dp + moments_e(ipeg_e-1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_e(ipeg_e ,ij,ikr,ikz,updatetlevel) = 0._dp + ENDDO + kernel_e(ijsg_e,ikr,ikz) = 0._dp + kernel_e(ijeg_e,ikr,ikz) = 0._dp + + DO ip = ipsg_i,ipeg_i + moments_i(ip,ijsg_i,ikr,ikz,updatetlevel) = 0._dp + moments_i(ip,ijeg_i,ikr,ikz,updatetlevel) = 0._dp + ENDDO + DO ij = ijsg_i,ijeg_i + moments_i(ipsg_i+1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_i(ipsg_i ,ij,ikr,ikz,updatetlevel) = 0._dp + moments_i(ipeg_i-1,ij,ikr,ikz,updatetlevel) = 0._dp + moments_i(ipeg_i ,ij,ikr,ikz,updatetlevel) = 0._dp + ENDDO + kernel_i(ijsg_i,ikr,ikz) = 0._dp + kernel_i(ijeg_i,ikr,ikz) = 0._dp + ENDDO - ELSE - if(my_id .EQ. 0) write(*,*) '! Closure scheme not found !' + ENDDO + ELSE + if(my_id .EQ. 0) write(*,*) '! Closure scheme not found !' + + ENDIF - ENDIF + CALL cpu_time(t1_clos) + tc_clos = tc_clos + (t1_clos - t0_clos) +END SUBROUTINE apply_closure_model - CALL cpu_time(t1_clos) - tc_clos = tc_clos + (t1_clos - t0_clos) - END SUBROUTINE apply_closure_model END module closure -- GitLab