diff --git a/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 b/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 index 2a6867392b6aed1e66aef2e0f42d31fff66f68b1..00bcf3aed4e449e80842ba7922685ae8f476ba0c 100644 --- a/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 +++ b/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 @@ -258,14 +258,15 @@ END MODULE MODI_INI_MODEL_n !! June 2011 (P.Aumond) Drag of the vegetation !! + Mean fields !! July 2013 (Bosseur & Filippi) Adds Forefire -!! P. Tulet Nov 2014 accumulated moles of aqueous species that fall at the surface +!! P. Tulet Nov 2014 accumulated moles of aqueous species that fall at the surface !! JAn. 2015 (F. Brosse) bug in allocate XACPRAQ !! Dec 2014 (C.Lac) : For reproducibility START/RESTA !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -!! V. Masson Feb 2015 replaces, for aerosols, cover fractions by sea, town, bare soil fractions +!! V. Masson Feb 2015 replaces, for aerosols, cover fractions by sea, town, bare soil fractions !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files -!! Jun. 2016 (G.Delautier) phasage surfex 8 -!! Modification 01/2016 (JP Pinty) Add LIMA +!! J.Escobar : 01/06/2016 : correct check limit of NRIM versus local subdomain size IDIM +!! 06/2016 (G.Delautier) phasage surfex 8 +!! Modification 01/2016 (JP Pinty) Add LIMA !! Aug. 2016 (J.Pianezze) Add SFX_OASIS_READ_NAM function from SurfEx !! M.Leriche 2016 Chemistry !! 10/2016 M.Mazoyer New KHKO output fields @@ -504,6 +505,8 @@ REAL, DIMENSION(:,:,:), POINTER :: DPTR_XZZ REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS ! +INTEGER :: IIB,IJB,IIE,IJE,IDIMX,IDIMY +! !------------------------------------------------------------------------------- ! !* 0. PROLOGUE @@ -617,6 +620,10 @@ IJU_ll=NJMAX_ll + 2 * JPHEXT ! spawning,... CALL GET_DIM_PHYS_ll('B',NIMAX,NJMAX) ! +CALL GET_INDICE_ll( IIB,IJB,IIE,IJE) +IDIMX = IIE - IIB + 1 +IDIMY = IJE - IJB + 1 +! NRR=0 NRRL=0 NRRI=0 @@ -1024,11 +1031,11 @@ ELSE ! 3D case ! check if local domain not to small for NRIMX NRIMY ! IF ( CLBCX(1) /= 'CYCL' ) THEN - IF ( NRIMX+2*JPHEXT .GE. IIU ) THEN + IF ( NRIMX .GT. IDIMX ) THEN WRITE(*,'(A,I8,A/A,2I8,/A)') "Processor=", IP-1, & - " :: INI_MODEL_n ERROR: ( NRIMX+2*JPHEXT >= IIU ) ", & - " Local domain to small for relaxation NRIMX+2*JPHEXT,IIU ", & - NRIMX+2*JPHEXT,IIU ,& + " :: INI_MODEL_n ERROR: ( NRIMX > IDIMX ) ", & + " Local domain to small for relaxation NRIMX,IDIMX ", & + NRIMX,IDIMX ,& " change relaxation parameters or number of processors " !callabortstop CALL ABORT @@ -1036,11 +1043,11 @@ ELSE ! 3D case END IF END IF IF ( CLBCY(1) /= 'CYCL' ) THEN - IF ( NRIMY+2*JPHEXT .GE. IJU ) THEN + IF ( NRIMY .GT. IDIMY ) THEN WRITE(*,'(A,I8,A/A,2I8,/A)') "Processor=", IP-1, & - " :: INI_MODEL_n ERROR: ( NRIMY+2*JPHEXT >= IJU ) ", & - " Local domain to small for relaxation NRIMY+2*JPHEXT,IJU ", & - NRIMY+2*JPHEXT,IJU ,& + " :: INI_MODEL_n ERROR: ( NRIMY > IDIMY ) ", & + " Local domain to small for relaxation NRIMY,IDIMY ", & + NRIMY,IDIMY ,& " change relaxation parameters or number of processors " !callabortstop CALL ABORT diff --git a/src/ARCH_SRC/CPL_WAVE/MNH/mnh_oasis_define.F90 b/src/ARCH_SRC/CPL_WAVE/MNH/mnh_oasis_define.F90 index a5e6f3bf4bd4cae27f7ee169e077acf122d76e16..06afba192840e3f80980e079285eaffbc2f331e1 100755 --- a/src/ARCH_SRC/CPL_WAVE/MNH/mnh_oasis_define.F90 +++ b/src/ARCH_SRC/CPL_WAVE/MNH/mnh_oasis_define.F90 @@ -51,6 +51,7 @@ SUBROUTINE MNH_OASIS_DEFINE(HPROGRAM,IP) !! MODIFICATIONS !! ------------- !! Original 09/2014 +!! 11/2016 Correction WENO5 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -63,6 +64,9 @@ USE MOD_OASIS USE MODD_MNH_SURFEX_n #endif ! +USE MODD_CONF, ONLY : NVERB +USE MODD_PARAMETERS, ONLY : JPHEXT +! USE MODE_ll ! IMPLICIT NONE @@ -121,7 +125,16 @@ JI=2 INPTS=0 DO JSEG=1,ISEGMENT JI=JI+1 - IPARAL(JI) = (IIOR - 1) + NIMAX_ll*(IJOR -1) + NIMAX_ll*(JSEG-1) + IF (LWEST_ll() .AND. LSOUTH_ll()) THEN + IPARAL(JI) = (IIOR - JPHEXT) + NIMAX_ll*(IJOR - JPHEXT) + NIMAX_ll*(JSEG - 1) + ELSE IF (LWEST_ll() .AND. .NOT. LSOUTH_ll()) THEN + IPARAL(JI) = (IIOR - JPHEXT) + NIMAX_ll*(IJOR + NHALO - 2*JPHEXT) + NIMAX_ll*(JSEG - 1) + ELSE IF (LSOUTH_ll() .AND. .NOT. LWEST_ll()) THEN + IPARAL(JI) = (IIOR + NHALO - 2*JPHEXT) + NIMAX_ll*(IJOR - JPHEXT) + NIMAX_ll*(JSEG - 1) + ELSE IF (.NOT. LSOUTH_ll() .AND. .NOT. LWEST_ll()) THEN + IPARAL(JI) = (IIOR + NHALO - 2*JPHEXT) + NIMAX_ll*(IJOR + NHALO - 2*JPHEXT) + NIMAX_ll*(JSEG - 1) + END IF + JI=JI+1 IPARAL(JI) = NIMAX ENDDO