diff --git a/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90 b/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90 index d7bc15b7f2397fdddb78827242193ffdd2e8f4da..489a2fade8efbe3736878d15dc5161d14e112f37 100644 --- a/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90 +++ b/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90 @@ -522,17 +522,19 @@ CALL TEMPORAL_DIST(TDTCUR%TDATE%YEAR,TDTCUR%TDATE%MONTH, & ZTIMEC) ! #ifdef CPLOASIS -IF ( MOD(ZTIMEC,1.0) .LE. 1E-2 .OR. (1.0 - MOD(ZTIMEC,1.0)) .LE. 1E-2 ) THEN - IF ( NINT(ZTIMEC-(XSEGLEN-XTSTEP)) .LT. 0 ) THEN - WRITE(NLUOUT,*) '----------------------------' - WRITE(NLUOUT,*) ' Reception des champs avec OASIS' - WRITE(NLUOUT,*) 'NINT(ZTIMEC)=', NINT(ZTIMEC) - CALL MNH_OASIS_RECV(CPROGRAM,IDIM1D,SIZE(XSW_BANDS),ZTIMEC+XTSTEP,XTSTEP, & +IF (LOASIS) THEN + IF ( MOD(ZTIMEC,1.0) .LE. 1E-2 .OR. (1.0 - MOD(ZTIMEC,1.0)) .LE. 1E-2 ) THEN + IF ( NINT(ZTIMEC-(XSEGLEN-XTSTEP)) .LT. 0 ) THEN + WRITE(NLUOUT,*) '----------------------------' + WRITE(NLUOUT,*) ' Reception des champs avec OASIS' + WRITE(NLUOUT,*) 'NINT(ZTIMEC)=', NINT(ZTIMEC) + CALL MNH_OASIS_RECV(CPROGRAM,IDIM1D,SIZE(XSW_BANDS),ZTIMEC+XTSTEP,XTSTEP, & ZP_ZENITH,XSW_BANDS , & ZP_TSRAD,ZP_DIR_ALB,ZP_SCA_ALB,ZP_EMIS,ZP_TSURF) - WRITE(NLUOUT,*) '----------------------------' + WRITE(NLUOUT,*) '----------------------------' + END IF END IF -ENDIF +END IF #endif ! ! Call to surface schemes @@ -550,13 +552,15 @@ CALL COUPLING_SURF_ATM_n(YSURF_CUR,'MESONH', 'E',ZTIMEC, 'OK' ) ! #ifdef CPLOASIS -IF ( MOD(ZTIMEC,1.0) .LE. 1E-2 .OR. (1.0 - MOD(ZTIMEC,1.0)) .LE. 1E-2 ) THEN - IF (NINT(ZTIMEC-(XSEGLEN-XTSTEP)) .LT. 0) THEN - WRITE(NLUOUT,*) '----------------------------' - WRITE(NLUOUT,*) ' Envoi des champs avec OASIS' - WRITE(NLUOUT,*) 'NINT(ZTIMEC)=', NINT(ZTIMEC) - CALL MNH_OASIS_SEND(CPROGRAM,IDIM1D,ZTIMEC+XTSTEP,XTSTEP) - WRITE(NLUOUT,*) '----------------------------' +IF (LOASIS) THEN + IF ( MOD(ZTIMEC,1.0) .LE. 1E-2 .OR. (1.0 - MOD(ZTIMEC,1.0)) .LE. 1E-2 ) THEN + IF (NINT(ZTIMEC-(XSEGLEN-XTSTEP)) .LT. 0) THEN + WRITE(NLUOUT,*) '----------------------------' + WRITE(NLUOUT,*) ' Envoi des champs avec OASIS' + WRITE(NLUOUT,*) 'NINT(ZTIMEC)=', NINT(ZTIMEC) + CALL MNH_OASIS_SEND(CPROGRAM,IDIM1D,ZTIMEC+XTSTEP,XTSTEP) + WRITE(NLUOUT,*) '----------------------------' + END IF END IF END IF #endif diff --git a/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 b/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 index f7b37b513ffacee22c903c20212bfb105f5c048f..2a6867392b6aed1e66aef2e0f42d31fff66f68b1 100644 --- a/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 +++ b/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 @@ -268,6 +268,8 @@ END MODULE MODI_INI_MODEL_n !! 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 +!! 10/2016 (C.Lac) Add max values !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -672,7 +674,10 @@ IF (LMEAN_FIELD) THEN ALLOCATE(XWM_MEAN(IIU,IJU,IKU)) ; XWM_MEAN = 0.0 ALLOCATE(XTHM_MEAN(IIU,IJU,IKU)) ; XTHM_MEAN = 0.0 ALLOCATE(XTEMPM_MEAN(IIU,IJU,IKU)) ; XTEMPM_MEAN = 0.0 - ALLOCATE(XTKEM_MEAN(IIU,IJU,IKU)) ; XTKEM_MEAN = 0.0 + IF (CTURB/='NONE') THEN + ALLOCATE(XTKEM_MEAN(IIU,IJU,IKU)) + XTKEM_MEAN = 0.0 + END IF ALLOCATE(XPABSM_MEAN(IIU,IJU,IKU)) ; XPABSM_MEAN = 0.0 ! ALLOCATE(XU2_MEAN(IIU,IJU,IKU)) ; XU2_MEAN = 0.0 @@ -684,7 +689,7 @@ IF (LMEAN_FIELD) THEN ! END IF ! -IF (CUVW_ADV_SCHEME(1:3)=='CEN') THEN +IF ((CUVW_ADV_SCHEME(1:3)=='CEN') .AND. (CTEMP_SCHEME == 'LEFR') ) THEN ALLOCATE(XUM(IIU,IJU,IKU)) ALLOCATE(XVM(IIU,IJU,IKU)) ALLOCATE(XWM(IIU,IJU,IKU)) @@ -1442,6 +1447,13 @@ ELSE ALLOCATE(XCIT(0,0,0)) END IF ! +IF ( CCLOUD == 'KHKO') THEN + ALLOCATE(XSUPSAT(IIU,IJU,IKU)) + ALLOCATE(XNACT(IIU,IJU,IKU)) + ALLOCATE(XNPRO(IIU,IJU,IKU)) + ALLOCATE(XSSPRO(IIU,IJU,IKU)) +END IF +! !* 3.12 Module MODD_TURB_CLOUD ! IF (.NOT.(ALLOCATED(XCEI))) ALLOCATE(XCEI(0,0,0)) @@ -1477,7 +1489,7 @@ IF ( CBUTYPE /= "NONE" .AND. NBUMOD == KMI ) THEN LNUMDIFU,LNUMDIFTH,LNUMDIFSV, & LHORELAX_UVWTH,LHORELAX_RV, LHORELAX_RC,LHORELAX_RR, & LHORELAX_RI,LHORELAX_RS,LHORELAX_RG, LHORELAX_RH,LHORELAX_TKE, & - LHORELAX_SV,LVE_RELAX,LCHTRANS,LNUDGING,LDRAGTREE, & + LHORELAX_SV,LVE_RELAX,LCHTRANS,LNUDGING,LDRAGTREE,LDEPOTREE, & CRAD,CDCONV,CSCONV,CTURB,CTURBDIM,CCLOUD ) END IF ! @@ -1556,7 +1568,7 @@ CALL READ_FIELD(HINIFILE,HLUOUT,IMASDEV, IIU,IJU,IKU,XTSTEP, & CGETTKET,CGETRVT,CGETRCT,CGETRRT,CGETRIT,CGETCIT, & CGETRST,CGETRGT,CGETRHT,CGETSVT,CGETSRCT,CGETSIGS,CGETCLDFR, & CGETBL_DEPTH,CGETSBL_DEPTH,CGETPHC,CGETPHR,CUVW_ADV_SCHEME, & - NSIZELBX_ll,NSIZELBXU_ll,NSIZELBY_ll,NSIZELBYV_ll, & + CTEMP_SCHEME,NSIZELBX_ll,NSIZELBXU_ll,NSIZELBY_ll,NSIZELBYV_ll,& NSIZELBXTKE_ll,NSIZELBYTKE_ll, & NSIZELBXR_ll,NSIZELBYR_ll,NSIZELBXSV_ll,NSIZELBYSV_ll, & XUM,XVM,XWM,XDUM,XDVM,XDWM, & diff --git a/src/ARCH_SRC/CPL_WAVE/MNH/mesonh.f90 b/src/ARCH_SRC/CPL_WAVE/MNH/mesonh.f90 index 10e7f11bc0fe263618d4c8e3fe7985d0da5876a1..153b0755f82d3b10a18407f638a3ef10638ebc70 100644 --- a/src/ARCH_SRC/CPL_WAVE/MNH/mesonh.f90 +++ b/src/ARCH_SRC/CPL_WAVE/MNH/mesonh.f90 @@ -87,7 +87,7 @@ #ifdef CPLOASIS USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD, IP USE MODD_DYN_n, ONLY : XTSTEP - USE MODD_SFX_OASIS, ONLY : LOASIS_GRID + USE MODD_SFX_OASIS, ONLY : LOASIS, LOASIS_GRID #endif ! USE MODD_CONF @@ -177,7 +177,9 @@ ENDIF ! ------------------------------ ! #ifdef CPLOASIS +IF (LOASIS) THEN CALL MNH_OASIS_DEFINE(CPROGRAM,IP) +END IF #endif ! !------------------------------------------------------------------------------- @@ -222,7 +224,9 @@ IF (LCHECK) THEN ELSE CALL END_PARA_ll(IINFO_ll) #ifdef CPLOASIS - CALL SFX_OASIS_END +IF (LOASIS) THEN + CALL SFX_OASIS_END +END IF #endif END IF ! diff --git a/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_init_ll.f90 b/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_init_ll.f90 index a06b15757c13235756f943d27b73d1166c8d7f10..2b021e7de4aace46ae09133a200bf3584d78534b 100644 --- a/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_init_ll.f90 +++ b/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_init_ll.f90 @@ -760,7 +760,7 @@ !! ------------- ! Original 01/06/98 ! R. Guivarch 15/09/99 deallocation of grid-nesting arrays -! J. Pianezze 01/11/2014 - add CPLOASIS cpp key +! J. Pianezze 11/2016 - add LOASIS flag ! !------------------------------------------------------------------------------- ! @@ -770,6 +770,7 @@ ! USE MODD_STRUCTURE_ll ! USE MODD_VAR_ll, ONLY : NIOUNIT, YOUTPUTFILE USE MODD_IO_ll, ONLY : ISP + USE MODD_SFX_OASIS, ONLY : LOASIS ! #ifdef MNH_GA USE MODE_GA @@ -803,9 +804,9 @@ USE MODE_GA endif #endif ! -#ifndef CPLOASIS +IF (.NOT. LOASIS) THEN CALL MPI_FINALIZE(KINFO_ll) -#endif +END IF ! !------------------------------------------------------------------------------- ! diff --git a/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_io.f90 b/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_io.f90 index e56a4b5758803654ffaa72008ecd19ae0cc820d0..bc23ed7fd282a0b461543123883770c96e790147 100644 --- a/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_io.f90 +++ b/src/ARCH_SRC/CPL_WAVE/SURCOUCHE/mode_io.f90 @@ -21,7 +21,7 @@ ! J.Escobar 18/10/10 bug with PGI compiler on ADJUSTL ! Philippe 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 ! D.Gazen : avril 2016 change error message -! J. Pianezze 01/08/2016 add CPLOASIS cpp key +! J. Pianezze 01/08/2016 add LOASIS flag ! MODULE MODE_IO_ll @@ -156,6 +156,7 @@ CONTAINS SUBROUTINE INITIO_ll() USE MODE_MNH_WORLD , ONLY : INIT_NMNH_COMM_WORLD + USE MODD_SFX_OASIS, ONLY : LOASIS USE MODD_IO_ll IMPLICIT NONE @@ -164,15 +165,15 @@ CONTAINS ISTDERR = 0 -#ifndef CPLOASIS - CALL MPI_INITIALIZED(GISINIT, IERR) - IF (.NOT. GISINIT) THEN - !CALL MPI_INIT(IERR) - CALL INIT_NMNH_COMM_WORLD(IERR) - if (IERR .NE.0) STOP "mode_io.f90::INITIO_ll() MPI_INIT ---> PROBLEME WITH REMAPPING NMNH_COMM_WORLD " + IF (.NOT. LOASIS) THEN + CALL MPI_INITIALIZED(GISINIT, IERR) + IF (.NOT. GISINIT) THEN + !CALL MPI_INIT(IERR) + CALL INIT_NMNH_COMM_WORLD(IERR) + if (IERR .NE.0) STOP "mode_io.f90::INITIO_ll() MPI_INIT ---> PROBLEME WITH REMAPPING NMNH_COMM_WORLD " + END IF + !! Now MPI is initialized for sure END IF - !! Now MPI is initialized for sure -#endif CALL INITFD()