From 5f72fdf253e4c4a8ac82e794de39ee032ccbf996 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Mon, 1 Oct 2018 17:33:13 +0200 Subject: [PATCH] Quentin 01/10/2018 : set_forcing.f90 , bug for NKWH>2 => move allocate(ZWHITE) before do loop on vertical levels --- src/MNH/set_perturb.f90 | 46 +++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90 index 6c7a67203..8bc9b5cd6 100644 --- a/src/MNH/set_perturb.f90 +++ b/src/MNH/set_perturb.f90 @@ -96,6 +96,7 @@ END MODULE MODI_SET_PERTURB !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! C.Lac, V.Masson 1/2018 : White noise in the LBC +!! Q.Rodier 10/2018 : move allocate(ZWHITE) for NKWH>2 !! !------------------------------------------------------------------------------- ! @@ -371,6 +372,8 @@ SELECT CASE(CPERT_KIND) ! CASE('WH','WW') ! white noise is computed on global domain ! J.Escobar optim => need only identical random on all domain +! + ALLOCATE(ZWHITE(IIU,IJU)) ! DO JK = IKB, NKWH IKX = (NIMAX_ll+1)/2 @@ -397,7 +400,6 @@ SELECT CASE(CPERT_KIND) END DO END DO ! - ALLOCATE(ZWHITE(IIU,IJU)) ZWHITE(:,:) = 0.0 ! DO JY = 1, IKY @@ -452,31 +454,31 @@ SELECT CASE(CPERT_KIND) ! ! white noise for inflow/outflow U field in X direction ! -IF (LWH_LBXU) THEN - ALLOCATE(ZWHITE_ll(IIU_ll,IJU_ll)) - CALL GATHERALL_FIELD_ll('XY',ZWHITE,ZWHITE_ll,IRESP) - DO JK=1,MIN(IKU,IIU_ll) - DO JI=1,SIZE(XLBXUM,1) - XLBXUM(JI,:,JK) = XLBXUM(JI,:,JK) + XAMPLIWH * ZWHITE_ll(JK,:) - END DO - END DO - DEALLOCATE(ZWHITE_ll) -END IF + IF (LWH_LBXU) THEN + ALLOCATE(ZWHITE_ll(IIU_ll,IJU_ll)) + CALL GATHERALL_FIELD_ll('XY',ZWHITE,ZWHITE_ll,IRESP) + DO JK=1,MIN(IKU,IIU_ll) + DO JI=1,SIZE(XLBXUM,1) + XLBXUM(JI,:,JK) = XLBXUM(JI,:,JK) + XAMPLIWH * ZWHITE_ll(JK,:) + END DO + END DO + DEALLOCATE(ZWHITE_ll) + END IF ! ! white noise for inflow/outflow V field in Y direction ! -IF (LWH_LBYV) THEN - ALLOCATE(ZWHITE_ll(IIU_ll,IJU_ll)) - CALL GATHERALL_FIELD_ll('XY',ZWHITE,ZWHITE_ll,IRESP) - DO JK=1,MIN(IKU,IJU_ll) - DO JJ=1,SIZE(XLBXVM,2) - XLBXVM(:,JJ,JK) = XLBXVM(:,JJ,JK) + XAMPLIWH * ZWHITE_ll(JK,:) - END DO - END DO - DEALLOCATE(ZWHITE_ll) -END IF + IF (LWH_LBYV) THEN + ALLOCATE(ZWHITE_ll(IIU_ll,IJU_ll)) + CALL GATHERALL_FIELD_ll('XY',ZWHITE,ZWHITE_ll,IRESP) + DO JK=1,MIN(IKU,IJU_ll) + DO JJ=1,SIZE(XLBXVM,2) + XLBXVM(:,JJ,JK) = XLBXVM(:,JJ,JK) + XAMPLIWH * ZWHITE_ll(JK,:) + END DO + END DO + DEALLOCATE(ZWHITE_ll) + END IF - DEALLOCATE(ZWHITE) + DEALLOCATE(ZWHITE) CALL GET_HALO(XTHT) CALL GET_HALO(XUT) -- GitLab