diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl index 067d6023f34541327747b64a03e397892e57901d..63b3dcd6b60810575742e9f46aa2f5c6ba71a7e8 100755 --- a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl +++ b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl @@ -3,7 +3,7 @@ #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. set -x -set -e + ln -sf ../002_mesonh/EXPER.1.HYD2D.002.nc4 . ln -sf ../002_mesonh/EXPER.1.HYD2D.003.nc4 . @@ -24,3 +24,4 @@ display visu_2Drelief.000013.png display visu_2Drelief.000014.png display visu_2Drelief.000015.png display visu_2Drelief.000016.png +exit 0 diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl index 8fe45342523ced3cf87301ea92511fcf950a6a04..380452b00ee975d62fd0ebe2ae8bba5a9b08cc0f 100755 --- a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl +++ b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl @@ -3,8 +3,9 @@ #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. set -x -set -e + ln -sf ../002_mesonh/REL3D.1.EXP01.002.nc4 . ncl plot_3Drelief.ncl -display visu_3Drelief.png +display visu_3Drelief.000001.png +exit 0 diff --git a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl index 89c62b879f2285eab4e181299770e3e3f6fa2139..ea8c26db3dd8026ae05d3fec8122ca6cb015ad0a 100755 --- a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl +++ b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl @@ -3,7 +3,7 @@ #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. set -x -set -e + ln -sf ../002_mesonh/KWRAI.1.SEG01.004.nc4 . ncl plot_KW78.ncl @@ -20,4 +20,4 @@ display visu_KW78.000010.png display visu_KW78.000011.png display visu_KW78.000012.png display visu_KW78.000013.png - +exit 0 diff --git a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl index 71d2cbb866a18d03cf7296fe6dbbc823ea2ac85f..9440e038dd74b86b542991b29d923f5108b4f631 100755 --- a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl +++ b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl @@ -3,8 +3,9 @@ #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. set -x -set -e + ln -sf ../003_mesonh/REUNI.1.00A20.004.nc4 . + ncl plot_Reunion.ncl display visu_Reunion.000001.png display visu_Reunion.000002.png @@ -13,3 +14,4 @@ display visu_Reunion.000004.png display visu_Reunion.000005.png display visu_Reunion.000006.png display visu_Reunion.000007.png +exit 0 diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl index 52d8c50d13fcb8eb048cfdb0e986ca09de0b4e7b..a99e82aec451e9ca0bc10223af34377988f99194 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl @@ -1,4 +1,5 @@ set -x + ln -sf ../008_run2/16JAN.1.12B18.001.nc4 . ln -sf ../008_run2/16JAN.2.12B18.001.nc4 . ncl plot_16j.ncl @@ -12,4 +13,5 @@ ncl plot_16j_2.ncl display visu_16j_2.000001.png display visu_16j_2.000002.png display visu_16j_2.000003.png +exit 0 diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 47e7df0a8b967fa3932f620efa3706ea233f55d9..7b4983029728b9cacb107e4731a83a1895c1a8c9 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -265,6 +265,7 @@ END MODULE MODI_INI_MODEL_n !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! 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 +!! J.Escobar : 01/06/2016 : correct check limit of NRIM versus local subdomain size IDIM !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -493,6 +494,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 @@ -600,6 +603,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 @@ -1004,11 +1011,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 @@ -1016,11 +1023,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/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90 index f9c929597acaf656ac631c823fc3a705f6780dba..4b8b3cc9b37e5660fba585136bef8c686c84b76d 100644 --- a/src/MNH/retrieve2_nest_infon.f90 +++ b/src/MNH/retrieve2_nest_infon.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/retrieve2_nest_infon.f90,v $ $Revision: 1.2.2.1.2.1.18.2.2.1 $ !----------------------------------------------------------------- ! ################################ MODULE MODI_RETRIEVE2_NEST_INFO_n @@ -93,6 +93,7 @@ END MODULE MODI_RETRIEVE2_NEST_INFO_n !! J Stein 04/07/01 add cartesian case !! M.Faivre 2014 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +!! J.Escobar : 01/06/2016 : Bug in type of ZBUF INTEGER => REAL & use MPI_PRECISION for r4/R8 compatibility !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -179,7 +180,7 @@ INTEGER :: IXEND_F, IYEND_F ! end of local father subdomain (global coord !INTEGER :: IXEND_C, IYEND_C ! end of local father subdomain (global coord) !INTEGER :: IIMAX_C_ll, IJMAX_C_ll ! global dimensions of child model INTEGER :: II -INTEGER :: ZSENDBUF, ZRECVBUF +REAL :: ZSENDBUF, ZRECVBUF REAL :: ZCOEF ! ponderation coefficient for linear interpolation REAL, DIMENSION(:), ALLOCATABLE :: ZXHAT, ZYHAT ! coordinates of model 2 ! ! recomputed from coordinates of model 1 and ratios @@ -398,9 +399,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! the index of the first physical point of the local son subdomain of IPROC is II on the current process ! send XPGDXHAT(II) to process IPROC ZSENDBUF = XPGDXHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_DOUBLE_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_DOUBLE_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDXHATIXY1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -427,9 +428,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! the index of the first physical point of the local son subdomain is II on the current process ! send XPGDYHAT(II) to process IPROC ZSENDBUF = XPGDYHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_DOUBLE_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_DOUBLE_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDYHATIXY1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -446,8 +447,8 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ZXHATFIRSTENTRY_C = XXHAT(JPHEXT+1) ZYHATFIRSTENTRY_C = XYHAT(JPHEXT+1) ! broadcast XXHAT(JPHEXT+1) and find which process' father subdomain contains the coords of the first physical entry of local son subdomain - CALL MPI_BCAST( ZXHATFIRSTENTRY_C, 1, MPI_DOUBLE_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) - CALL MPI_BCAST( ZYHATFIRSTENTRY_C, 1, MPI_DOUBLE_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZXHATFIRSTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZYHATFIRSTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) ! ! communicating the value of XPGDXHAT (X direction) at the origin of local son subdomain IF ( IPROC == ISP-1 .AND. ZXHATFIRSTENTRY_C >= XPGDXHAT(JPHEXT+1) & @@ -471,9 +472,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! XPGDXHAT(II+1) is also defined on current process since HALO is at least 1 ! send XPGDXHAT(II+1) to process IPROC ZSENDBUF = XPGDXHAT(II+1) - CALL MPI_SEND( ZSENDBUF,1,MPI_DOUBLE_PRECISION,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_DOUBLE_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDXHATIXY1_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -501,9 +502,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! XPGDYHAT(II+1) is also defined on current process since HALO is at least 1 ! send XPGDYHAT(II+1) to process IPROC ZSENDBUF = XPGDYHAT(II+1) - CALL MPI_SEND( ZSENDBUF,1,MPI_DOUBLE_PRECISION,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_DOUBLE_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDYHATIXY1_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -543,8 +544,8 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ZXHATLASTENTRY_C = XXHAT(SIZE(XXHAT)-JPHEXT) ZYHATLASTENTRY_C = XYHAT(SIZE(XYHAT)-JPHEXT) ! broadcast XXHAT(SIZE(XXHAT)-JPHEXT) and find which process' father subdomain contains the coords of the last physical entry of local son subdomain - CALL MPI_BCAST( ZXHATLASTENTRY_C, 1, MPI_DOUBLE_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) - CALL MPI_BCAST( ZYHATLASTENTRY_C, 1, MPI_DOUBLE_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZXHATLASTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZYHATLASTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) ! ! communicating the value of XPGDXHAT (X direction) at the origin of local son subdomain IF ( IPROC == ISP-1 .AND. ZXHATLASTENTRY_C >= XPGDXHAT(JPHEXT+1) & @@ -574,9 +575,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! send XPGDXHAT(II) to process IPROC ! XPGDYHAT(II+1) is also defined on current process since HALO is at least 1 ZSENDBUF = XPGDXHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_DOUBLE_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_DOUBLE_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDXHATIXY2_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -609,9 +610,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! the index of the last physical point of the local son subdomain is II on the current process ! send XPGDYHAT(II) to process IPROC ZSENDBUF = XPGDYHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_DOUBLE_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_DOUBLE_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDYHATIXY2_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -625,8 +626,8 @@ ENDDO ! 3.3 - now we have the coordinates (ZPGDXHATIXY2_1, ZPGDYHATIXY2_1) of the point in father grid just right+north of the LOCAL son subdomain ! We compute the coordinates of the last point in father grid of the GLOBAL son subdomain -CALL MPI_ALLREDUCE(ZPGDXHATIXY2_1, IXSUPCOORD1, 1,MPI_DOUBLE_PRECISION, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) -CALL MPI_ALLREDUCE(ZPGDYHATIXY2_1, IYSUPCOORD1, 1,MPI_DOUBLE_PRECISION, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) +CALL MPI_ALLREDUCE(ZPGDXHATIXY2_1, IXSUPCOORD1, 1,MPI_PRECISION, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) +CALL MPI_ALLREDUCE(ZPGDYHATIXY2_1, IYSUPCOORD1, 1,MPI_PRECISION, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) ! we compute the index of this point in local father grid IF ( IXSUPCOORD1 >= XPGDXHAT(1+JPHEXT) .AND. IXSUPCOORD1 <= XPGDXHAT(SIZE(XPGDXHAT)-JPHEXT) .AND. & diff --git a/src/configure b/src/configure index 81b84992b98426e7cba50bb6642ca8f84967bc17..12dab4b4324d839e0993c64c4f6f32b988367578 100755 --- a/src/configure +++ b/src/configure @@ -9,7 +9,7 @@ if [ "x$XYZ" = "x" ] then # export VERSION_MASTER=${VERSION_MASTER:-MNH-V5-2} -export VERSION_BUG=${VERSION_BUG:-1} +export VERSION_BUG=${VERSION_BUG:-2} export VERSION_XYZ=${VERSION_XYZ:-${VERSION_MASTER}-${VERSION_BUG}} export VERSION_DATE=${VERSION_DATE:-"02/05/2016"} export VERSION_CDF=${VERSION_CDF:-"4.1.3"}