diff --git a/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh b/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh index 75a1e988162c51f43b4b2cd1ca4cba5fa003c61a..06314a5ad79cff84b3237b03a051251fac5f747a 100755 --- a/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh +++ b/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # usage(){ diff --git a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 index bb8534b6dedc4aa9b89775f7106dd6a45efef4ca..5abc98b1e2e5663dc251939d12f7067d84d7a6b4 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 @@ -13,6 +13,7 @@ program LFI2CDF USE MODE_FIELD, ONLY: INI_FIELD_LIST USE MODE_IO, ONLY: IO_Init, IO_Config_set + use mode_ll USE mode_options USE MODE_SPLITTINGZ_ll, ONLY: INI_PARAZ_ll USE mode_util diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 7a4d853e97417d32893df6b8ba3d94a9d8af2e8a..bc20c05b2071d54f387c251078c5cc336e8f2322 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -6,11 +6,12 @@ ! Modifications: ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! P. Wautelet 10/04/2019: use IO_Err_handle_nc4 to handle netCDF errors +! P. Wautelet 25/06/2019: add support for 3D integer arrays !----------------------------------------------------------------- MODULE mode_util USE MODD_IO, ONLY: TFILE_ELT USE MODD_NETCDF, ONLY: DIMCDF, CDFINT - USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX + USE MODD_PARAMETERS, ONLY: JPVEXT, NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX use modd_precision, only: LFIINT USE MODE_FIELD @@ -687,14 +688,15 @@ END DO INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMLEN logical,dimension(knaf) :: gtimedep_in, gtimedep_out - CHARACTER(LEN=:), ALLOCATABLE :: YTAB0D - INTEGER,DIMENSION(:), ALLOCATABLE :: ITAB1D, ITAB1D2 - INTEGER,DIMENSION(:,:), ALLOCATABLE :: ITAB2D, ITAB2D2 - LOGICAL,DIMENSION(:), ALLOCATABLE :: GTAB1D - REAL,DIMENSION(:), ALLOCATABLE :: XTAB1D, XTAB1D2 - REAL,DIMENSION(:,:), ALLOCATABLE :: XTAB2D, XTAB2D2 - REAL,DIMENSION(:,:,:), ALLOCATABLE :: XTAB3D, XTAB3D2 - REAL,DIMENSION(:,:,:,:),ALLOCATABLE :: XTAB4D, XTAB4D2 + CHARACTER(LEN=:), ALLOCATABLE :: YTAB0D + INTEGER, DIMENSION(:), ALLOCATABLE :: ITAB1D, ITAB1D2 + INTEGER, DIMENSION(:,:), ALLOCATABLE :: ITAB2D, ITAB2D2 + INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: ITAB3D, ITAB3D2 + LOGICAL, DIMENSION(:), ALLOCATABLE :: GTAB1D + REAL, DIMENSION(:), ALLOCATABLE :: XTAB1D, XTAB1D2 + REAL, DIMENSION(:,:), ALLOCATABLE :: XTAB2D, XTAB2D2 + REAL, DIMENSION(:,:,:), ALLOCATABLE :: XTAB3D, XTAB3D2 + REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: XTAB4D, XTAB4D2 TYPE(DATE_TIME) :: TZDATE @@ -742,6 +744,10 @@ END DO ALLOCATE(ITAB2D(IDIMLEN(1),IDIMLEN(2))) IF (tpreclist(ji)%calc) ALLOCATE(ITAB2D2(IDIMLEN(1),IDIMLEN(2))) CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D) + CASE (3) + ALLOCATE(ITAB3D(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3))) + IF (tpreclist(ji)%calc) ALLOCATE(ITAB3D2(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3))) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB3D) CASE DEFAULT CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' & //TRIM(tpreclist(ISRC)%name)//' => ignored') @@ -762,6 +768,9 @@ END DO CASE (2) CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D2) ITAB2D(:,:) = ITAB2D(:,:) + ITAB2D2(:,:) + CASE (3) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB3D2) + ITAB3D(:,:,:) = ITAB3D(:,:,:) + ITAB3D2(:,:,:) END SELECT END DO @@ -779,6 +788,10 @@ END DO CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB2D) DEALLOCATE(ITAB2D) IF (tpreclist(ji)%calc) DEALLOCATE(ITAB2D2) + CASE (3) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB3D) + DEALLOCATE(ITAB3D) + IF (tpreclist(ji)%calc) DEALLOCATE(ITAB3D2) END SELECT @@ -944,7 +957,7 @@ END DO USE MODD_GRID, ONLY: XBETA, XRPK, XLAT0, XLON0, XLATORI, XLONORI USE MODD_GRID_n, ONLY: LSLEVE, XXHAT, XYHAT, XZHAT USE MODD_IO, ONLY: LIOCDF4 - USE MODD_PARAMETERS, ONLY: JPHEXT + USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODD_PARAMETERS_ll, ONLY: JPHEXT_ll=>JPHEXT, JPVEXT_ll=>JPVEXT USE MODD_TIME_n, ONLY: TDTCUR, TDTMOD diff --git a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz index 8c58f036d916e50d373a78fdb34bd1abe4ef9d83..cdd9353330c9cbbd2c1e8dc7e18a868ac8fd3757 100755 --- a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz @@ -1 +1,2 @@ +#!/bin/bash rm -f HYD2D.* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer diff --git a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz index 3370ae6d1d907443bd80be743423541df8257271..dc97915caa8693a820cd2bc7189341436bdcd66f 100755 --- a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz index afe7735290fd98c4b946c7b43da8da22b4f007b3..51c66dcb4f8b3f09a0a3954b54ebeec3820267da 100755 --- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz @@ -1,2 +1,3 @@ +#!/bin/bash rm -f HYD2D* pipe_name PRESSURE file_for_xtransfer rm -f EXPER.1.HYD* OUT* diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz index 510af5cdbe9a531f19eb3ac56584a4116256586e..bdf21326021858792eaf90b73ca2512c97a6f0ff 100755 --- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia b/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia index be8f5a09d1cbc43bd834f00b3fffc48189a1d263..b7471298dbe4522965b9351903c8fbf301b341e5 100755 --- a/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia +++ b/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash rm -f dirconv.elim FICJD LISTING_DIA OUT_DIA pipe_name rm -f EXPER.1.HYD2D* diff --git a/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia b/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia index 5f9bd392bffead4ef1a83fc27c1238ddce17eb6d..b9a9c88712be5b10353d9b5475711b94cfda1bcd 100755 --- a/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia +++ b/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog b/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog index 4c7ea944eb6cfff76cf612c468c75fcb7721c61b..fc74351aa873e3b64453331da8378d7fddf1b329 100755 --- a/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash rm -f EXPER.1.HYD2D* rm -f gmeta OUT* rm -f rm dir.*:* diff --git a/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog b/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog index 3f1b4cf41349998615a5b67b379c4d84633530f4..03431de5cdfd18131b22dd89fef23b6c6cd3c2c3 100755 --- a/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog +++ b/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl b/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl index 3898140e85e6709c3e6c73af6b43e25cd60fd79e..8b82cdb8e78561ded4ce43712ce50580c6423c07 100755 --- a/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl +++ b/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl @@ -1,2 +1,2 @@ - +#!/bin/bash rm -f *.nc *.ps *.png diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl index 392a13cbfb0da4a39f491ba806d7af46a2bd1759..7b7d112fe13bb04dc72ab09f57cdb0a1538f775e 100755 --- a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl +++ b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief b/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief index 70960894d0d07cc05a56b56721d0904a2c5f8cdc..6891e0e9d274f456ad57a8828de01e80ca380c44 100755 --- a/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief +++ b/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief @@ -1,7 +1,8 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. set -e make clean -make \ No newline at end of file +make diff --git a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz index 3dd534c9e6ebd19c1d7134ae729c661c0676362a..c19ee1b8010a2c7cc9fe8c76240301b91601b5f9 100755 --- a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -x rm -f RELIEF3D* OUTPUT_LISTING* pipe* *.tex rm -f file_for_xtransfer diff --git a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz index 7170696e032756f3f2f125a8bfb73a491ebbc795..bc90ba158ca55ddc34eacb5967ad43934ab06116 100755 --- a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz index faf1e21a67805a20cb2df4ea1b6bf456791a7b02..f0661c43847f05a7b686d9e7002deac8ec219357 100755 --- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f PRESSURE file_for_xtransfer rm -f RELIEF3D.* diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz index 97878c3aaab53f7da79e1c2c56aa2627a740b118..fb2bd77ecc2333a744bc4d3235fd2c378a6cf168 100755 --- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia b/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia index 34ba07d92753189b788cdc1751d355f3eb1d6b7b..4736bbeef2a40269d80176c3795d819bb2a8878b 100755 --- a/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia +++ b/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f REL3D.1.EXP01.002.{des,lfi,nc} rm -f REL3D.1.EXP01.002dg.{des,lfi,nc} diff --git a/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia b/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia index fe1aef7bdf51d66151a2b0ac76079b7175d586af..db41113751bf7e7148be1a6100d95fc55c5aa443 100755 --- a/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia +++ b/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog b/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog index 39c5ad870531bc32e8d8328b25fd1b2ff4f3512b..f1904b54b7017b3dbb9cb024ff32bc31a2672c0e 100755 --- a/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f dir.* gmeta REL3D* OUT_DIA diff --git a/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog b/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog index 6d362f528b9e97fd8366ed9d893a6650256da6f8..6fb30e42f4fd801ec4fff45781196b0530e9af1c 100755 --- a/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog +++ b/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl b/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl index 4017fe47c3e76ce54e5d1a6e887a20431f9b223d..233231e1eee2bac48853a70db7af884c517b70bd 100755 --- a/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl +++ b/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl @@ -1,2 +1,2 @@ - +#!/bin/bash rm -f *.nc *.ps diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl index a087673baa375bd6505f5843cf76566725260137..59aa382501a8593f023111b9f1b3b02592554245 100755 --- a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl +++ b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/002_3Drelief/Makefile b/MY_RUN/KTEST/002_3Drelief/Makefile old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief b/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief index 59e5a7214bc778c55148fb589135fb85e31a2295..6891e0e9d274f456ad57a8828de01e80ca380c44 100755 --- a/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief +++ b/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz index 3411f209794ecc5506dce3eae7370e059fe9a0f4..38e2c32c39a84dcecfa82b88bbfc050daa9c446c 100755 --- a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -x rm -f KWRAIN.* OUTPUT_LISTING* pipe* *.tex rm -f file_for_xtransfer diff --git a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz index f32817c8b8b1e7144e1dc56535dce5c2cd5e8248..eb9d7425163ef27ad7c96ddec97675bac4a56ec0 100755 --- a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz index 946d0c90ebea97a065833edc7910c122b9e21f9c..cbc42393069d9d6767596310cc23f24ab7036ff0 100755 --- a/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f PRESSURE rm -f KWRAI* OUT* pipe_name file_for_xtransfer diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz index e86549305e114ff5c83fbcbc2c90417a44c1d717..f7fb0365447af5a74bcdd92924e4f19e0d5aa99e 100755 --- a/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia b/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia index 2d6705fe01b5d7545fd6bf3e56cebcb75a6b0cef..9ba04f4e6b5d7baf4a3832abff01338eaff2dac4 100755 --- a/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia +++ b/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f KWRAI.* rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia b/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia index 5aa15dbbf32f023ed62b6af28e3a10ebf3449f6b..60db55d108f1af83689bf6ce9a86a3147c97af83 100755 --- a/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia +++ b/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog b/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog index 1be3a1adaa7353fc8055c8c9aa97b768aa3677f4..f4e896519cb1fae63eb774815ca52c295b3e1c9a 100755 --- a/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f dir.* gmeta KWRAI.1.SEG01.00* OUT_DIA diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog b/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog index f87f0b4fefecaa2bdb80712d93ad325e2cacb0ee..365ecc11eabe264469d38e41a4d1e10a743215ac 100755 --- a/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog +++ b/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl b/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl index 4017fe47c3e76ce54e5d1a6e887a20431f9b223d..233231e1eee2bac48853a70db7af884c517b70bd 100755 --- a/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl +++ b/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl @@ -1,2 +1,2 @@ - +#!/bin/bash rm -f *.nc *.ps diff --git a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl index fe611614ef801d781cb98a6ae2e47f19b429795b..8c66c7cb4e74d54b38a589a9146ef9d0bb8f4fa8 100755 --- a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl +++ b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz b/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz index 6daf8d6753c4b000775465519d27c06ad7490999..19b1bf34eb5ca4964c57e9b503ef15a7e940213f 100755 --- a/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz +++ b/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f KWRAI* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex rm -f file_for_xtransfer diff --git a/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz b/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz index dae2b32d951a7dfac048db8131c2b54a6973ae4e..b36518443ebec0529cd0d53901f3adffe95dc551 100755 --- a/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz +++ b/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz index 6daf8d6753c4b000775465519d27c06ad7490999..19b1bf34eb5ca4964c57e9b503ef15a7e940213f 100755 --- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz +++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f KWRAI* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex rm -f file_for_xtransfer diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl index 9c04c2a804db6e7421b6de10a9e937f55d859447..cb8d15455b843f252abe2c6d262197c9e22d5352 100755 --- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl +++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl @@ -1,2 +1,3 @@ +#!/bin/bash set -x -rm -f KWRAI.1.SEG01.004* visu_KW78_diag.png \ No newline at end of file +rm -f KWRAI.1.SEG01.004* visu_KW78_diag.png diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl index 3b96c630eb395cf69794129acd8956b140ba3e37..ffd98523395dcc3395c9141c10cdaf375591f2b3 100755 --- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl +++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/003_KW78/Makefile b/MY_RUN/KTEST/003_KW78/Makefile old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/003_KW78/run_003_KW78 b/MY_RUN/KTEST/003_KW78/run_003_KW78 index 59e5a7214bc778c55148fb589135fb85e31a2295..6891e0e9d274f456ad57a8828de01e80ca380c44 100755 --- a/MY_RUN/KTEST/003_KW78/run_003_KW78 +++ b/MY_RUN/KTEST/003_KW78/run_003_KW78 @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files index ad697a0fec8472a4dc685c03ee2412489677480c..851eb15f925868dc6980b315a04fac890ddaece3 100755 --- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files +++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files @@ -1,3 +1,4 @@ +#!/bin/bash PREP_PGD_FILES=$HOME/PREP_PGD_FILES_WWW ; export PREP_PGD_FILES [ ! -d "$PREP_PGD_FILES" ] && exit echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz index 69644ac26b40631f3febbb88ea1ab16795fdc6ee..2e671ee0c7822ea2634a4038bf5b772ccfff534e 100755 --- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz +++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f *.dir *.hdr REUNION_PGD_1km5* OUTPUT_* pipe* *.tex file_for_xtransfer diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files index 56726933a0f7608e0c4918f42e80d5aea76b669d..8269e96732745a461aeb773d3325b42748b2fe12 100755 --- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files +++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files @@ -1,3 +1,4 @@ +#!/bin/bash # # Modif # J.Escobar 11/04/2014 get PGD files from 'dir_open' directory ( without psswd ) diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz index 1787962045ad701bdc7e212d6d86fa512e745f2b..2f6d23ec608f25488aeff07e12f55bfecdc68973 100755 --- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz +++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz index a87860cf88aa14b24bbaf51ce6e4139389376cdc..214e8ee8a473d6d561b784fbfe08b1941cd8f708 100755 --- a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f REUNION_PGD_1km5* REUNION_IDEA* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer diff --git a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz index c25d2ad26361ecec027d5f2906f09e0c9683f0e0..1a5dea074c91dbb3f5f80feed6aebbd6ad873d62 100755 --- a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz index 9c6220241e1fe7810b212926efac89c841e783e9..7530099e2719a131467ac11606935b609be440ce 100755 --- a/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f PRESSURE rm -f REUNION_IDEA.{des,lfi,nc} diff --git a/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia b/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia index e571b238cf6e1e0932a7be94a05bdf8abda4de10..d61f25f709fb56f668221fb1094f9ddfcd6b645e 100755 --- a/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia +++ b/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f REUNI.1* dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia b/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia index 370f6dd2ca28e09f7c92f3fe728eff823ad03777..2ce0351394da80ab713f896060faec8d52a9e013 100755 --- a/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia +++ b/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog b/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog index 3ad5c4b706c5b0905cb48fd1e87131517bc0329a..ab7c07966f324073a71267c1c2fb8bf016eb03e3 100755 --- a/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f dir.* gmeta* REUNI.1.00A20.00* OUT_DIA diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog b/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog index 07ad8b77ff62f05cb3be3a9d92d9f015bcf7efaa..dd66c99643e3bc11d5f5d094efc44e307328c06e 100755 --- a/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog +++ b/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl index 31ea1f3c641c770f8ce6d39ba80ffc880cce2132..3a0b73ae44942a2454ba2e68db4cb894106dd4f0 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!!!! WARNING :: CLEAN_RANGS_FILES !!!!" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files @@ -1,3 +1,4 @@ +#!/bin/bash NCARG_RANGS=`pwd` export NCARG_RANGS echo diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl index 7c68abf3d2439ab6929d4aab86c94bbda30c4127..11c9cafb8e6bb391d7b232f92ead4fd1fc57a8c8 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl index 35c9be83a714d5a932cbbb248977960346883bce..bb0f6a460def102235c5996a0665357b2d569eb9 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!!!! WARNING :: CLEAN_RANGS_FILES !!!!" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files @@ -1,3 +1,4 @@ +#!/bin/bash NCARG_RANGS=`pwd` export NCARG_RANGS echo diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl index 0ad8bf74f04e9e570848042926029ecd14bfd854..5fd22cf3b1afccbfa394a944179561dd47f401ee 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl index b7b65292c989aa3eb58de39b1a6a0373feccf350..c40e649d92c62a6c76e7acaabe7b995d1b77937f 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!!!! WARNING :: CLEAN_RANGS_FILES !!!!" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files @@ -1,3 +1,4 @@ +#!/bin/bash NCARG_RANGS=`pwd` export NCARG_RANGS echo diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl index e7068fe4e122025f01a3ba630fb8323121c24d43..2916f43936c6c7f2b55c9c5325cc61b8b3fc8a57 100755 --- a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl +++ b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash set -x #### Get highres coastline data for ncl # If you don't have internet connexion, comment the next line diff --git a/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl b/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl index 4017fe47c3e76ce54e5d1a6e887a20431f9b223d..233231e1eee2bac48853a70db7af884c517b70bd 100755 --- a/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl +++ b/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl @@ -1,2 +1,2 @@ - +#!/bin/bash rm -f *.nc *.ps diff --git a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl index 1728e92ca8fb5f6213f90a02990fddcbd0455a92..4fc11d993821eeaaa02d0f78d0eaab29bc450176 100755 --- a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl +++ b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/004_Reunion/run_004_Reunion b/MY_RUN/KTEST/004_Reunion/run_004_Reunion index 3cc7d58d1f9cf0c4e30ada0dd89d1526e7976ed9..12b10dcac4148e2eda95827d844e9bc15cc7aed5 100755 --- a/MY_RUN/KTEST/004_Reunion/run_004_Reunion +++ b/MY_RUN/KTEST/004_Reunion/run_004_Reunion @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/005_ARM/001_prep_ideal/PRE_IDEA1.nam b/MY_RUN/KTEST/005_ARM/001_prep_ideal/PRE_IDEA1.nam old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz index 3b366f16a364d5e93afd8362892e8a1fe5a744d2..66bc124ff209a0a0ff73cfd2d2f59b1f3ef9afa1 100755 --- a/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz @@ -1 +1,2 @@ +#!/bin/bash rm -f eurocs* OUTPUT_LISTING* pipe* *.tex diff --git a/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz b/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz index 19645e4d7dfa514cb198a0da5ce86db95bac409c..0a0ec2fc0277aa449cce8a20e449cb20d083c37d 100755 --- a/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -x set -e rm -f eurocs* OUTPUT_LISTING* pipe* *.tex diff --git a/MY_RUN/KTEST/005_ARM/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/005_ARM/002_mesonh/EXSEG1.nam old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz index 424f6d31b7911eafde793705860abb1a3ccdf66f..5bd665b8535e16da39e66854dbb55394bb027879 100755 --- a/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz @@ -1,2 +1,3 @@ +#!/bin/bash rm -f ARM* pipe_name rm -f eurocs* OUT* diff --git a/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz index c8aeaf943eb245dfe8a6a30ce98239465e9dd513..221ca5792ba6fa6057bded2d2bbb0ce670e89be2 100755 --- a/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x set -e ln -fs ../001_prep_ideal/eurocs_noground.* . diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog b/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog index f02e522723fdbfb2454944760cbd686d255cd0f8..159c61110f80d5cc0e5800b4f3c94b6b5eeba74f 100755 --- a/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash rm -f ARM** rm -f gmeta OUT* rm -f rm dir.*:* diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm b/MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog b/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog index e5a25c963a2b55200180612ac3c128ba4dba50a8..15d55af0a576fae01a356cb2aea5ff3f42cc30b9 100755 --- a/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog +++ b/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash set -x set -e ln -sf ../002_mesonh/ARM__.1.CEN4T.000.* . diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl b/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl index ed94e798a01a78b92a53c5aac59fb97ed99380f6..12eeedc8e2098dd3b9af358058400b0dc719d700 100755 --- a/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl +++ b/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl @@ -1,2 +1,2 @@ - +#!/bin/bash rm -f ARM__.1.CEN4T.000* *.png diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl b/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl index 31723fe2e450eb4c05f771c4afba434945a37b02..7fa36570be699763a33bdad50638a95b35f01eb7 100755 --- a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl +++ b/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/005_ARM/Makefile b/MY_RUN/KTEST/005_ARM/Makefile old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/005_ARM/run_005_ARM b/MY_RUN/KTEST/005_ARM/run_005_ARM index 9917191a793a32316f7f34f8f9e1eee796fba2f7..1a1fa7e9599f8fc0cae01edd0b20aa0b35973807 100755 --- a/MY_RUN/KTEST/005_ARM/run_005_ARM +++ b/MY_RUN/KTEST/005_ARM/run_005_ARM @@ -1,3 +1,4 @@ +#!/bin/bash set -e make clean -make \ No newline at end of file +make diff --git a/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz index 3aa9114f9d6f9903281fc98f0c564b45abff3948..d5ff0c093d5d5cb5102c233456545e70d51460e7 100755 --- a/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz +++ b/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f *.dir *.hdr file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files b/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files index 1c9492b8192eea729b74362a7e209ace3699af48..0940592c09302652cad274442648b8bc44602b31 100755 --- a/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files +++ b/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files @@ -1,3 +1,4 @@ +#!/bin/bash # # Modif # J.Escobar 11/04/2014 get PGD files from 'dir_open' directory ( without psswd ) diff --git a/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz index 2876e061da763b24dadd1d6b0c3685942f087b01..70642944a892cf92eb4ac1c67ec6d36d14d426e6 100755 --- a/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz +++ b/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz index 6b8e6bbbb0b529e3d7fad9862f20a66b7037783b..d0e358e6e84962d42ad924351adf8b45d8a3bf61 100755 --- a/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz +++ b/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f *.dir *.hdr file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz index a11ba8192adcc384908cd29ab4997cd22c719fb4..771b1f116d9eae6a44e4cbcb358b1e9fd54f5698 100755 --- a/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz +++ b/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz b/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz index 6b8e6bbbb0b529e3d7fad9862f20a66b7037783b..d0e358e6e84962d42ad924351adf8b45d8a3bf61 100755 --- a/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz +++ b/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f *.dir *.hdr file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz b/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz index 0fd2608e42a3d08cce8824d79c3de533bbe22413..ef568d519e2c392f475319b7206b8b4f6d8b9dcc 100755 --- a/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz +++ b/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz index 49524a87187e61b1b05d5cfbd6357549cd4cf50f..3afd6667c28b37be242ca572942ede1a26605ff8 100755 --- a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz +++ b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex diff --git a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz index 26659113d21b4d6c1b6688abcb2c87428f1d9ca7..45d19104a20b70b4700d9bd4c888cf68f2631a54 100755 --- a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz +++ b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz index dfa7e6b1fc72d6420184278a92d7d7121d61d07a..34cdd4bb3ce2fa90b4adc63e288e039c03b69d44 100755 --- a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz +++ b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz index 6a61075b38e2840c18899ebc49745628ca695884..8ab1e23a3360e7ac759d429354136136a9cc828d 100755 --- a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz +++ b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz b/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz index dfa7e6b1fc72d6420184278a92d7d7121d61d07a..34cdd4bb3ce2fa90b4adc63e288e039c03b69d44 100755 --- a/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz +++ b/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz b/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz index 0c88f2ff30e0628198b3d83518dce5339db61e66..d85176e77f99e6238b7777bf001d025d171f688d 100755 --- a/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz +++ b/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz index ec13918061efc54dee68856f501f2aa482b24747..5311f8a7dab9f2c6bdc2565bfa4cae145226e94c 100755 --- a/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz +++ b/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex rm -f EXSEG?.nam PRESSURE file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz index 654ba1e180deb107aac81bcbf4257e0c53b85f8b..77692f0f6cc8be019f7463931b40a9ed79072b3d 100755 --- a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz +++ b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz b/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz index 948b5967789c0e9e0252a0dc65261ccdb048b2e8..ef0943262e809eb274f9059868e61c937691dbbe 100755 --- a/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz +++ b/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex rm -f DIAG1.nam file_for_xtransfer diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia b/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia index 33bdd6e1dff1cc23f22e849106718dcf110dfdff..ef0cd032d0730ad98b606f17f6e976c12a32a6e4 100755 --- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia +++ b/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f 16JAN* rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia b/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia index 56888fa3a9fba4cf1ec0ac6cde9ba70794360d30..d6fd020632a5efe7e639b9019c633d7b0c51547c 100755 --- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia +++ b/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog b/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog index 1a9662d6ba2c51d7a06c9b5a2036865806ceff3e..c0d45814101d68a224c6868790970b0e139068be 100755 --- a/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f dir.* gmeta 16JAN* OUT_DIA diff --git a/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog b/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog index 5b51010db5fbaeacd2dfa5ffbc9e8807c66454e9..4fec27faf46c42c0b6e5203a548e8575110dd47b 100755 --- a/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog +++ b/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl index 688cc8b2203a69b4a9f22c65ef1c4203115820e8..6315552cfe80a90710153aeb3028b2678b968ab9 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f 16JAN* rm -f *.ps diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl index 584bbad27cca2954aaa41b098ed973082bdbddd8..beb2e3605d766566b89aa01912aa5eab38354a73 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f visu_16j*.png diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl index 31ea1f3c641c770f8ce6d39ba80ffc880cce2132..3a0b73ae44942a2454ba2e68db4cb894106dd4f0 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!!!! WARNING :: CLEAN_RANGS_FILES !!!!" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files @@ -1,3 +1,4 @@ +#!/bin/bash NCARG_RANGS=`pwd` export NCARG_RANGS echo diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl index 58ba489064246f09101511409898ae08cbf9e70c..9174f368ac2931dfdf8614b102757af1fa2c14e1 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl index 35c9be83a714d5a932cbbb248977960346883bce..bb0f6a460def102235c5996a0665357b2d569eb9 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!!!! WARNING :: CLEAN_RANGS_FILES !!!!" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files @@ -1,3 +1,4 @@ +#!/bin/bash NCARG_RANGS=`pwd` export NCARG_RANGS echo diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl index 9d74f9f4a93856cf938743558cbfadaa847d8c09..4ba228ec6df2a85b353847f2af4bc280b7a710fe 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl index 33b4acd6e40b0389aae4cea13ec409135ce92f8d..fd14d4432591be2c055acdc24d3bd14661a83f1b 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!!!! WARNING :: CLEAN_RANGS_FILES !!!!" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files @@ -1,3 +1,4 @@ +#!/bin/bash NCARG_RANGS=`pwd` export NCARG_RANGS echo diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl index fffa5e6ec8021bc7fe9fec30ed2d61eeb37997d5..186f6b1056c88923c36632248211d9333947934e 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash set -x #### Get highres coastline data for ncl ./get_ncl_highres_files diff --git a/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz b/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz index a16961587ec4c7f71c6d07c246d9d8748fabba1c..831969ec46f1c7e79b3a8a184ef1a195e42f29bc 100755 --- a/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz +++ b/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz @@ -1 +1,2 @@ +#!/bin/bash rm -f spectra* OUTPUT_LISTING* pipe* fort* 16JAN* *.bin diff --git a/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz b/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz index 00c54f2b99ff1c10326065e5b5b034a7e8762a18..c688a106fcafdda54041eecc657a3fc281979f0b 100755 --- a/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz +++ b/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier/012_spectre/trace_EC.sh b/MY_RUN/KTEST/007_16janvier/012_spectre/trace_EC.sh old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/007_16janvier/run_007_16janvier b/MY_RUN/KTEST/007_16janvier/run_007_16janvier index 3cc7d58d1f9cf0c4e30ada0dd89d1526e7976ed9..12b10dcac4148e2eda95827d844e9bc15cc7aed5 100755 --- a/MY_RUN/KTEST/007_16janvier/run_007_16janvier +++ b/MY_RUN/KTEST/007_16janvier/run_007_16janvier @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar index 961a49ce91ff80f541fbe8e52a93715ef781dd7a..261fa777db5802132605ea27eabbfa57029eb921 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar +++ b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ## ## Import Global Experiment Variables ## diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm index 1644a0df0c8c48c848c021dfb83dba8a6b0d9913..b6f4eac8c64a183f0ecfa6d2f8afddfbfda2dae9 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMONO} -#!/bin/sh +#!/bin/bash ############################################################### ############################################################### # Script # diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar index 40217a51d46df6ee0d78ccf91d000c77f1510e70..c2651025d9ce9d500ee4c83af16f7006a7a0edfa 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar +++ b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ## ## Import Global Experiment Variables ## diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm index 9874f46de28b1a5bc82e6d6a643c84aa7ee57c56..c2b90f85471659b3adfcadb5b7af2f3780f0d8b6 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMONO} -#!/bin/sh +#!/bin/bash ############################################################### ############################################################### # Script # diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar index bb4f19056ec672b946d53eb1f9b92056a17021a0..5c4a7d6e827d816d6338db9a0657907f6cc00c95 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar +++ b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ## ## Import Global Experiment Variables ## diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm index 60b9a05bc45065bf80ff87649a82a3c782977ff6..6c8cf541e63e157ddedb884e16e43acf8855dc01 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMONO} -#!/bin/sh +#!/bin/bash ############################################################### ############################################################### # Script # diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm index 0804408ba4b2d7072cad3ef8a39ba719fd52926d..853940e51156b8a662927b0dfc84733f0643b916 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMONO} -#!/bin/sh +#!/bin/bash ############################################################### # Script # ############################################################### diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm index 6fcffdc4c0b8e20c71f32eade3a9800b620d0445..5665775d27aa01c1372c80b4c87133ca8845c5b6 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMONO} -#!/bin/sh +#!/bin/bash ############################################################### # Script # ############################################################### diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm index 03b24e87e7c2e20ddca2168719dee4add0bc174b..b54f9122198d4297e242901d2394cd59a621d03f 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMONO} -#!/bin/sh +#!/bin/bash ############################################################### # Script # ############################################################### diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm index a777ed883250f1fbd18e287e0b69d07b8b0a9099..c01d5ba68bd7ab7c0c3cb8b16c1089a9f78d02e6 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMULTI} -#!/bin/sh +#!/bin/bash ############################################################### # Script # diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm index e951ee1e38ce8954119aa35263ed22c1f4236439..4392a6847e6acd94170b2c1b19f9a8e8c51eaade 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm @@ -1,5 +1,5 @@ ${JOBMULTI} -#!/bin/sh +#!/bin/bash ############################################################### # Script # ############################################################### diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm index 767129205e7312087cd9845c742f96a86a60f8aa..ebdb3da8a0df47751fa0bff332ce920ff3088aa7 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm @@ -1,5 +1,5 @@ ${JOBFRONTAL} -#!/bin/sh +#!/bin/bash ############################################################### # Script # ############################################################### diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm index 00128b669fe4ab325400aaa9892bf384d1e12e81..c10633ea2a714722088d6517b6a54730e10e794e 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm @@ -1,5 +1,5 @@ ${JOBFRONTAL} -#!/bin/sh +#!/bin/bash ############################################################### # Script # ############################################################### diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101 b/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101 index 60ed7e0a5ea69f2418392eccfc9914c2b348ccad..b068b7c7be9aef16673d5ee8e5118f36ff25a225 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101 +++ b/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ## ## Run Parameter ## diff --git a/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz b/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz index 0f7d54649aa53ba9001529c8f774254b791bd1c0..efb1e1531241b383483bab9452d92fdf4fd5fa40 100755 --- a/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz +++ b/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f *.dir *.hdr *.asc file_for_xtransfer diff --git a/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files b/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files index 6718c71c150ee540c8115e7a29d1a798092494e5..9027fa2c1bc80666dccdd3eab46d3a51f4702d5d 100755 --- a/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files +++ b/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files @@ -1,3 +1,4 @@ +#!/bin/bash # # Modif # J.Escobar 11/04/2014 get CHIMIE files from 'dir_open' directory ( without psswd ) diff --git a/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz b/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz index 4c10b3ecde693fd2f874ab8329043eda87636183..b44cf28d0f4c9ce59f442cde398a1ed74a7cccd6 100755 --- a/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz +++ b/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz index 7f9655693757762526f676922fd296d4f3f5c4cd..d6ca4432f5bfc107c36219dc99e4d1b962cb6d9b 100755 --- a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz +++ b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f ICART* CPLCH* OUTPUT_LISTING* pipe* file_for_xtransfer diff --git a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz index 532715ce63d033caf228a45474b8719441cd10ab..5c21c49d56f4abe7f53488e31d98bd99230610a1 100755 --- a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz +++ b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz index fbb097f7b7e37dce7cb8427b6f20d559c2300e77..9db6cfa78a5a375dc8d1d257473e6f2dfd124cab 100755 --- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f ICART* CPLCH* OUTPUT_LISTING* pipe* rm -f EXSEG?.nam PRESSURE file_for_xtransfer diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz index afab5d0c2bf5b5da297145f04e665d7ba38eb598..aa93687ef80aae310a25cbdd25e888a7e15901ea 100755 --- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz b/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz index f92472050cb01176b14e2f67c89ffab23f94c768..95d739c1ad527ef8657e3fb98e79c11e15a12b1f 100755 --- a/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz +++ b/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f ICART* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex rm -f DIAG1.nam file_for_xtransfer diff --git a/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz b/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz index 4b41821542075f506452da5503707e583c1d9d5b..616ce39dd0300bf26457a60d39ecef78c4f40f0f 100755 --- a/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz +++ b/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl index f0711493d7bd2ccaee84e8924030d681a8a98bd7..5d5fb32b602cb7eb68f7c19161242a3e361832a9 100755 --- a/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl +++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f *.png *.nc diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl index af5b7a5b21fca82683f7407ddbba81fb9d5e7c1c..bbcf7df2e4bdfc0ea0a3c39ace71d1ea1075d80a 100755 --- a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl +++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT b/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT index 70960894d0d07cc05a56b56721d0904a2c5f8cdc..6891e0e9d274f456ad57a8828de01e80ca380c44 100755 --- a/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT +++ b/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT @@ -1,7 +1,8 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. set -e make clean -make \ No newline at end of file +make diff --git a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz index 7c1f38fb90776d0315b956f4bb1aeb5d52b58b2a..d417ddca8c05fe7b4feb5eb9644e342b3fe61821 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz @@ -1,3 +1,3 @@ -#!/bin/sh +#!/bin/bash set -x rm -f KWRAIN* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer diff --git a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz index ec28f3148da3b4ed0a51629486fcffab1cec0917..8d16f98b3f00f10a7db286921d21c6ccf47c375b 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz index 20023250b2356369ac4c2f6489fa25a3ffe7fa6b..19de5885418090488fa7cbafc508eeb791fdbade 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f DATAE1 DATAJ1 DATAS1 rm -f KWRAI* OUT* pipe_name PRESSURE REMAP* diff --git a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz index 02331f2de19ab63b744dc80ea55cac5b6794448f..2fc3ad19b8da82c91fc8c6d9e9796610f37c99e8 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia index 95aac374d5c32fb14758d36253783fa7b07d1334..3e4536e706188a81078315a0f0efc8882bc454f9 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia +++ b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f KWRAI.1.SEGCH.004.* rm -f KWRAI.1.SEGCH.004dg.* diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia index bed92be3998e9fed38bee3591fe8df203559c494..15dbc6fa0d9008ce67bf343024a9bffeb869442d 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia +++ b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog index c62daca2aef29a6cf8d9d965f1f714a8f67c4321..9a215110f909a7c8883a8e3d44abb5b8dbe50acb 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f dir.* gmeta KWRAI.1.SEGCH.00* OUT_DIA diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog index 7890b3b087d0c6eaff7c29ddc63ccff122947987..307811a8f4af3792ad742348c6e0793551566777 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog +++ b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl index 1e293b32b69251b001ffce188cda1b53ed5fc0f4..3f7a799f163d1faebcae30394e9e40a6de80898a 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl +++ b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl index b9830c1ecdd95dbb3464830c503a8ee787c63821..d4d91b3c1568fe65698b9519d9c40b8270cbe021 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl +++ b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/011_KW78CHEM/Makefile b/MY_RUN/KTEST/011_KW78CHEM/Makefile old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM b/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM index 59e5a7214bc778c55148fb589135fb85e31a2295..6891e0e9d274f456ad57a8828de01e80ca380c44 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM +++ b/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz b/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz index b3a82c753bc7e1c019dab1d49e3521bb74583cd0..309008c89f588566209a2624e042869315be1121 100755 --- a/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz +++ b/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f *.dir *.hdr file_for_xtransfer diff --git a/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz b/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz index 01d23865247540de73b3cebbce5e0a8db851186d..3448999d7113e03ec7dd78a506ae1c8aae4c2367 100755 --- a/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz +++ b/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x set -e # diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz index 510d6103185c6b3630ca6f15635ebc6e2de6c327..f66246e5a212839da5bd0fcfc41d5d6fad2bbc31 100755 --- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz +++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f S7* pgd* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex PRE_REAL1.nam diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz index cec646c907d63e85dcd99ba275d444432eea9a2e..9d85d71fbafd43690be45d1b7eac753d2ae3ba8c 100755 --- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz +++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -x set -e diff --git a/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz b/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz index e8ff5b3a67bf6a72c8d998808fd656ad237a6388..2d5ddd6554e83d41152e2d24dd478548b7672a4c 100755 --- a/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz +++ b/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f S7* DUST* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex PRESSURE core* pgd* rm -f file_for_xtransfer diff --git a/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz b/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz index 4a796137aef9f7996b8d27a945785bf69c364548..df0dbbe63c90e46f53a3eb7849d3ec2357c04cbd 100755 --- a/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz +++ b/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -x set -e rm -f DUST* OUT* diff --git a/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz b/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz index e8ff5b3a67bf6a72c8d998808fd656ad237a6388..2d5ddd6554e83d41152e2d24dd478548b7672a4c 100755 --- a/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz +++ b/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f S7* DUST* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex PRESSURE core* pgd* rm -f file_for_xtransfer diff --git a/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz b/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz index 33b709308a2ba3a73fa91c77bcf1b2293ccf7097..516ca5846e7e6eea5d846f10e42303088576eb74 100755 --- a/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz +++ b/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -x set -e rm -f DUST* OUT* diff --git a/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia b/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia index 8b4d94dca1a912db313af56c9ff367bb3f680b0e..9b1176bdf2cc5e00f1cc8d88dafbb5e00c1080eb 100755 --- a/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia +++ b/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f DUST7* rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name diff --git a/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia b/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia index 0067ec59281084bb5a715da362656cbf0e4f9755..730b717dfaa9102e903c349f97b537be2fabc291 100755 --- a/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia +++ b/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia @@ -1,3 +1,4 @@ +#!/bin/bash set -x set -e ln -sf ../004_restart/DUST7.1.SEG02.004.lfi . diff --git a/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog b/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog index b723e96a036b269f8d419bc6883e7c8f573271e7..b43ef143fa29d857798b07b0725c14c26f9b1d1c 100755 --- a/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog +++ b/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog @@ -1,2 +1,3 @@ +#!/bin/bash set -x rm -f dir.* gmeta DUST* OUT_DIA diff --git a/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog b/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog index 32a1dda3982b22c9dec38f753a186f2acaf4ddcd..ab5bc445e57ea094c2b5079252a5c3939c5603ab 100755 --- a/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog +++ b/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog @@ -1,3 +1,4 @@ +#!/bin/bash set -x set -e ln -sf ../005_conv2dia/DUST7.1.SEG02.004_dia.lfi . diff --git a/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl b/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl index 88c9bf3061b047ad8b635831fded25bfdf511fbd..aa9f928147719870e032433d1a3ac85b8ed720d9 100755 --- a/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl +++ b/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl @@ -1,3 +1,4 @@ +#!/bin/bash set -x rm -f *.nc rm -f *.ps diff --git a/MY_RUN/KTEST/012_dust/007_ncl/run_ncl b/MY_RUN/KTEST/012_dust/007_ncl/run_ncl index 153224ed0557d77066ba648357527acc6beb939e..533773346b6b442abeb5b03f0e53297bdb5c3f76 100755 --- a/MY_RUN/KTEST/012_dust/007_ncl/run_ncl +++ b/MY_RUN/KTEST/012_dust/007_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash set -x ln -sf ../004_restart/DUST7.1.SEG02.004.nc . diff --git a/MY_RUN/KTEST/012_dust/run_012_dust b/MY_RUN/KTEST/012_dust/run_012_dust index 01e3bbc38ab9c3f2a5bc22f5cd7142d28f730b20..90042728b3b56c37a60e63138fc284888907fd22 100755 --- a/MY_RUN/KTEST/012_dust/run_012_dust +++ b/MY_RUN/KTEST/012_dust/run_012_dust @@ -1,3 +1,4 @@ +#!/bin/bash target=${1:-"all"} set -e make clean diff --git a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_OCEAN b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_OCEAN old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_WAVE b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_WAVE old mode 100755 new mode 100644 diff --git a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files index 37c0a7a3fa58550335e74340b609d830d824d682..87a41a0271a3636f3ffb3a6184a1a489b7d5d4f9 100755 --- a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files +++ b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files @@ -1,3 +1,4 @@ +#!/bin/bash # # Modif # J.Escobar 11/04/2014 get PGD files from 'dir_open' directory ( without psswd ) diff --git a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz index 0d4a2f9bc3923e3a29e6e48da9c8d799360847b8..7c075de7c95751927747bc74ce5331a9e645eb16 100755 --- a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz @@ -1 +1,2 @@ +#!/bin/bash rm -f SCHAR-JUNGFRAU.* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer diff --git a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz index 7cceb12bf853e6f64fb7b3b75281308b12c3106f..228ed37ae65e0acc6fc6afcf13643ca4bf3f6e6f 100755 --- a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz +++ b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz index 837f7fae1e173c05fab37fbf4eaf8a07b5d60ac0..6cba405053453ae714987c5aa240bcfe9c293fe9 100755 --- a/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz +++ b/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz @@ -1,2 +1,3 @@ +#!/bin/bash rm -f SCHAR-JUNGFRAU* pipe_name PRESSURE file_for_xtransfer rm -f XPREF.1.SEG01* OUT* diff --git a/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz index 2217236add7c38348207e42bad84f08b787c44bb..77977e8ed7f45f28eaf5f5a3740979b3153e3558 100755 --- a/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl index 1238c9b0fc6bf2b92d06c8c83e49e35565b3ac08..ef83c16a5de17b683dd873050ef83dedfa0a005d 100755 --- a/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl +++ b/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl @@ -1,2 +1,2 @@ - +#!/bin/bash rm -f *.nc *.png diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl index e4da2340c321aa464d7e891ee56364e2fabbe473..63e7d910aeb3ee2c8763ff8b970ea94992e1ddbd 100755 --- a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl +++ b/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl @@ -1,3 +1,4 @@ +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_aeropc_default b/conf/post/confdollar_aeropc_default index d3098464496ad7f966858b1331f8cd6847671fd4..9f48f71ffe717b200dab635542d99bc328684f69 100755 --- a/conf/post/confdollar_aeropc_default +++ b/conf/post/confdollar_aeropc_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_babel_default b/conf/post/confdollar_babel_default index f4e621f2510411171683876ecd6961972a757feb..def43a3948591e9feeb4845e50ea852ebb39aa32 100755 --- a/conf/post/confdollar_babel_default +++ b/conf/post/confdollar_babel_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_brodie_default b/conf/post/confdollar_brodie_default index 69b9fdf40fce715cee3e83f0773213869b43e467..a5df9201519f7190e595291c2bfef01f5e44afa0 100755 --- a/conf/post/confdollar_brodie_default +++ b/conf/post/confdollar_brodie_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_c1a_default b/conf/post/confdollar_c1a_default index be07b4b1a8aa80ad637063e160366cf2bb518e5b..ec80ed44fd5f656be1176e5082256eb7fc51d649 100755 --- a/conf/post/confdollar_c1a_default +++ b/conf/post/confdollar_c1a_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_cnrmpc_default b/conf/post/confdollar_cnrmpc_default index 1ca5a914ec7b01affadb25bdce8b642301029af6..5bf51d02bce359ee79fed59fb8bc647d9566eedc 100644 --- a/conf/post/confdollar_cnrmpc_default +++ b/conf/post/confdollar_cnrmpc_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_dsinec_default b/conf/post/confdollar_dsinec_default index 3463e294c8a156ce83a4736e8b82b7447bdd1f43..6cbb81e1e1928a8d462897d9b11d105bdfc70c44 100755 --- a/conf/post/confdollar_dsinec_default +++ b/conf/post/confdollar_dsinec_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_eos_default b/conf/post/confdollar_eos_default index 51adf76e8480cc66522089b8bf865bda1e51bf67..82c376ebf1a22e8ebe0bc61041bb8ed6f7991cf6 100755 --- a/conf/post/confdollar_eos_default +++ b/conf/post/confdollar_eos_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_jade_default b/conf/post/confdollar_jade_default index 21b6ba10bd265f98f92f76684efd86a14eee3dc9..b46a4ca3674d0cc60844b849c636b52c01811a5d 100755 --- a/conf/post/confdollar_jade_default +++ b/conf/post/confdollar_jade_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_occigen_default b/conf/post/confdollar_occigen_default index f69527eb587f170557dd59efb285c6db0a40cebf..04dd9654a2a92937b7e4bc0b752c4bcb657bd6e0 100755 --- a/conf/post/confdollar_occigen_default +++ b/conf/post/confdollar_occigen_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_titane_default b/conf/post/confdollar_titane_default index e75b9c37830a7209dbbd6c05d734cb497f1cc956..8cd933af1adad36acd3aa6d7cd312662c4d4eb3d 100755 --- a/conf/post/confdollar_titane_default +++ b/conf/post/confdollar_titane_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_turing_default b/conf/post/confdollar_turing_default index 6a44a25de1c3d0e941b5348e04e5cad6282c7a01..c2d3fd56b0a6c07b1caa95cbaf6961f8904fc0e0 100755 --- a/conf/post/confdollar_turing_default +++ b/conf/post/confdollar_turing_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/conf/post/confdollar_vargas_default b/conf/post/confdollar_vargas_default index a56463ba054dcd69762d6275eb731f250bc4c0d6..e58ab2373afae94e677acd99322994fce7252b10 100755 --- a/conf/post/confdollar_vargas_default +++ b/conf/post/confdollar_vargas_default @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt diff --git a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 deleted file mode 100644 index 86da117ed5743c6b1d1d05930909fccdd400e71a..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 +++ /dev/null @@ -1,1428 +0,0 @@ -!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!! Authors -!! ------- -! -! R. Guivarch, D. Lugato * CERFACS * -! Ph. Kloos * CERFACS - CNRM * -! -!! Modifications -!! ------------- -! Original 01/05/98 -! Juan 19/08/2005: modification INTENT -> INTENT(INOUT) -! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine -!----------------------------------------------------------------- - -! -!! ################################################# - SUBROUTINE ADD_FIELD2_ll( TPLIST_ll, TPHALO2_ll ) -!! ################################################# -! - USE MODE_ARGSLIST2_ll, ONLY : E_ADD_FIELD2_ll => ADD_FIELD2_ll -! - USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll -! - TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll - TYPE(HALO2_ll), TARGET :: TPHALO2_ll -! - CALL E_ADD_FIELD2_ll( TPLIST_ll, TPHALO2_ll ) -! - END SUBROUTINE ADD_FIELD2_ll -! -!! ######################################################## - SUBROUTINE DEL_FIELD2_ll( TPLIST_ll, TPHALO2_ll, KINFO ) -!! ######################################################## -! - USE MODE_ARGSLIST2_ll, ONLY : E_DEL_FIELD2_ll => DEL_FIELD2_ll -! - USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll -! - TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll - TYPE(HALO2_ll), TARGET :: TPHALO2_ll - INTEGER :: KINFO -! - CALL E_DEL_FIELD2_ll( TPLIST_ll, TPHALO2_ll, KINFO ) -! - END SUBROUTINE DEL_FIELD2_ll - -! -!! ####################################################### - SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME ) -!! ####################################################### -! - USE MODE_ARGSLIST_ll, ONLY : E_ADD1DFIELD_ll => ADD1DFIELD_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll -! - CHARACTER(LEN=1), INTENT(IN) :: HDIR - TYPE(LIST1D_ll), POINTER :: TPLIST - REAL, DIMENSION(:), TARGET :: PFIELD - character(len=*), intent(in) :: HNAME ! Name of the field to be added -! - CALL E_ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME ) -! - END SUBROUTINE ADD1DFIELD_ll -! -!! ################################################# - SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME ) -!! ################################################# -! - USE MODE_ARGSLIST_ll, ONLY : E_ADD2DFIELD_ll => ADD2DFIELD_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST - REAL, DIMENSION(:,:), TARGET :: PFIELD - character(len=*), intent(in) :: HNAME ! Name of the field to be added -! - CALL E_ADD2DFIELD_ll( TPLIST, PFIELD, HNAME ) -! - END SUBROUTINE ADD2DFIELD_ll -! -!! ################################################# - SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME ) -!! ################################################# -! - USE MODE_ARGSLIST_ll, ONLY : E_ADD3DFIELD_ll => ADD3DFIELD_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST - REAL, DIMENSION(:,:,:), TARGET :: PFIELD - character(len=*), intent(in) :: HNAME ! Name of the field to be added -! - CALL E_ADD3DFIELD_ll( TPLIST, PFIELD, HNAME ) -! - END SUBROUTINE ADD3DFIELD_ll -! -!! ################################################# - SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME ) -!! ################################################# -! - USE MODE_ARGSLIST_ll, ONLY : E_ADD4DFIELD_ll => ADD4DFIELD_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - type(list_ll), pointer :: tplist ! list of fields - real, dimension(:,:,:,:), intent(in) :: pfield ! field to be added to the list of fields - character(len=*), intent(in) :: hname ! name of the field to be added -! - CALL E_ADD4DFIELD_ll( TPLIST, PFIELD, HNAME ) -! - END SUBROUTINE ADD4DFIELD_ll -! -!! ################################################# - SUBROUTINE DEL1DFIELD_ll( TPLIST, PFIELD, KINFO ) -!! ################################################# -! - USE MODE_ARGSLIST_ll, ONLY : E_DEL1DFIELD_ll => DEL1DFIELD_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll -! - TYPE(LIST1D_ll), POINTER :: TPLIST - REAL, DIMENSION(:), TARGET :: PFIELD - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_DEL1DFIELD_ll( TPLIST, PFIELD, KINFO ) -! - END SUBROUTINE DEL1DFIELD_ll -! -!! ################################################# - SUBROUTINE DEL2DFIELD_ll( TPLIST, PFIELD, KINFO ) -!! ################################################# -! - USE MODE_ARGSLIST_ll, ONLY : E_DEL2DFIELD_ll => DEL2DFIELD_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST - REAL, DIMENSION(:,:), TARGET :: PFIELD - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_DEL2DFIELD_ll( TPLIST, PFIELD, KINFO ) -! - END SUBROUTINE DEL2DFIELD_ll -! -!! ################################################# - SUBROUTINE DEL3DFIELD_ll( TPLIST, PFIELD, KINFO ) -!! ################################################# -! - USE MODE_ARGSLIST_ll, ONLY : E_DEL3DFIELD_ll => DEL3DFIELD_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST - REAL, DIMENSION(:,:,:), TARGET :: PFIELD - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_DEL3DFIELD_ll( TPLIST, PFIELD, KINFO ) -! - END SUBROUTINE DEL3DFIELD_ll -! -!! ################################# - SUBROUTINE CLEANLIST_ll( TPLIST ) -!! ################################# -! - USE MODE_ARGSLIST_ll, ONLY : E_CLEANLIST_ll => CLEANLIST_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST -! - CALL E_CLEANLIST_ll( TPLIST ) -! - END SUBROUTINE CLEANLIST_ll -! -!! ################################## - SUBROUTINE END_PARA_ll( KINFO_ll ) -!! ################################## -! - USE MODE_INIT_ll, ONLY : E_END_PARA_ll => END_PARA_ll -! - INTEGER, INTENT(OUT) :: KINFO_ll -! - CALL E_END_PARA_ll( KINFO_ll ) -! - END SUBROUTINE END_PARA_ll -! -!! ################################################## - SUBROUTINE GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM ) -!! ################################################## -! - USE MODE_TOOLS_ll, ONLY : E_GET_DIM_EXT_ll => GET_DIM_EXT_ll -! - CHARACTER(len=1), INTENT(IN) :: HSPLIT - INTEGER, INTENT(OUT) :: KXDIM, KYDIM -! - CALL E_GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM ) -! - END SUBROUTINE GET_DIM_EXT_ll -! -!! ################################################### - SUBROUTINE GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM ) -!! ################################################### -! - USE MODE_TOOLS_ll, ONLY : E_GET_DIM_PHYS_ll => GET_DIM_PHYS_ll -! - CHARACTER(len=1), INTENT(IN) :: HSPLIT - INTEGER, INTENT(OUT) :: KXDIM, KYDIM -! - CALL E_GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM ) -! - END SUBROUTINE GET_DIM_PHYS_ll -! -!! ########################################## - SUBROUTINE GET_OR_ll( HSPLIT, KXOR, KYOR ) -!! ########################################## -! - USE MODE_TOOLS_ll, ONLY : E_GET_OR_ll => GET_OR_ll -! - CHARACTER(len=1), INTENT(IN) :: HSPLIT - INTEGER, INTENT(OUT) :: KXOR, KYOR -! - CALL E_GET_OR_ll( HSPLIT, KXOR, KYOR ) -! - END SUBROUTINE GET_OR_ll -! -!! #################################################### - SUBROUTINE GET_INDICE_ll( KXOR, KYOR, KXEND, KYEND ) -!! #################################################### -! - USE MODE_TOOLS_ll, ONLY : E_GET_INDICE_ll => GET_INDICE_ll -! - INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND -! - CALL E_GET_INDICE_ll( KXOR, KYOR, KXEND, KYEND ) -! - END SUBROUTINE GET_INDICE_ll -! -!! ############################################ - SUBROUTINE GET_GLOBALDIMS_ll( KIMAX, KJMAX ) -!! ############################################ -! - USE MODE_TOOLS_ll, ONLY : E_GET_GLOBALDIMS_ll => GET_GLOBALDIMS_ll -! - INTEGER, INTENT(OUT) :: KIMAX, KJMAX -! - CALL E_GET_GLOBALDIMS_ll( KIMAX, KJMAX ) -! - END SUBROUTINE GET_GLOBALDIMS_ll -! -!! ###################################################### - SUBROUTINE GET_PHYSICAL_ll( KXOR, KYOR, KXEND, KYEND ) -!! ###################################################### -! - USE MODE_TOOLS_ll, ONLY : E_GET_PHYSICAL_ll => GET_PHYSICAL_ll -! - INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND -! - CALL E_GET_PHYSICAL_ll( KXOR, KYOR, KXEND, KYEND ) -! - END SUBROUTINE GET_PHYSICAL_ll -! -!! ############################################################### - SUBROUTINE GET_INTERSECTION_ll( KXOR, KYOR, KXEND, KYEND, & - KXORI, KYORI, KXENDI, KYENDI, & - HDOM, KINFO, KIP ) -!! ############################################################### -! - USE MODE_TOOLS_ll, ONLY : E_GET_INTERSECTION_ll => GET_INTERSECTION_ll -! - CHARACTER(LEN=4), INTENT(IN) :: HDOM - INTEGER, INTENT(IN) :: KXOR, KYOR, KXEND, KYEND - INTEGER, INTENT(OUT) :: KXORI, KYORI, KXENDI, KYENDI - INTEGER, INTENT(OUT) :: KINFO - INTEGER, INTENT(IN), OPTIONAL :: KIP -! - CALL E_GET_INTERSECTION_ll( KXOR, KYOR, KXEND, KYEND, & - KXORI, KYORI, KXENDI, KYENDI, & - HDOM, KINFO, KIP ) -! - END SUBROUTINE GET_INTERSECTION_ll -! -!! #################################################################### - SUBROUTINE GET_1DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, & - KB, KE, KERR ) -!! #################################################################### -! - USE MODE_TOOLS_ll, ONLY : E_GET_1DGLOBALSLICE_ll => GET_1DGLOBALSLICE_ll -! - REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY - CHARACTER(LEN=1), INTENT(IN) :: HDIR - INTEGER, INTENT(IN) :: KLOC - REAL, DIMENSION(:), INTENT(OUT) :: PGLOBALSLICE - INTEGER, OPTIONAL :: KB, KE, KERR -! - CALL E_GET_1DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, KB, KE, KERR ) -! - END SUBROUTINE GET_1DGLOBALSLICE_ll -! -!! #################################################################### - SUBROUTINE GET_2DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, & - KB, KE, KKB, KKE, KERR ) -!! #################################################################### -! - USE MODE_TOOLS_ll, ONLY : E_GET_2DGLOBALSLICE_ll => GET_2DGLOBALSLICE_ll -! - REAL, DIMENSION(:,:,:) :: PARRAY - CHARACTER(LEN=1) :: HDIR - INTEGER :: KLOC - REAL, DIMENSION(:,:) :: PGLOBALSLICE - INTEGER, OPTIONAL :: KB, KE, KKB, KKE, KERR -! - CALL E_GET_2DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, & - KB, KE, KKB, KKE, KERR ) -! - END SUBROUTINE GET_2DGLOBALSLICE_ll -! -!! ##################################################################### - SUBROUTINE GET_1DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, KB, KE, KERR ) -!! ##################################################################### -! - USE MODE_TOOLS_ll, ONLY : E_GET_1DSLICE_ll => GET_1DSLICE_ll -! - REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY - CHARACTER(LEN=1), INTENT(IN) :: HDIR - INTEGER, INTENT(IN) :: KLOC - REAL, DIMENSION(:), INTENT(OUT) :: PSLICE - INTEGER, OPTIONAL :: KB, KE, KERR -! - CALL E_GET_1DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, KB, KE, KERR ) -! - END SUBROUTINE GET_1DSLICE_ll -! -!! ######################################################## - SUBROUTINE GET_2DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, & - KB, KE, KKB, KKE, KERR ) -!! ######################################################## -! - USE MODE_TOOLS_ll, ONLY : E_GET_2DSLICE_ll => GET_2DSLICE_ll -! - REAL, DIMENSION(:,:,:) :: PARRAY - CHARACTER(LEN=1) :: HDIR - INTEGER :: KLOC - REAL, DIMENSION(:,:) :: PSLICE - INTEGER, OPTIONAL :: KB, KE, KKB, KKE, KERR -! - CALL E_GET_2DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, & - KB, KE, KKB, KKE, KERR ) -! - END SUBROUTINE GET_2DSLICE_ll -! -!! ################################## - SUBROUTINE INI_PARA_ll( KINFO_ll ) -!! ################################## -! - USE MODE_INIT_ll, ONLY : E_INI_PARA_ll => INI_PARA_ll -! - INTEGER, INTENT(OUT) :: KINFO_ll -! - CALL E_INI_PARA_ll( KINFO_ll ) -! - END SUBROUTINE INI_PARA_ll -! -! ######################################### - SUBROUTINE SET_SPLITTING_ll( HSPLITTING ) -! ######################################### -! - USE MODE_INIT_ll, ONLY : E_SET_SPLITTING_ll=>SET_SPLITTING_ll -! - CHARACTER(LEN=*) :: HSPLITTING -! - CALL E_SET_SPLITTING_ll(HSPLITTING) -! - END SUBROUTINE SET_SPLITTING_ll -! -! ################################## - SUBROUTINE SET_LBX_ll( KLBX, KMI ) -! ################################## -! - USE MODE_INIT_ll, ONLY : E_SET_LBX_ll=>SET_LBX_ll -! - CHARACTER(LEN=*) :: KLBX - INTEGER :: KMI -! - CALL E_SET_LBX_ll(KLBX, KMI) -! - END SUBROUTINE SET_LBX_ll -! -! ################################## - SUBROUTINE SET_LBY_ll( KLBY, KMI ) -! ################################### -! - USE MODE_INIT_ll, ONLY : E_SET_LBY_ll=>SET_LBY_ll -! - CHARACTER(LEN=*) :: KLBY - INTEGER :: KMI -! - CALL E_SET_LBY_ll(KLBY, KMI) -! - END SUBROUTINE SET_LBY_ll -! -! ############################################ - SUBROUTINE SET_LBSIZEX_ll( KNBRIM, KRIMTAB ) -! ############################################ -! - USE MODE_LB_ll, ONLY : E_SET_LBSIZEX_ll => SET_LBSIZEX_ll -! - INTEGER :: KNBRIM - INTEGER, DIMENSION(:) :: KRIMTAB -! - CALL E_SET_LBSIZEX_ll(KNBRIM, KRIMTAB) -! - END SUBROUTINE SET_LBSIZEX_ll -! -! ############################################ - SUBROUTINE SET_LBSIZEY_ll( KNBRIM, KRIMTAB ) -! ############################################ -! - USE MODE_LB_ll, ONLY : E_SET_LBSIZEY_ll => SET_LBSIZEY_ll -! - INTEGER :: KNBRIM - INTEGER, DIMENSION(:) :: KRIMTAB -! - CALL E_SET_LBSIZEY_ll(KNBRIM, KRIMTAB) -! - END SUBROUTINE SET_LBSIZEY_ll -! -! ################################### - SUBROUTINE SET_DIM_ll( KX, KY, KZ ) -! ################################### -! - USE MODE_INIT_ll, ONLY : E_SET_DIM_ll=>SET_DIM_ll -! - INTEGER :: KX,KY,KZ -! - CALL E_SET_DIM_ll(KX, KY, KZ) -! - END SUBROUTINE SET_DIM_ll -! -! ####################################################### - SUBROUTINE SET_JP_ll( KMODELMAX, KHEXT, KVEXT, KPHALO ) -! ####################################################### -! - USE MODE_INIT_ll, ONLY : E_SET_JP_ll=>SET_JP_ll - IMPLICIT NONE -! - INTEGER :: KMODELMAX, KHEXT, KVEXT, KPHALO -! - CALL E_SET_JP_ll(KMODELMAX, KHEXT, KVEXT, KPHALO) -! - END SUBROUTINE SET_JP_ll -! -! ######################################## - SUBROUTINE SET_XRATIO_ll( KXRATIO, KMI ) -! ######################################## -! - USE MODE_INIT_ll, ONLY : E_SET_XRATIO_ll=>SET_XRATIO_ll -! - INTEGER :: KXRATIO, KMI -! - CALL E_SET_XRATIO_ll(KXRATIO, KMI) -! - END SUBROUTINE SET_XRATIO_ll -! -! ######################################## - SUBROUTINE SET_YRATIO_ll( KYRATIO, KMI ) -! ######################################## -! - USE MODE_INIT_ll, ONLY : E_SET_YRATIO_ll=>SET_YRATIO_ll -! - INTEGER :: KYRATIO, KMI -! - CALL E_SET_YRATIO_ll(KYRATIO, KMI) -! - END SUBROUTINE SET_YRATIO_ll -! -! ################################## - SUBROUTINE SET_DAD_ll( KDAD, KMI ) -! ################################## -! - USE MODE_INIT_ll, ONLY : E_SET_DAD_ll=>SET_DAD_ll -! - INTEGER :: KDAD, KMI -! - CALL E_SET_DAD_ll(KDAD, KMI) -! - END SUBROUTINE SET_DAD_ll -! -! ################################## - SUBROUTINE SET_XOR_ll( KXOR, KMI ) -! ################################## -! - USE MODE_INIT_ll, ONLY : E_SET_XOR_ll=>SET_XOR_ll -! - INTEGER :: KXOR, KMI -! - CALL E_SET_XOR_ll(KXOR, KMI) -! - END SUBROUTINE SET_XOR_ll -! -! #################################### - SUBROUTINE SET_XEND_ll( KXEND, KMI ) -! #################################### -! - USE MODE_INIT_ll, ONLY : E_SET_XEND_ll=>SET_XEND_ll -! - INTEGER :: KXEND, KMI -! - CALL E_SET_XEND_ll(KXEND, KMI) -! - END SUBROUTINE SET_XEND_ll -! -! ################################## - SUBROUTINE SET_YOR_ll( KYOR, KMI ) -! ################################## -! - USE MODE_INIT_ll, ONLY : E_SET_YOR_ll=>SET_YOR_ll -! - INTEGER :: KYOR, KMI -! - CALL E_SET_YOR_ll(KYOR, KMI) -! - END SUBROUTINE SET_YOR_ll -! -! #################################### - SUBROUTINE SET_YEND_ll( KYEND, KMI ) -! #################################### -! - USE MODE_INIT_ll, ONLY : E_SET_YEND_ll=>SET_YEND_ll -! - INTEGER :: KYEND, KMI -! - CALL E_SET_YEND_ll(KYEND, KMI) -! - END SUBROUTINE SET_YEND_ll -! -! ######################## - SUBROUTINE SET_DAD0_ll() -! ######################## -! - USE MODE_INIT_ll, ONLY : E_SET_DAD0_ll=>SET_DAD0_ll -! - CALL E_SET_DAD0_ll() -! - END SUBROUTINE SET_DAD0_ll -! -! ####################### - SUBROUTINE INIT_LB_ll() -! ####################### -! - USE MODE_LB_ll, ONLY : E_INIT_LB_ll => INIT_LB_ll -! - CALL E_INIT_LB_ll() -! - END SUBROUTINE INIT_LB_ll -! -! ####################### - SUBROUTINE SET_LB_FIELD_ll(HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB, IIE, IJE, & - SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ) -! ####################### -! - USE MODE_LB_ll, ONLY : E_SET_LB_FIELD_ll => SET_LB_FIELD_ll -! - CHARACTER(LEN=*),INTENT(IN) :: HLBTYPE ! LB type : 'LB','LBU' - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! field on the whole domain (or subdomain) - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBXFIELD ! LB field - X direction - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBYFIELD ! LB field - Y direction - !beginning and end of the local physical subdomain - INTEGER, INTENT(IN) :: IIB ! indice I Beginning in x direction - INTEGER, INTENT(IN) :: IJB ! indice J Beginning in y direction - INTEGER, INTENT(IN) :: IIE ! indice I End in x direction - INTEGER, INTENT(IN) :: IJE ! indice J End in y direction - INTEGER, INTENT(IN) :: SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ! shifting applied to the indices copied from PFIELD in each direction - ! it is used for LBXUM et LBXVM - ! I do not know why... -! - CALL E_SET_LB_FIELD_ll(HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB, IIE, IJE, & - SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ) -! - END SUBROUTINE SET_LB_FIELD_ll -! -!! ################################### - FUNCTION LNORTH_ll( K, HSPLITTING ) -!! ################################### -! - USE MODE_TOOLS_ll, ONLY : E_LNORTH_ll => LNORTH_ll -! - LOGICAL :: LNORTH_ll - INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING -! - LNORTH_ll=E_LNORTH_ll( K, HSPLITTING ) -! - END FUNCTION LNORTH_ll -! -!! ################################## - FUNCTION LWEST_ll( K, HSPLITTING ) -!! ################################## -! - USE MODE_TOOLS_ll, ONLY : E_LWEST_ll => LWEST_ll -! - LOGICAL :: LWEST_ll - INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING -! - LWEST_ll=E_LWEST_ll( K, HSPLITTING ) -! - END FUNCTION LWEST_ll -! -!! ################################## - FUNCTION LEAST_ll( K, HSPLITTING ) -!! ################################## -! - USE MODE_TOOLS_ll, ONLY : E_LEAST_ll => LEAST_ll -! - LOGICAL :: LEAST_ll - INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING -! - LEAST_ll=E_LEAST_ll( K, HSPLITTING ) -! - END FUNCTION LEAST_ll -! -!! ########################################### - FUNCTION LSOUTH_ll( K, HSPLITTING ) -!! ########################################### -! - USE MODE_TOOLS_ll, ONLY : E_LSOUTH_ll => LSOUTH_ll -! - LOGICAL :: LSOUTH_ll - INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING -! - LSOUTH_ll=E_LSOUTH_ll( K, HSPLITTING ) -! - END FUNCTION LSOUTH_ll -! -! ############################################### - SUBROUTINE GET_MODEL_NUMBER_ll( KMODEL_NUMBER ) -! ############################################### -! - USE MODE_NEST_ll, ONLY : E_GET_MODEL_NUMBER_ll => GET_MODEL_NUMBER_ll -! - INTEGER :: KMODEL_NUMBER -! - CALL E_GET_MODEL_NUMBER_ll( KMODEL_NUMBER ) -! - END SUBROUTINE GET_MODEL_NUMBER_ll -! -! #################################################### - SUBROUTINE GET_CHILD_DIM_ll( KCHILD, KX, KY, KINFO ) -! #################################################### -! - USE MODE_NEST_ll, ONLY : E_GET_CHILD_DIM_ll => GET_CHILD_DIM_ll -! - INTEGER, INTENT(IN) :: KCHILD -! - INTEGER, INTENT(OUT) :: KX, KY -! - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_GET_CHILD_DIM_ll( KCHILD, KX, KY, KINFO ) -! - END SUBROUTINE GET_CHILD_DIM_ll -! -! ################################################################### - SUBROUTINE GET_FEEDBACK_COORD_ll( KXOR, KYOR, KXEND, KYEND, KINFO ) -! ################################################################### -! - USE MODE_NEST_ll, ONLY : E_GET_FEEDBACK_COORD_ll => GET_FEEDBACK_COORD_ll -! - INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_GET_FEEDBACK_COORD_ll( KXOR, KYOR, KXEND, KYEND, KINFO ) -! - END SUBROUTINE GET_FEEDBACK_COORD_ll -! -! ############################################################# - SUBROUTINE SET_LS2DFIELD_1WAY_ll( P2DFIELD, PTFIELD, KMODEL ) -! ############################################################# -! - USE MODE_LS_ll, ONLY : E_SET_LS2DFIELD_1WAY_ll => SET_LS2DFIELD_1WAY_ll -! - REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD - INTEGER, INTENT(IN) :: KMODEL -! - CALL E_SET_LS2DFIELD_1WAY_ll( P2DFIELD, PTFIELD, KMODEL ) -! - END SUBROUTINE SET_LS2DFIELD_1WAY_ll -! -! ############################################################# - SUBROUTINE SET_LS3DFIELD_1WAY_ll( P3DFIELD, PTFIELD, KMODEL ) -! ############################################################# -! - USE MODE_LS_ll, ONLY : E_SET_LS3DFIELD_1WAY_ll => SET_LS3DFIELD_1WAY_ll -! - REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD - INTEGER, INTENT(IN) :: KMODEL -! - CALL E_SET_LS3DFIELD_1WAY_ll( P3DFIELD, PTFIELD, KMODEL ) -! - END SUBROUTINE SET_LS3DFIELD_1WAY_ll -! -! ################################## - SUBROUTINE UNSET_LSFIELD_1WAY_ll() -! ################################## -! - USE MODE_LS_ll, ONLY : E_UNSET_LSFIELD_1WAY_ll => UNSET_LSFIELD_1WAY_ll -! - CALL E_UNSET_LSFIELD_1WAY_ll() -! - END SUBROUTINE UNSET_LSFIELD_1WAY_ll -! -! ##################################################### - SUBROUTINE SET_LS2DFIELD_2WAY_ll( P2DFIELD, PTFIELD ) -! ##################################################### -! - USE MODE_LS_ll, ONLY : E_SET_LS2DFIELD_2WAY_ll => SET_LS2DFIELD_2WAY_ll -! - REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD -! - CALL E_SET_LS2DFIELD_2WAY_ll( P2DFIELD, PTFIELD ) -! - END SUBROUTINE SET_LS2DFIELD_2WAY_ll -! -! ##################################################### - SUBROUTINE SET_LS3DFIELD_2WAY_ll( P3DFIELD, PTFIELD ) -! ##################################################### -! - USE MODE_LS_ll, ONLY : E_SET_LS3DFIELD_2WAY_ll => SET_LS3DFIELD_2WAY_ll -! - REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD -! - CALL E_SET_LS3DFIELD_2WAY_ll( P3DFIELD, PTFIELD ) -! - END SUBROUTINE SET_LS3DFIELD_2WAY_ll -! -! ########################################## - SUBROUTINE UNSET_LSFIELD_2WAY_ll( KMODEL ) -! ########################################## -! - USE MODE_LS_ll, ONLY : E_UNSET_LSFIELD_2WAY_ll => UNSET_LSFIELD_2WAY_ll -! - INTEGER, INTENT(IN) :: KMODEL -! - CALL E_UNSET_LSFIELD_2WAY_ll( KMODEL ) -! - END SUBROUTINE UNSET_LSFIELD_2WAY_ll -! -! ######################################### - SUBROUTINE LS_FORCING_ll( KCHILD, KINFO, OEXTRAPOL, OCYCLIC_EXTRAPOL ) -! ######################################### -! - USE MODE_LS_ll, ONLY : E_LS_FORCING_ll => LS_FORCING_ll -! - INTEGER, INTENT(IN) :: KCHILD - INTEGER, INTENT(OUT) :: KINFO - LOGICAL, OPTIONAL, INTENT(IN) :: OEXTRAPOL - LOGICAL, OPTIONAL, INTENT(IN) :: OCYCLIC_EXTRAPOL -! - IF ( PRESENT(OEXTRAPOL) .AND. PRESENT(OCYCLIC_EXTRAPOL) ) THEN - CALL E_LS_FORCING_ll( KCHILD, KINFO, OEXTRAPOL, OCYCLIC_EXTRAPOL ) - ELSEIF ( PRESENT(OEXTRAPOL) ) THEN - CALL E_LS_FORCING_ll( KCHILD, KINFO, OEXTRAPOL ) - ELSE - CALL E_LS_FORCING_ll( KCHILD, KINFO ) - ENDIF -! - END SUBROUTINE LS_FORCING_ll -! -! ################################### - SUBROUTINE LS_FEEDBACK_ll( KINFO ) -! ################################### -! - USE MODE_LS_ll, ONLY : E_LS_FEEDBACK_ll => LS_FEEDBACK_ll -! - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_LS_FEEDBACK_ll( KINFO ) -! - END SUBROUTINE LS_FEEDBACK_ll -! -! ############################################################## - SUBROUTINE SET_LB2DFIELD_ll( P2DFIELD, PTFIELD, KFINELBSIZE, & - HSIDE, KMODEL ) -! ############################################################## -! - USE MODE_LB_ll, ONLY : E_SET_LB2DFIELD_ll => SET_LB2DFIELD_ll -! - REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD - INTEGER, INTENT(IN) :: KFINELBSIZE, KMODEL - CHARACTER(LEN=*), INTENT(IN) :: HSIDE -! - CALL E_SET_LB2DFIELD_ll( P2DFIELD, PTFIELD, KFINELBSIZE, & - HSIDE, KMODEL ) -! - END SUBROUTINE SET_LB2DFIELD_ll -! -! ############################################################## - SUBROUTINE SET_LB3DFIELD_ll( P3DFIELD, PTFIELD, KFINELBSIZE, & - HSIDE, KMODEL ) -! ############################################################## -! - USE MODE_LB_ll, ONLY : E_SET_LB3DFIELD_ll => SET_LB3DFIELD_ll -! - REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD - INTEGER, INTENT(IN) :: KFINELBSIZE, KMODEL - CHARACTER(LEN=*), INTENT(IN) :: HSIDE -! - CALL E_SET_LB3DFIELD_ll( P3DFIELD, PTFIELD, KFINELBSIZE, & - HSIDE, KMODEL ) -! - END SUBROUTINE SET_LB3DFIELD_ll -! -! ############################# - SUBROUTINE UNSET_LBFIELD_ll() -! ############################# -! - USE MODE_LB_ll, ONLY : E_UNSET_LBFIELD_ll => UNSET_LBFIELD_ll -! - CALL E_UNSET_LBFIELD_ll() -! - END SUBROUTINE UNSET_LBFIELD_ll -! -! ######################################### - SUBROUTINE LB_FORCING_ll( KCHILD, KINFO ) -! ######################################### -! - USE MODE_LB_ll, ONLY : E_LB_FORCING_ll => LB_FORCING_ll -! - INTEGER, INTENT(IN) :: KCHILD - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_LB_FORCING_ll( KCHILD, KINFO ) -! - END SUBROUTINE LB_FORCING_ll -! -!! ########################################################### - FUNCTION LBFINE2COARSE( KRATIO, KLBSIZE ) RESULT( KCOARSE ) -!! ########################################################### -! - USE MODE_NEST_ll, ONLY : E_LBFINE2COARSE => LBFINE2COARSE - IMPLICIT NONE -! - INTEGER :: KCOARSE - INTEGER :: KRATIO, KLBSIZE -! - KCOARSE = E_LBFINE2COARSE( KRATIO, KLBSIZE ) -! - END FUNCTION LBFINE2COARSE -! -! ######################################### - SUBROUTINE GO_TOMODEL_ll( KMODEL, KINFO ) -! ######################################### -! - USE MODE_NEST_ll, ONLY : E_GO_TOMODEL_ll => GO_TOMODEL_ll - IMPLICIT NONE -! - INTEGER :: KMODEL, KINFO -! - CALL E_GO_TOMODEL_ll( KMODEL, KINFO ) -! - END SUBROUTINE GO_TOMODEL_ll -! -!! ######################################################## - SUBROUTINE REMAP_2WAY_X_ll( PFIELDIN, PFIELDOUT, KINFO ) -!! ######################################################## -! - USE MODE_EXCHANGE_ll, ONLY : E_REMAP_2WAY_X_ll => REMAP_2WAY_X_ll -! - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDIN - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT - INTEGER :: KINFO -! - CALL E_REMAP_2WAY_X_ll( PFIELDIN, PFIELDOUT, KINFO ) -! - END SUBROUTINE REMAP_2WAY_X_ll -! -! ######################################################## - SUBROUTINE REMAP_X_2WAY_ll( PFIELDIN, PFIELDOUT, KINFO ) -! ######################################################## -! - USE MODE_EXCHANGE_ll, ONLY : E_REMAP_X_2WAY_ll => REMAP_X_2WAY_ll -! - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDIN - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT - INTEGER :: KINFO -! - CALL E_REMAP_X_2WAY_ll( PFIELDIN, PFIELDOUT, KINFO ) -! - END SUBROUTINE REMAP_X_2WAY_ll -! -! ##################################################### - SUBROUTINE REMAP_X_Y_ll( PFIELDIN, PFIELDOUT, KINFO ) -! ##################################################### -! - USE MODE_EXCHANGE_ll, ONLY : E_REMAP_X_Y_ll => REMAP_X_Y_ll -! - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDIN - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT - INTEGER :: KINFO -! - CALL E_REMAP_X_Y_ll( PFIELDIN, PFIELDOUT, KINFO ) -! - END SUBROUTINE REMAP_X_Y_ll -! -! ##################################################### - SUBROUTINE REMAP_Y_X_ll( PFIELDIN, PFIELDOUT, KINFO ) -! ##################################################### -! - USE MODE_EXCHANGE_ll, ONLY : E_REMAP_Y_X_ll => REMAP_Y_X_ll -! - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDIN - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT - INTEGER :: KINFO -! - CALL E_REMAP_Y_X_ll( PFIELDIN, PFIELDOUT, KINFO ) -! - END SUBROUTINE REMAP_Y_X_ll -! -!! ####################################################### - FUNCTION EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ####################################################### -! - USE MODE_SUM_ll, ONLY : E_EXTRACT_ll => EXTRACT_ll -! - REAL, DIMENSION(:,:,:), POINTER :: EXTRACT_ll - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - INTEGER, INTENT(OUT) :: KINFO - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND -! - EXTRACT_ll => E_EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -! - END FUNCTION EXTRACT_ll -! -!! ########################################################### - FUNCTION SUM1D_ll( PFIELD, KDIR, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ########################################################### -! - USE MODE_SUM_ll, ONLY : E_SUM1D_ll => SUM1D_ll -! - REAL, DIMENSION(:,:), POINTER :: SUM1D_ll - INTEGER, INTENT(IN) :: KDIR - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - INTEGER, INTENT(OUT) :: KINFO - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND -! - SUM1D_ll => E_SUM1D_ll( PFIELD, KDIR, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -! - END FUNCTION SUM1D_ll -! -!! ################################################################### - FUNCTION SUM2D_ll( PFIELD, KDIR1, KDIR2, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ################################################################### -! - USE MODE_SUM_ll, ONLY : E_SUM2D_ll => SUM2D_ll -! - REAL, DIMENSION(:), POINTER :: SUM2D_ll - INTEGER, INTENT(IN) :: KDIR1, KDIR2 - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - INTEGER, INTENT(OUT) :: KINFO - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND -! - SUM2D_ll => E_SUM2D_ll( PFIELD, KDIR1, KDIR2, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -! - END FUNCTION SUM2D_ll -! -!! ##################################################### - FUNCTION SUM3D_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ##################################################### -! - USE MODE_SUM_ll, ONLY : E_SUM3D_ll => SUM3D_ll -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - INTEGER, INTENT(OUT) :: KINFO - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND -! - SUM3D_ll = E_SUM3D_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -! - END FUNCTION SUM3D_ll -! -!! ####################################################################### - FUNCTION SUM_1DFIELD_ll( PFIELD, HDIR, KOR, KEND, KERR ) RESULT( ZSUM ) -!! ####################################################################### -! - USE MODE_SUM_ll, ONLY : E_SUM_1DFIELD_ll => SUM_1DFIELD_ll -! - REAL, DIMENSION(:), INTENT(IN) :: PFIELD - CHARACTER(LEN=1) :: HDIR - INTEGER, OPTIONAL, INTENT(OUT) :: KERR - INTEGER, OPTIONAL, INTENT(IN) :: KOR, KEND - REAL :: ZSUM -! - ZSUM = E_SUM_1DFIELD_ll( PFIELD, HDIR, KOR, KEND, KERR ) -! - END FUNCTION SUM_1DFIELD_ll -! -!! ################################################### - FUNCTION MAX_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ################################################### -! - USE MODE_SUM_ll, ONLY : E_MAX_ll => MAX_ll -! - REAL :: MAX_ll - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - INTEGER, INTENT(OUT) :: KINFO - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND -! - MAX_ll = E_MAX_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -! - END FUNCTION MAX_ll -! -!! ################################################### - FUNCTION MIN_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ################################################### -! - USE MODE_SUM_ll, ONLY : E_MIN_ll => MIN_ll -! - REAL :: MIN_ll - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - INTEGER, INTENT(OUT) :: KINFO - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND -! - MIN_ll = E_MIN_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -! - END FUNCTION MIN_ll -! -!! ########################################### - FUNCTION SUMMASK_ll( PFIELD, OMASK, KINFO ) -!! ########################################### -! - USE MODE_SUM_ll, ONLY : E_SUMMASK_ll => SUMMASK_ll -! - REAL, DIMENSION(:), POINTER :: SUMMASK_ll - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK - INTEGER, INTENT(OUT) :: KINFO -! - SUMMASK_ll => E_SUMMASK_ll( PFIELD, OMASK, KINFO ) -! - END FUNCTION SUMMASK_ll -! -!! ############################################### - FUNCTION SUMMASKCOMP_ll( PFIELD, OMASK, KINFO ) -!! ############################################### -! - USE MODE_SUM_ll, ONLY : E_SUMMASKCOMP_ll => SUMMASKCOMP_ll -! - REAL :: SUMMASKCOMP_ll - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK - INTEGER, INTENT(OUT) :: KINFO -! - SUMMASKCOMP_ll = E_SUMMASKCOMP_ll( PFIELD, OMASK, KINFO ) -! - END FUNCTION SUMMASKCOMP_ll -! -!! ############################################# - SUBROUTINE SUM_DIM1_ll( PFIELD, PRES, KINFO ) -!! ############################################# -! - USE MODE_SUM_ll, ONLY : E_SUM_DIM1_ll => SUM_DIM1_ll -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - REAL, DIMENSION(:,:), INTENT(OUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_SUM_DIM1_ll( PFIELD, PRES, KINFO ) -! - END SUBROUTINE SUM_DIM1_ll -! -!! ############################################# - SUBROUTINE SUM_DIM2_ll( PFIELD, PRES, KINFO ) -!! ############################################# -! - USE MODE_SUM_ll, ONLY : E_SUM_DIM2_ll => SUM_DIM2_ll -! - REAL, DIMENSION(:), INTENT(IN) :: PFIELD - REAL, DIMENSION(:), INTENT(OUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_SUM_DIM2_ll( PFIELD, PRES, KINFO ) -! - END SUBROUTINE SUM_DIM2_ll -! -!! ####################################################### - FUNCTION GMAXLOC3D_ll( PARRAY, MASK ) RESULT( KMAXLOC ) -!! ####################################################### -! - USE MODE_SUM2_ll, ONLY : E_GMAXLOC3D_ll => GMAXLOC3D_ll -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PARRAY - LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK - INTEGER, DIMENSION(3) :: KMAXLOC -! - KMAXLOC = E_GMAXLOC3D_ll( PARRAY, MASK ) -! - END FUNCTION GMAXLOC3D_ll -! -!! ############################################################## - FUNCTION GMAXLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC ) -!! ############################################################## -! - USE MODE_SUM2_ll, ONLY : E_GMAXLOC2D_ll => GMAXLOC2D_ll -! - REAL, DIMENSION(:,:), INTENT(IN) :: PARRAY - LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK - INTEGER, DIMENSION(2) :: KMAXLOC - INTEGER, DIMENSION(2), OPTIONAL :: KDIMS -! - KMAXLOC = E_GMAXLOC2D_ll( PARRAY, KDIMS, MASK ) -! - END FUNCTION GMAXLOC2D_ll -! -!! ############################################################## - FUNCTION GMAXLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC ) -!! ############################################################## -! - USE MODE_SUM2_ll, ONLY : E_GMAXLOC1D_ll => GMAXLOC1D_ll -! - REAL, DIMENSION(:), INTENT(IN) :: PARRAY - LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK - INTEGER :: KMAXLOC - INTEGER, OPTIONAL :: KDIMS -! - KMAXLOC = E_GMAXLOC1D_ll( PARRAY, KDIMS, MASK ) -! - END FUNCTION GMAXLOC1D_ll -! -!! ####################################################### - FUNCTION GMINLOC3D_ll( PARRAY, MASK ) RESULT( KMINLOC ) -!! ####################################################### -! - USE MODE_SUM2_ll, ONLY : E_GMINLOC3D_ll => GMINLOC3D_ll -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PARRAY - LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK - INTEGER, DIMENSION(3) :: KMINLOC -! - KMINLOC = E_GMINLOC3D_ll( PARRAY, MASK ) -! - END FUNCTION GMINLOC3D_ll -! -!! ############################################################## - FUNCTION GMINLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT( KMINLOC ) -!! ############################################################## -! - USE MODE_SUM2_ll, ONLY : E_GMINLOC2D_ll => GMINLOC2D_ll -! - REAL, DIMENSION(:,:), INTENT(IN) :: PARRAY - LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK - INTEGER, DIMENSION(2) :: KMINLOC - INTEGER, DIMENSION(2), OPTIONAL :: KDIMS -! - KMINLOC = E_GMINLOC2D_ll( PARRAY, KDIMS, MASK ) -! - END FUNCTION GMINLOC2D_ll -! -!! ############################################################## - FUNCTION GMINLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMINLOC ) -!! ############################################################## -! - USE MODE_SUM2_ll, ONLY : E_GMINLOC1D_ll => GMINLOC1D_ll -! - REAL, DIMENSION(:), INTENT(IN) :: PARRAY - LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK - INTEGER :: KMINLOC - INTEGER, OPTIONAL :: KDIMS -! - KMINLOC = E_GMINLOC1D_ll( PARRAY, KDIMS, MASK ) -! - END FUNCTION GMINLOC1D_ll -! - -!! ########################################## - SUBROUTINE REDUCE_SUM_0DD_ll( PRES, KINFO ) -!! ########################################## -! - USE MODD_REPRO_SUM , ONLY : DOUBLE_DOUBLE - USE MODE_SUM_ll , ONLY : E_REDUCE_SUM_0DD_ll => REDUCE_SUM_0DD_ll - ! - TYPE(DOUBLE_DOUBLE) , INTENT(INOUT) :: PRES - INTEGER , INTENT(OUT) :: KINFO - ! - CALL E_REDUCE_SUM_0DD_ll(PRES, KINFO) -! - END SUBROUTINE REDUCE_SUM_0DD_ll - -! -!! ########################################## - SUBROUTINE REDUCE_SUM_0D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_0D_ll => REDUCE_SUM_0D_ll -! - REAL, INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_0D_ll(PRES, KINFO) -! - END SUBROUTINE REDUCE_SUM_0D_ll -! - -!! ########################################## - SUBROUTINE REDUCE_SUM_1DD_ll( PRES, KINFO ) -!! ########################################## -! - USE MODD_REPRO_SUM , ONLY : DOUBLE_DOUBLE - USE MODE_SUM_ll , ONLY : E_REDUCE_SUM_1DD_ll => REDUCE_SUM_1DD_ll - ! - TYPE(DOUBLE_DOUBLE), DIMENSION(:), INTENT(INOUT) :: PRES - INTEGER , INTENT(OUT) :: KINFO - ! - CALL E_REDUCE_SUM_1DD_ll( PRES, KINFO ) -! - - END SUBROUTINE REDUCE_SUM_1DD_ll - -!! ########################################## - SUBROUTINE REDUCE_SUM_1D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_1D_ll => REDUCE_SUM_1D_ll -! - REAL, DIMENSION(:), INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_1D_ll( PRES, KINFO ) -! - END SUBROUTINE REDUCE_SUM_1D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_2D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_2D_ll => REDUCE_SUM_2D_ll -! - REAL, DIMENSION(:,:), INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_2D_ll( PRES, KINFO ) -! - END SUBROUTINE REDUCE_SUM_2D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_3D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_3D_ll => REDUCE_SUM_3D_ll -! - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_3D_ll(PRES, KINFO) -! - END SUBROUTINE REDUCE_SUM_3D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I0D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I0D_ll => REDUCE_SUM_I0D_ll -! - INTEGER, INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_I0D_ll(PRES, KINFO) -! - END SUBROUTINE REDUCE_SUM_I0D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I1D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I1D_ll => REDUCE_SUM_I1D_ll -! - INTEGER, DIMENSION(:), INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_I1D_ll( PRES, KINFO ) -! - END SUBROUTINE REDUCE_SUM_I1D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I2D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I2D_ll => REDUCE_SUM_I2D_ll -! - INTEGER, DIMENSION(:,:), INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_I2D_ll( PRES, KINFO ) -! - END SUBROUTINE REDUCE_SUM_I2D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I3D_ll( PRES, KINFO ) -!! ########################################## -! - USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I3D_ll => REDUCE_SUM_I3D_ll -! - INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: PRES - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_REDUCE_SUM_I3D_ll(PRES, KINFO) -! - END SUBROUTINE REDUCE_SUM_I3D_ll -! - -!! ########################################## - SUBROUTINE UPDATE_HALO_ll( TPLIST, KINFO, HDIR ) -!! ########################################## -! - USE MODE_EXCHANGE_ll, ONLY : E_UPDATE_HALO_ll => UPDATE_HALO_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST - INTEGER :: KINFO - CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction -! - CALL E_UPDATE_HALO_ll( TPLIST, KINFO, HDIR=HDIR ) -! - END SUBROUTINE UPDATE_HALO_ll -! -!! ############################################ - SUBROUTINE UPDATE_1DHALO_ll( TPLIST, KINFO ) -!! ############################################ -! - USE MODE_EXCHANGE_ll, ONLY : E_UPDATE_1DHALO_ll => UPDATE_1DHALO_ll -! - USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll -! - TYPE(LIST1D_ll), POINTER :: TPLIST - INTEGER, INTENT(OUT) :: KINFO -! - CALL E_UPDATE_1DHALO_ll( TPLIST, KINFO ) -! - END SUBROUTINE UPDATE_1DHALO_ll -! -!! ############################################################ - SUBROUTINE UPDATE_BOUNDARIES_ll( HDIRECTION, TPLIST, KINFO ) -!! ############################################################ -! - USE MODE_BOUNDARIES_ll, ONLY : E_UPDATE_BOUNDARIES_ll => UPDATE_BOUNDARIES_ll - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - CHARACTER(len=2), INTENT(IN) :: HDIRECTION - TYPE(LIST_ll), POINTER :: TPLIST - INTEGER :: KINFO -! - CALL E_UPDATE_BOUNDARIES_ll( HDIRECTION, TPLIST, KINFO ) -! - END SUBROUTINE UPDATE_BOUNDARIES_ll -! -!! #################################################################### - SUBROUTINE INIT_HALO2_ll( TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ ) -!! #################################################################### -! - USE MODE_EXCHANGE2_ll, ONLY : E_INIT_HALO2_ll => INIT_HALO2_ll -! - USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll -! - TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST - INTEGER :: KNBVAR - INTEGER :: KDIMX, KDIMY, KDIMZ -! - CALL E_INIT_HALO2_ll(TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ) -! - END SUBROUTINE INIT_HALO2_ll -! -!! ######################################################## - SUBROUTINE UPDATE_HALO2_ll( TPLIST, TPLISTHALO2, KINFO ) -!! ######################################################## -! - USE MODE_EXCHANGE2_ll, ONLY : E_UPDATE_HALO2_ll => UPDATE_HALO2_ll -! - USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll,LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST - TYPE(HALO2LIST_ll), POINTER :: TPLISTHALO2 - INTEGER :: KINFO -! - CALL E_UPDATE_HALO2_ll( TPLIST, TPLISTHALO2, KINFO ) -! - END SUBROUTINE UPDATE_HALO2_ll -! -! ######################### - SUBROUTINE SCATTER(P1,P2) -! ######################### -! -USE MODE_SCATTER_ll -USE MODD_MPIF -USE MODD_VAR_ll , ONLY : NMNH_COMM_WORLD -! -IMPLICIT NONE -! -! INCLUDE 'mpif.h' -! -REAL, DIMENSION(:,:), INTENT(IN) :: P1 -REAL, DIMENSION(:,:), INTENT(OUT) :: P2 -! -CALL SCATTER_XYFIELD(P1,P2,1,NMNH_COMM_WORLD) -! -END SUBROUTINE SCATTER diff --git a/src/LIB/SURCOUCHE/src/mode_double_double.f90 b/src/LIB/SURCOUCHE/src/mode_double_double.f90 index 809944ce84da22fcc09397b1a5ff0542bc96b098..b9e58898f24f8dd022c8f70c6dc6031f6e5427cc 100644 --- a/src/LIB/SURCOUCHE/src/mode_double_double.f90 +++ b/src/LIB/SURCOUCHE/src/mode_double_double.f90 @@ -1,18 +1,27 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !Correction : ! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !----------------------------------------------------------------- MODULE modd_repro_sum + + implicit none + TYPE DOUBLE_DOUBLE SEQUENCE REAL :: R , E END TYPE DOUBLE_DOUBLE + + LOGICAL, save :: FIRST_CALL_DD = .TRUE. + INTEGER, save :: MNH_DOUBLE_DOUBLE + INTEGER, save :: MNH_SUM_DD + END MODULE modd_repro_sum + MODULE mode_repro_sum USE MODD_MPIF @@ -20,9 +29,6 @@ MODULE mode_repro_sum IMPLICIT NONE - LOGICAL :: FIRST_CALL_DD = .TRUE. - INTEGER :: MNH_DOUBLE_DOUBLE - INTEGER :: MNH_SUM_DD !!$ INTERFACE ADD !!$ MODULE PROCEDURE RPDD @@ -42,66 +48,6 @@ MODULE mode_repro_sum CONTAINS - SUBROUTINE INIT_DD(KINFO) - use modd_precision, only: MNHREAL_MPI - IMPLICIT NONE - INTEGER, INTENT(OUT) :: KINFO ! MPI return status - ! - ! define the double-double for MPI - ! - CALL MPI_TYPE_CONTIGUOUS(2, MNHREAL_MPI ,MNH_DOUBLE_DOUBLE , KINFO) - CALL MPI_TYPE_COMMIT(MNH_DOUBLE_DOUBLE , KINFO) - ! - ! define the double-double sum = MNH_SUM_DD for MPI - ! - CALL MPI_OP_CREATE(DDPDD, .TRUE., MNH_SUM_DD, KINFO) - FIRST_CALL_DD = .FALSE. - ! - END SUBROUTINE INIT_DD - - PURE SUBROUTINE DDPDD (dda, ddb, len, itype) - !---------------------------------------------------------------------- - ! - ! Purpose: - ! Modification of original codes written by David H. Bailey - ! This subroutine computes ddb(i) = dda(i)+ddb(i) - ! for use with MPI_*_REDUCE - ! - !---------------------------------------------------------------------- - ! - ! Arguments - ! - INTEGER, INTENT(in) :: len ! array length - TYPE(DOUBLE_DOUBLE), INTENT(in) :: dda(len) ! input - TYPE(DOUBLE_DOUBLE), INTENT(inout) :: ddb(len) ! result - INTEGER, INTENT(in) :: itype ! unused - ! - ! Local workspace - ! - REAL e, t1, t2 - INTEGER i - ! - !----------------------------------------------------------------------- - ! - DO i = 1, len - ! - ! Compute dda + ddb using Knuth's trick. - ! - t1 = dda(i)%R + ddb(i)%R - e = t1 - dda(i)%R - t2 = ((ddb(i)%R - e) + (dda(i)%R - (t1 - e))) & - + dda(i)%E + ddb(i)%E - ! - ! The result is t1 + t2, after normalization. - ! - ddb(i)%R = t1 + t2 - ddb(i)%E = t2 - ((t1 + t2) - t1) - ENDDO - - RETURN - - END SUBROUTINE DDPDD - ELEMENTAL SUBROUTINE RPDD (a, ddb) !---------------------------------------------------------------------- ! @@ -232,7 +178,7 @@ CONTAINS ! Could be inlined by compiler <=> elemental function ! !---------------------------------------------------------------------- - USE MODE_ll , ONLY : REDUCESUM_ll + USE mode_reduce_sum, ONLY: REDUCESUM_ll ! ! Arguments ! @@ -277,7 +223,7 @@ CONTAINS ! This subroutine computes c(1:n2) = sum_dd(a(:,1:n2)) on all processors ! !---------------------------------------------------------------------- - USE MODE_ll , ONLY : REDUCESUM_ll + USE mode_reduce_sum, ONLY: REDUCESUM_ll ! ! Arguments ! @@ -320,7 +266,7 @@ CONTAINS ! This subroutine computes c = sum_dd(a(:)) on all processors ! !---------------------------------------------------------------------- - USE MODE_ll , ONLY : REDUCESUM_ll + USE mode_reduce_sum, ONLY: REDUCESUM_ll ! ! Arguments ! diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index 9deabd2e8617a6250c63868968075bd3f91d7c0d..c6eca9e5cb6ead4f09a051774327023c7d67cb5b 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -13,12 +13,13 @@ ! P. Wautelet 06/03/2019: correct ZWS entry ! P. Wautelet 12/04/2019: added pointers for C1D, L1D, N1D, X5D and X6D structures in TFIELDDATA ! P. Wautelet 06/06/2019: bug correction in FIELDLIST_GOTO_MODEL (XLSTHM was overwritten if LUSERV=.FALSE. due to wrong IF block) +! P. Wautelet 19/06/2019: add Fieldlist_nmodel_resize subroutine + provide KMODEL to INI_FIELD_LIST when known !----------------------------------------------------------------- MODULE MODE_FIELD ! USE MODD_CONF, ONLY : CPROGRAM USE MODD_IO, ONLY : NVERB_DEBUG, NVERB_INFO, NVERB_WARNING, NVERB_ERROR, NVERB_FATAL -USE MODD_PARAMETERS +USE MODD_PARAMETERS, only: JPMODELMAX, NGRIDUNKNOWN, NMNHNAMELGTMAX, NSTDNAMELGTMAX USE MODD_TYPE_DATE, ONLY : DATE_TIME #if defined(MNH_IOCDF4) USE NETCDF, ONLY : NF90_FILL_INT, NF90_FILL_REAL @@ -28,7 +29,21 @@ USE MODE_MSG ! IMPLICIT NONE ! -INTEGER,PRIVATE,PARAMETER :: MAXFIELDS = 250 +#if 0 +!if enabled: crash of GCC 8.3 and 9.1 (and others?) in mode_io_field_read.f90 +private +! +public :: TYPEUNDEF, TYPEINT, TYPELOG, TYPEREAL, TYPECHAR, TYPEDATE +public :: TFIELDDATA +public :: TFIELDLIST +public :: INI_FIELD_LIST +public :: FIND_FIELD_ID_FROM_MNHNAME +public :: ALLOC_FIELD_SCALARS +public :: FIELDLIST_GOTO_MODEL +public :: Fieldlist_nmodel_resize +#endif +! +INTEGER,PARAMETER :: MAXFIELDS = 250 INTEGER,PARAMETER :: TYPEUNDEF = -1, TYPEINT = 1, TYPELOG = 2, TYPEREAL = 3, TYPECHAR = 4, TYPEDATE = 5 ! TYPE TFIELDPTR_C0D @@ -146,7 +161,8 @@ TYPE TFIELDDATA TYPE(TFIELDPTR_T0D),DIMENSION(:),ALLOCATABLE :: TFIELD_T0D !Pointer to the scalar date/time fields (one per nested mesh) END TYPE TFIELDDATA ! -LOGICAL,SAVE :: LFIELDLIST_ISINIT = .FALSE. +integer, save :: NMODEL_ALLOCATED +LOGICAL, SAVE :: LFIELDLIST_ISINIT = .FALSE. TYPE(TFIELDDATA),DIMENSION(MAXFIELDS),SAVE :: TFIELDLIST ! CONTAINS @@ -177,17 +193,22 @@ LFIELDLIST_ISINIT = .TRUE. IF (PRESENT(KMODEL)) THEN IMODEL = KMODEL ELSE - IF (NMODEL/=1) THEN - IMODEL = NMODEL - ELSE !NMODEL is not necessary known here => allocating for max allowed number of models - IMODEL = JPMODELMAX - END IF + !NMODEL is not necessary known here => allocating for max allowed number of models + !WARNING: if known, the value could change after this subroutine (ie for a restart + ! with more models) because READ_DESFM_n is called before READ_EXSEG_n + !Structures can be resized with a call to Fieldlist_nmodel_resize + IMODEL = JPMODELMAX END IF +! IF (IMODEL==0) CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_FIELD_LIST','allocating fields for zero models not allowed') +if ( imodel > JPMODELMAX ) & + call Print_msg( NVERB_FATAL, 'GEN', 'INI_FIELD_LIST', 'allocating fields for more than JPMODELMAX models not allowed' ) ! WRITE(YMSG,'("allocating fields for up to ",I4," model(s)")') IMODEL CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_LIST',YMSG) ! +NMODEL_ALLOCATED = IMODEL +! IDX = 1 ! IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST() @@ -4641,5 +4662,435 @@ END IF END IF !KFROM/=KTO ! END SUBROUTINE FIELDLIST_GOTO_MODEL -! + + +subroutine Fieldlist_nmodel_resize( kmodelnew ) + +implicit none + +integer, intent(in) :: kmodelnew + +character(len=10) :: ymsg +integer :: imodelmax +integer :: ji, jj +type(tfieldptr_c0d), dimension(:), allocatable :: tfield_save_c0d +type(tfieldptr_c1d), dimension(:), allocatable :: tfield_save_c1d +type(tfieldptr_l0d), dimension(:), allocatable :: tfield_save_l0d +type(tfieldptr_l1d), dimension(:), allocatable :: tfield_save_l1d +type(tfieldptr_n0d), dimension(:), allocatable :: tfield_save_n0d +type(tfieldptr_n1d), dimension(:), allocatable :: tfield_save_n1d +type(tfieldptr_n2d), dimension(:), allocatable :: tfield_save_n2d +type(tfieldptr_n3d), dimension(:), allocatable :: tfield_save_n3d +type(tfieldptr_x0d), dimension(:), allocatable :: tfield_save_x0d +type(tfieldptr_x1d), dimension(:), allocatable :: tfield_save_x1d +type(tfieldptr_x2d), dimension(:), allocatable :: tfield_save_x2d +type(tfieldptr_x3d), dimension(:), allocatable :: tfield_save_x3d +type(tfieldptr_x4d), dimension(:), allocatable :: tfield_save_x4d +type(tfieldptr_x5d), dimension(:), allocatable :: tfield_save_x5d +type(tfieldptr_x6d), dimension(:), allocatable :: tfield_save_x6d +type(tfieldptr_t0d), dimension(:), allocatable :: tfield_save_t0d + +write( ymsg, '( i4,"->",i4 )') nmodel_allocated, kmodelnew +call Print_msg( NVERB_DEBUG, 'GEN', 'Fieldlist_nmodel_resize', trim( ymsg ) ) + +!Nothing to do +if ( kmodelnew == nmodel_allocated ) return + +imodelmax = max( kmodelnew, nmodel_allocated ) + +allocate( tfield_save_c0d( imodelmax ) ) +allocate( tfield_save_c1d( imodelmax ) ) +allocate( tfield_save_l0d( imodelmax ) ) +allocate( tfield_save_l1d( imodelmax ) ) +allocate( tfield_save_n0d( imodelmax ) ) +allocate( tfield_save_n1d( imodelmax ) ) +allocate( tfield_save_n2d( imodelmax ) ) +allocate( tfield_save_n3d( imodelmax ) ) +allocate( tfield_save_x0d( imodelmax ) ) +allocate( tfield_save_x1d( imodelmax ) ) +allocate( tfield_save_x2d( imodelmax ) ) +allocate( tfield_save_x3d( imodelmax ) ) +allocate( tfield_save_x4d( imodelmax ) ) +allocate( tfield_save_x5d( imodelmax ) ) +allocate( tfield_save_x6d( imodelmax ) ) +allocate( tfield_save_t0d( imodelmax ) ) + +do ji = 1, imodelmax + tfield_save_c0d(ji)%data => null() + tfield_save_c1d(ji)%data => null() + tfield_save_l0d(ji)%data => null() + tfield_save_l1d(ji)%data => null() + tfield_save_n0d(ji)%data => null() + tfield_save_n1d(ji)%data => null() + tfield_save_n2d(ji)%data => null() + tfield_save_n3d(ji)%data => null() + tfield_save_x0d(ji)%data => null() + tfield_save_x1d(ji)%data => null() + tfield_save_x2d(ji)%data => null() + tfield_save_x3d(ji)%data => null() + tfield_save_x4d(ji)%data => null() + tfield_save_x5d(ji)%data => null() + tfield_save_x6d(ji)%data => null() + tfield_save_t0d(ji)%data => null() +end do + +do ji = 1, size( tfieldlist ) + if ( allocated( tfieldlist(ji)%tfield_c0d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_c0d(jj)%data => tfieldlist(ji)%tfield_c0d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_c0d ) + allocate( tfieldlist(ji)%tfield_c0d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_c0d(jj)%data => tfield_save_c0d(jj)%data + tfield_save_c0d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_c0d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_c0d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_c1d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_c1d(jj)%data => tfieldlist(ji)%tfield_c1d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_c1d ) + allocate( tfieldlist(ji)%tfield_c1d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_c1d(jj)%data => tfield_save_c1d(jj)%data + tfield_save_c1d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_c1d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_c1d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_l0d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_l0d(jj)%data => tfieldlist(ji)%tfield_l0d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_l0d ) + allocate( tfieldlist(ji)%tfield_l0d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_l0d(jj)%data => tfield_save_l0d(jj)%data + tfield_save_l0d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_l0d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_l0d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_l1d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_l1d(jj)%data => tfieldlist(ji)%tfield_l1d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_l1d ) + allocate( tfieldlist(ji)%tfield_l1d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_l1d(jj)%data => tfield_save_l1d(jj)%data + tfield_save_l1d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_l1d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_l1d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_n0d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_n0d(jj)%data => tfieldlist(ji)%tfield_n0d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_n0d ) + allocate( tfieldlist(ji)%tfield_n0d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_n0d(jj)%data => tfield_save_n0d(jj)%data + tfield_save_n0d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_n0d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_n0d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_n1d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_n1d(jj)%data => tfieldlist(ji)%tfield_n1d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_n1d ) + allocate( tfieldlist(ji)%tfield_n1d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_n1d(jj)%data => tfield_save_n1d(jj)%data + tfield_save_n1d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_n1d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_n1d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_n2d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_n2d(jj)%data => tfieldlist(ji)%tfield_n2d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_n2d ) + allocate( tfieldlist(ji)%tfield_n2d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_n2d(jj)%data => tfield_save_n2d(jj)%data + tfield_save_n2d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_n2d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_n2d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_n3d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_n3d(jj)%data => tfieldlist(ji)%tfield_n3d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_n3d ) + allocate( tfieldlist(ji)%tfield_n3d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_n3d(jj)%data => tfield_save_n3d(jj)%data + tfield_save_n3d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_n3d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_n3d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_x0d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_x0d(jj)%data => tfieldlist(ji)%tfield_x0d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_x0d ) + allocate( tfieldlist(ji)%tfield_x0d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_x0d(jj)%data => tfield_save_x0d(jj)%data + tfield_save_x0d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_x0d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_x0d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_x1d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_x1d(jj)%data => tfieldlist(ji)%tfield_x1d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_x1d ) + allocate( tfieldlist(ji)%tfield_x1d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_x1d(jj)%data => tfield_save_x1d(jj)%data + tfield_save_x1d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_x1d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_x1d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_x2d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_x2d(jj)%data => tfieldlist(ji)%tfield_x2d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_x2d ) + allocate( tfieldlist(ji)%tfield_x2d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_x2d(jj)%data => tfield_save_x2d(jj)%data + tfield_save_x2d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_x2d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_x2d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_x3d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_x3d(jj)%data => tfieldlist(ji)%tfield_x3d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_x3d ) + allocate( tfieldlist(ji)%tfield_x3d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_x3d(jj)%data => tfield_save_x3d(jj)%data + tfield_save_x3d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_x3d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_x3d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_x4d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_x4d(jj)%data => tfieldlist(ji)%tfield_x4d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_x4d ) + allocate( tfieldlist(ji)%tfield_x4d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_x4d(jj)%data => tfield_save_x4d(jj)%data + tfield_save_x4d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_x4d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_x4d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_x5d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_x5d(jj)%data => tfieldlist(ji)%tfield_x5d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_x5d ) + allocate( tfieldlist(ji)%tfield_x5d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_x5d(jj)%data => tfield_save_x5d(jj)%data + tfield_save_x5d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_x5d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_x5d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_x6d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_x6d(jj)%data => tfieldlist(ji)%tfield_x6d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_x6d ) + allocate( tfieldlist(ji)%tfield_x6d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_x6d(jj)%data => tfield_save_x6d(jj)%data + tfield_save_x6d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_x6d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_x6d(jj)%data => null() + end if + end do + end if + + if ( allocated( tfieldlist(ji)%tfield_t0d ) ) then + !Save existing pointers to temporary structure + do jj = 1, nmodel_allocated + tfield_save_t0d(jj)%data => tfieldlist(ji)%tfield_t0d(jj)%data + end do + !Reallocate + deallocate( tfieldlist(ji)%tfield_t0d ) + allocate( tfieldlist(ji)%tfield_t0d(kmodelnew) ) + !Restore pointers + do jj = 1, kmodelnew + tfieldlist(ji)%tfield_t0d(jj)%data => tfield_save_t0d(jj)%data + tfield_save_t0d(jj)%data => null() + end do + !Check no used pointers if nmodel is decreazed + do jj = kmodelnew + 1, nmodel_allocated + if ( associated(tfield_save_t0d(jj)%data ) ) then + call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' ) + tfield_save_t0d(jj)%data => null() + end if + end do + end if + +end do + +nmodel_allocated = kmodelnew + +end subroutine Fieldlist_nmodel_resize + END MODULE MODE_FIELD diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 index 0b68891388f7088c75bca9392ca291d6eb8d0c2e..8f717bce0cda430ec8cb752eab038973db07b230 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 @@ -14,6 +14,7 @@ ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! P. Wautelet 12/04/2019: use MNHTIME for time measurement variables ! P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications +! P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (IO_Field_read_byname_N3 and IO_Field_read_byfield_N3) !----------------------------------------------------------------- MODULE MODE_IO_FIELD_READ @@ -41,7 +42,7 @@ INTERFACE IO_Field_read IO_Field_read_byname_X4, IO_Field_read_byname_X5, & IO_Field_read_byname_X6, & IO_Field_read_byname_N0, IO_Field_read_byname_N1, & - IO_Field_read_byname_N2, & + IO_Field_read_byname_N2, IO_Field_read_byname_N3, & IO_Field_read_byname_L0, IO_Field_read_byname_L1, & IO_Field_read_byname_C0, & IO_Field_read_byname_T0, & @@ -50,7 +51,7 @@ INTERFACE IO_Field_read IO_Field_read_byfield_X4,IO_Field_read_byfield_X5, & IO_Field_read_byfield_X6, & IO_Field_read_byfield_N0,IO_Field_read_byfield_N1, & - IO_Field_read_byfield_N2, & + IO_Field_read_byfield_N2,IO_Field_read_byfield_N3, & IO_Field_read_byfield_L0,IO_Field_read_byfield_L1, & IO_Field_read_byfield_C0, & IO_Field_read_byfield_T0 @@ -325,9 +326,10 @@ END SUBROUTINE IO_Field_read_byname_X2 SUBROUTINE IO_Field_read_byfield_X2(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll -USE MODD_TIMEZ, ONLY: TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll #ifdef MNH_GA @@ -491,6 +493,7 @@ END SUBROUTINE IO_Field_read_byname_X3 SUBROUTINE IO_Field_read_byfield_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT USE MODD_TIMEZ, ONLY: TIMEZ USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! @@ -557,8 +560,7 @@ IF (IRESP==0) THEN IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) ELSE IF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN - ALLOCATE (ZFIELDP(SIZE(PFIELD,1),1,SIZE(PFIELD,3))) - GALLOC = .TRUE. + ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:) ELSE ZFIELDP=>PFIELD(:,:,:) END IF @@ -572,7 +574,7 @@ IF (IRESP==0) THEN IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) ELSE IF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN - PFIELD(:,:,:)=SPREAD(ZFIELDP(:,1,:),DIM=2,NCOPIES=IHEXTOT) + PFIELD(:,:,:)=SPREAD(PFIELD(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) END IF ELSE IF ( TPFILE%NSUBFILES_IOZ==0 .OR. YDIR == '--' ) THEN ! multiprocesses execution & 1 IO proc IF (ISP == TPFILE%NMASTER_RANK) THEN @@ -830,10 +832,6 @@ END SUBROUTINE IO_Field_read_byfield_X3 SUBROUTINE IO_Field_read_byname_X4(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO, ONLY: ISNPROC -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll -! -! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write REAL,DIMENSION(:,:,:,:),INTENT(INOUT) :: PFIELD ! array containing the data field @@ -854,8 +852,8 @@ END SUBROUTINE IO_Field_read_byname_X4 SUBROUTINE IO_Field_read_byfield_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_IO, ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll @@ -955,10 +953,6 @@ END SUBROUTINE IO_Field_read_byfield_X4 SUBROUTINE IO_Field_read_byname_X5(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO, ONLY: ISNPROC -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll -! -! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write REAL,DIMENSION(:,:,:,:,:),INTENT(INOUT) :: PFIELD ! array containing the data field @@ -979,8 +973,8 @@ END SUBROUTINE IO_Field_read_byname_X5 SUBROUTINE IO_Field_read_byfield_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_IO, ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll @@ -1080,10 +1074,6 @@ END SUBROUTINE IO_Field_read_byfield_X5 SUBROUTINE IO_Field_read_byname_X6(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO, ONLY: ISNPROC -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll -! -! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write REAL,DIMENSION(:,:,:,:,:,:),INTENT(INOUT) :: PFIELD ! array containing the data field @@ -1104,8 +1094,8 @@ END SUBROUTINE IO_Field_read_byname_X6 SUBROUTINE IO_Field_read_byfield_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO, ONLY: GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_IO, ONLY: GSMONOPROC,ISP,LPACK,L1D,L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll @@ -1357,10 +1347,6 @@ END SUBROUTINE IO_Field_read_byfield_N1 SUBROUTINE IO_Field_read_byname_N2(TPFILE,HNAME,KFIELD,KRESP) ! -USE MODD_IO, ONLY: ISNPROC -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll -! -! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write INTEGER,DIMENSION(:,:),INTENT(INOUT) :: KFIELD ! array containing the data field @@ -1381,9 +1367,9 @@ END SUBROUTINE IO_Field_read_byname_N2 SUBROUTINE IO_Field_read_byfield_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D -USE MODD_STRUCTURE_ll, ONLY: ZONE_ll -USE MODD_TIMEZ, ONLY: TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_SCATTER_ll @@ -1482,6 +1468,129 @@ IF (PRESENT(KRESP)) KRESP = IRESP END SUBROUTINE IO_Field_read_byfield_N2 +SUBROUTINE IO_Field_read_byname_N3(TPFILE,HNAME,KFIELD,KRESP) +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write +INTEGER,DIMENSION(:,:,:),INTENT(INOUT) :: KFIELD ! array containing the data field +INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code +! +INTEGER :: ID ! Index of the field +INTEGER :: IRESP ! return_code +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +! +CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) +! +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) +! +IF (PRESENT(KRESP)) KRESP = IRESP +! +END SUBROUTINE IO_Field_read_byname_N3 + +SUBROUTINE IO_Field_read_byfield_N3(TPFILE,TPFIELD,KFIELD,KRESP) +! +USE MODD_IO, ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_TIMEZ, ONLY: TIMEZ +! +USE MODE_ALLOCBUFFER_ll +USE MODE_SCATTER_ll +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD +INTEGER,DIMENSION(:,:,:),TARGET,INTENT(INOUT) :: KFIELD ! array containing the data field +INTEGER, OPTIONAL, INTENT(OUT) :: KRESP ! return-code +! +INTEGER :: IERR +INTEGER,DIMENSION(:,:,:),POINTER :: IFIELDP +LOGICAL :: GALLOC +INTEGER :: IRESP +INTEGER :: IHEXTOT +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +! +GALLOC = .FALSE. +IRESP = 0 +IFIELDP => NULL() +! +IHEXTOT = 2*JPHEXT+1 +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N3',IRESP) +! +IF (IRESP==0) THEN + IF (GSMONOPROC) THEN ! sequential execution + IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN + IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) + ELSE IF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN + IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1,:) + ELSE + IFIELDP=>KFIELD(:,:,:) + END IF + IF (TPFILE%CFORMAT=='NETCDF4') THEN + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) + ELSE IF (TPFILE%CFORMAT=='LFI') THEN + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) + END IF + IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN + KFIELD(:,:,:)=SPREAD(SPREAD(KFIELD(JPHEXT+1,JPHEXT+1,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) + ELSE IF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN + KFIELD(:,:,:)=SPREAD(KFIELD(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) + END IF + ELSE + IF (ISP == TPFILE%NMASTER_RANK) THEN + ! I/O process case + CALL ALLOCBUFFER_ll(IFIELDP,KFIELD,TPFIELD%CDIR,GALLOC) + IF (TPFILE%CFORMAT=='NETCDF4') THEN + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) + ELSE IF (TPFILE%CFORMAT=='LFI') THEN + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) + END IF + ELSE + !Not really necessary but useful to suppress alerts with Valgrind + ALLOCATE(IFIELDP(0,0,0)) + GALLOC = .TRUE. + END IF + ! + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + ! + !Broadcast header only if IRESP==-111 + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) + ! + IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN + ! XX or YY Scatter Field + CALL SCATTER_XXFIELD(TPFIELD%CDIR,IFIELDP,KFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) + ! Broadcast Field + CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + ELSE IF (TPFIELD%CDIR == 'XY') THEN + IF (LPACK .AND. L2D) THEN + ! 2D compact case + CALL SCATTER_XXFIELD('XX',IFIELDP(:,1,:),KFIELD(:,JPHEXT+1,:),TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) + KFIELD(:,:,:) = SPREAD(KFIELD(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) + ELSE + ! XY Scatter Field + CALL SCATTER_XYFIELD(IFIELDP,KFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) + END IF + ELSE + IF (ISP == TPFILE%NMASTER_RANK) KFIELD = IFIELDP + CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + END IF + END IF +END IF +! +IF (GALLOC) DEALLOCATE (IFIELDP) +! +IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) +! +IF (PRESENT(KRESP)) KRESP = IRESP +! +END SUBROUTINE IO_Field_read_byfield_N3 + + SUBROUTINE IO_Field_read_byname_L0(TPFILE,HNAME,OFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1708,7 +1817,9 @@ END SUBROUTINE IO_Field_read_byfield_C0 SUBROUTINE IO_Field_read_byname_T0(TPFILE,HNAME,TPDATA,KRESP) -! + +use modd_type_date, only: DATE_TIME + TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write TYPE (DATE_TIME), INTENT(INOUT) :: TPDATA ! array containing the data field @@ -1729,7 +1840,8 @@ END SUBROUTINE IO_Field_read_byname_T0 SUBROUTINE IO_Field_read_byfield_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! -USE MODD_IO, ONLY: ISP, GSMONOPROC +use modd_io, only: ISP, GSMONOPROC +use modd_type_date, only: DATE_TIME ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 index 88ce5e5fa7cbb6e743a72f83b3d952eb6720fccc..63dcb3b9ed7598f6a92809d99094aeeae88ff4ae 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 @@ -18,15 +18,17 @@ MODULE MODE_IO_FIELD_WRITE - USE MODD_IO, ONLY: TFILEDATA, TOUTBAK + USE MODD_IO, ONLY: TFILEDATA, TOUTBAK USE MODD_MPIF - use modd_precision, only: MNHINT_MPI, MNHREAL_MPI, MNHTIME + use modd_parameters, only: NMNHNAMELGTMAX + use modd_precision, only: MNHINT_MPI, MNHREAL_MPI, MNHTIME USE MODE_FIELD USE MODE_IO_WRITE_LFI #if defined(MNH_IOCDF4) USE MODE_IO_WRITE_NC4 #endif + use mode_msg IMPLICIT NONE @@ -2264,6 +2266,7 @@ CONTAINS SUBROUTINE IO_Field_write_byname_T0(TPFILE,HNAME,TFIELD,KRESP) + USE MODD_TYPE_DATE, only: DATE_TIME ! !* 0.1 Declarations of arguments ! @@ -2290,7 +2293,7 @@ CONTAINS SUBROUTINE IO_Field_write_byfield_T0(TPFILE,TPFIELD,TFIELD,KRESP) USE MODD_IO, ONLY: GSMONOPROC, ISP - USE MODD_TYPE_DATE + USE MODD_TYPE_DATE, only: DATE_TIME ! !* 0. DECLARATIONS ! ------------ diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 index 525930eefaaacc6ab5082f76e814085488220ca2..01b03897d2134c902a7b0aa0c1384771bdc04557 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 @@ -9,6 +9,7 @@ ! P. Wautelet 14/12/2018: split fmreadwrit.f90 ! P. Wautelet 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file ! P. Wautelet 05/03/2019: rename IO subroutines and modules +! P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (IO_Field_read_lfi_N3) !----------------------------------------------------------------- module mode_io_read_lfi ! @@ -34,7 +35,7 @@ INTERFACE IO_Field_read_lfi IO_Field_read_lfi_X4, IO_Field_read_lfi_X5, & IO_Field_read_lfi_X6, & IO_Field_read_lfi_N0, IO_Field_read_lfi_N1, & - IO_Field_read_lfi_N2, & + IO_Field_read_lfi_N2, IO_Field_read_lfi_N3, & IO_Field_read_lfi_L0, IO_Field_read_lfi_L1, & IO_Field_read_lfi_C0, & IO_Field_read_lfi_T0 @@ -387,6 +388,40 @@ IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) END SUBROUTINE IO_Field_read_lfi_N2 ! ! +SUBROUTINE IO_Field_read_lfi_N3(TPFILE,TPFIELD,KFIELD,KRESP) +USE MODE_MSG +! +IMPLICIT NONE +! +!* 0.1 Declarations of arguments +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD +INTEGER,DIMENSION(:,:,:),INTENT(INOUT) :: KFIELD ! array containing the data field +INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured +! +!* 0.2 Declarations of local variables +! +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL +INTEGER :: ILENG +INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +LOGICAL :: GGOOD +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +! +ILENG = SIZE(KFIELD) +! +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +! +IF (GGOOD) KFIELD(:,:,:) = RESHAPE(IWORK(IWORK(2)+3:),SHAPE(KFIELD)) +! +KRESP=IRESP +! +IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) +! +END SUBROUTINE IO_Field_read_lfi_N3 +! +! SUBROUTINE IO_Field_read_lfi_L0(TPFILE,TPFIELD,OFIELD,KRESP) USE MODE_MSG ! diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 index 3aaed8fb95ca02eccf016fb1b8256d33b3dc435f..74c69fbcf0a9f2d061d80c7e7d554c61dad7c846 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 @@ -11,6 +11,7 @@ ! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages ! P. Wautelet 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file ! P. Wautelet 05/03/2019: rename IO subroutines and modules +! P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (IO_Field_read_nc4_N3) !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_read_nc4 @@ -39,7 +40,7 @@ INTERFACE IO_Field_read_nc4 IO_Field_read_nc4_X4,IO_Field_read_nc4_X5, & IO_Field_read_nc4_X6, & IO_Field_read_nc4_N0,IO_Field_read_nc4_N1, & - IO_Field_read_nc4_N2, & + IO_Field_read_nc4_N2,IO_Field_read_nc4_N3, & IO_Field_read_nc4_L0,IO_Field_read_nc4_L1, & IO_Field_read_nc4_C0, & IO_Field_read_nc4_T0 @@ -968,6 +969,77 @@ KRESP = IRESP END SUBROUTINE IO_Field_read_nc4_N2 +SUBROUTINE IO_Field_read_nc4_N3(TPFILE, TPFIELD, KFIELD, KRESP) +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD +INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: KFIELD +INTEGER, INTENT(OUT) :: KRESP ! return-code + +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +CHARACTER(LEN=30) :: YVARNAME +INTEGER(KIND=CDFINT),DIMENSION(3) :: IDIMLEN +INTEGER :: IRESP + +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) + +IRESP = 0 +! Get the Netcdf file ID +INCID = TPFILE%NNCID + +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) + +! Get variable ID, NDIMS and TYPE +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + GOTO 1000 +END IF +STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) + +!Neglect the time dimension (of size 1) +IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 + +!NF90_INT1 is for the case a boolean was written +IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64 .OR. ITYPE == NF90_INT1) ) THEN + ! Check size of variable before reading + STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + + IF (IDIMLEN(1) == SIZE(KFIELD,1) .AND. IDIMLEN(2) == SIZE(KFIELD,2) .AND. IDIMLEN(3) == SIZE(KFIELD,3)) THEN + ! Read variable + STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + GOTO 1000 + END IF + ! Read and check attributes of variable + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + ' not read (wrong size)') + IRESP = -3 + END IF +ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + ' not read (wrong number of dimensions or wrong type)') + IRESP = -3 +END IF + +1000 CONTINUE +KRESP = IRESP + +END SUBROUTINE IO_Field_read_nc4_N3 + SUBROUTINE IO_Field_read_nc4_L0(TPFILE, TPFIELD, OFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 index df07aafd0efd670325b161dc2f29b47c427cfc57..eff5ff16498bf22ab1a3bd24253e08c96fb52f00 100644 --- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 @@ -1809,7 +1809,7 @@ !* 0. DECLARATIONS ! ------------ ! - USE MODE_ll + USE MODE_TOOLS_ll, only: LWEST_ll, LEAST_ll ! IMPLICIT NONE ! @@ -1846,7 +1846,7 @@ !* 0. DECLARATIONS ! ------------ ! - USE MODE_ll + USE MODE_TOOLS_ll, only: LNORTH_ll, LSOUTH_ll ! IMPLICIT NONE ! diff --git a/src/LIB/SURCOUCHE/src/mode_ll.f90 b/src/LIB/SURCOUCHE/src/mode_ll.f90 index 30bf677904825aa22ab4e4a1907455e9dd6d5c40..b40ef97c3865d171b53f3577ed7cc52b5d0c83ac 100644 --- a/src/LIB/SURCOUCHE/src/mode_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_ll.f90 @@ -1,20 +1,14 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information +! Modifications +! P. Wautelet 14/06/2019: use mode_* instead of modi_* !----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -! ############## - MODULE MODE_ll -! ############## +!############# +MODULE MODE_ll +!############# ! !! Purpose !! ------- @@ -23,24 +17,21 @@ ! of the user interface ! !------------------------------------------------------------------------------ -! - USE MODD_ARGSLIST_ll -! - USE MODI_INIT_ll -! - USE MODI_ADDnDFIELD_ll - USE MODI_DELnDFIELD_ll -! - USE MODI_ADDDELFIELD2_ll ! - USE MODI_UPDATE_ll - USE MODI_REMAP_ll -! - USE MODI_SUM_ll -! - USE MODI_GET_ll - USE MODI_LOCATION_ll -! - USE MODI_NEST_ll -! +use modd_argslist_ll + +use mode_argslist_ll +use mode_argslist2_ll +use mode_exchange_ll +use mode_exchange2_ll +use mode_gather_ll +use mode_init_ll +use mode_lb_ll +use mode_ls_ll +use mode_nest_ll +use mode_reduce_sum +use mode_scatter_ll +use mode_sum_ll +use mode_tools_ll + END MODULE MODE_ll diff --git a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 index 5c0a214647c187c66834f224504bfb8495187782..053f3fb527933efcebcac4b6a7eaab4f4f33bac3 100644 --- a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 @@ -54,11 +54,21 @@ ! !------------------------------------------------------------------------------ ! - USE MODD_STRUCTURE_ll +USE MODD_STRUCTURE_ll - use mode_msg -! - CONTAINS +use mode_msg + +implicit none + +interface SET_LSFIELD_1WAY_ll + module procedure SET_LS2DFIELD_1WAY_ll, SET_LS3DFIELD_1WAY_ll +end interface + +interface SET_LSFIELD_2WAY_ll + module procedure SET_LS2DFIELD_2WAY_ll, SET_LS3DFIELD_2WAY_ll +end interface + +CONTAINS ! ! ########################################################### SUBROUTINE SET_LS2DFIELD_1WAY_ll(P2DFIELD, PTFIELD, KMODEL) diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 index 6eb4ccecccceebeb52f891cc8e07c689d2a04415..db7752c9124099ea5c11f50bbc5b990c39ffcbd3 100644 --- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 @@ -25,6 +25,7 @@ MODULE MODE_MPPDB ! use ISO_FORTRAN_ENV, only: OUTPUT_UNIT + use MODE_TOOLS_ll, only: GET_GLOBALDIMS_ll, GET_INDICE_ll use mode_msg use modi_tools_c @@ -1788,7 +1789,6 @@ MODULE MODE_MPPDB use modd_precision, only: MNHINT_MPI, MNHREAL_MPI USE MODE_DISTRIB_LB - USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll IMPLICIT NONE @@ -2202,6 +2202,7 @@ MODULE MODE_MPPDB ! USE MODD_MPIF, ONLY: MPI_LAND use modd_precision, only: MNHLOG_MPI + USE MODE_TOOLS_ll, ONLY: GET_DIM_EXT_ll ! IMPLICIT NONE ! diff --git a/src/LIB/SURCOUCHE/src/mode_msg.f90 b/src/LIB/SURCOUCHE/src/mode_msg.f90 index 287dac1580ce59e12f9c567607e3e2173df1c0e6..6532afab8cc57e2d8df00593cb0bd3b520c9408f 100644 --- a/src/LIB/SURCOUCHE/src/mode_msg.f90 +++ b/src/LIB/SURCOUCHE/src/mode_msg.f90 @@ -8,6 +8,7 @@ ! Modifications: ! P. Wautelet 27/02/2019: module extracted from mode_io.f90 ! P. Wautelet 04/04/2019: force write on stderr for all processes in print_msg if abort +! P. Wautelet 02/07/2019: flush messages also for files opened with newunit (logical unit can be negative) !----------------------------------------------------------------- MODULE MODE_MSG ! @@ -114,11 +115,11 @@ IF (KVERB<=IABORTLEVEL) THEN WRITE(UNIT=ERROR_UNIT,FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG WRITE(UNIT=ERROR_UNIT,FMT="(A8,': ',A)") ADJUSTL(YPRC),'ABORT asked by application '//TRIM(CPROGRAM) #if 0 - !Problem: loop dependency between MODE_MSG and MODE_IO_FILE (IO_File_close call PRINT_MSG) + !Problem: loop dependency between MODE_MSG and MODE_FM (IO_FILE_CLOSE_ll call PRINT_MSG) NIO_VERB = 0 !To not get further messages (ABORT should be the last for readability) - IF (ILU>0) CALL IO_File_close(TFILE_OUTPUTLISTING) !To flush it + IF ( ILU /= -1 ) CALL IO_FILE_CLOSE_ll(TFILE_OUTPUTLISTING) !To flush it #else - IF (ILU>0) FLUSH(UNIT=ILU) !OK in F2003 + IF ( ILU /= -1 ) FLUSH(UNIT=ILU) !OK in F2003 IF (ASSOCIATED(TLUOUT0)) FLUSH(UNIT=TLUOUT0%NLU) #endif !Add a sleep to ensure that the process(es) that have to write to stderr and to file diff --git a/src/LIB/SURCOUCHE/src/mode_reduce_sum.f90 b/src/LIB/SURCOUCHE/src/mode_reduce_sum.f90 new file mode 100644 index 0000000000000000000000000000000000000000..a0411f18362f28095cb9bf6a06798433aa19375b --- /dev/null +++ b/src/LIB/SURCOUCHE/src/mode_reduce_sum.f90 @@ -0,0 +1,742 @@ +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications +! P. Wautelet 21/06/2019: mode REDUCESUM_ll subroutine to mode_reduce_sum.f90 (to remove circular dependencies between modules) +!----------------------------------------------------------------- +module mode_reduce_sum + +USE MODD_MPIF +use modd_precision, only: MNHINT_MPI, MNHREAL_MPI +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD +USE modd_repro_sum + +implicit none + +INTERFACE REDUCESUM_ll + MODULE PROCEDURE REDUCE_SUM_0DD_ll, REDUCE_SUM_1DD_ll, & + REDUCE_SUM_0D_ll, REDUCE_SUM_1D_ll, REDUCE_SUM_2D_ll, REDUCE_SUM_3D_ll, & + REDUCE_SUM_I0D_ll, REDUCE_SUM_I1D_ll, REDUCE_SUM_I2D_ll, REDUCE_SUM_I3D_ll +END INTERFACE + +contains + + SUBROUTINE INIT_DD(KINFO) + IMPLICIT NONE + INTEGER, INTENT(OUT) :: KINFO ! MPI return status + ! + ! define the double-double for MPI + ! + CALL MPI_TYPE_CONTIGUOUS(2, MNHREAL_MPI ,MNH_DOUBLE_DOUBLE , KINFO) + CALL MPI_TYPE_COMMIT(MNH_DOUBLE_DOUBLE , KINFO) + ! + ! define the double-double sum = MNH_SUM_DD for MPI + ! + CALL MPI_OP_CREATE(DDPDD, .TRUE., MNH_SUM_DD, KINFO) + FIRST_CALL_DD = .FALSE. + ! + END SUBROUTINE INIT_DD + + PURE SUBROUTINE DDPDD (dda, ddb, len, itype) + !---------------------------------------------------------------------- + ! + ! Purpose: + ! Modification of original codes written by David H. Bailey + ! This subroutine computes ddb(i) = dda(i)+ddb(i) + ! for use with MPI_*_REDUCE + ! + !---------------------------------------------------------------------- + ! + ! Arguments + ! + INTEGER, INTENT(in) :: len ! array length + TYPE(DOUBLE_DOUBLE), INTENT(in) :: dda(len) ! input + TYPE(DOUBLE_DOUBLE), INTENT(inout) :: ddb(len) ! result + INTEGER, INTENT(in) :: itype ! unused + ! + ! Local workspace + ! + REAL e, t1, t2 + INTEGER i + ! + !----------------------------------------------------------------------- + ! + DO i = 1, len + ! + ! Compute dda + ddb using Knuth's trick. + ! + t1 = dda(i)%R + ddb(i)%R + e = t1 - dda(i)%R + t2 = ((ddb(i)%R - e) + (dda(i)%R - (t1 - e))) & + + dda(i)%E + ddb(i)%E + ! + ! The result is t1 + t2, after normalization. + ! + ddb(i)%R = t1 + t2 + ddb(i)%E = t2 - ((t1 + t2) - t1) + ENDDO + + RETURN + + END SUBROUTINE DDPDD + +! ######################################## + SUBROUTINE REDUCE_SUM_0DD_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_0DD_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the scalar argument PRES on processors. +! +! REDUCE_SUM_0Q_ll is the routine for scalar REAL*16 argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_0Q_ll, each processor +! computes its local sum PRES; in REDUCE_SUM_0Q_ll +! we reduce this values and return the global sum +! in the PRES variable REAL*16. +! +!! External +!! -------- +! +!! Implicit Arguments +!! ------------------ +! +! +!! Author +!! ------ +! Ph. Kloos * CNRM - CERFACS * +! +!! Modifications +!! ------------- +! Original 27/06/98 +! R. Guivarch 09/07/98 Same argument PRES INOUT +! +!----------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + TYPE(DOUBLE_DOUBLE), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + TYPE(DOUBLE_DOUBLE) :: ZRES ! sum +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + IF (FIRST_CALL_DD) CALL INIT_DD(KINFO) + ZRES%R = 0.0 ; ZRES%E = 0.0 + CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNH_DOUBLE_DOUBLE , & + MNH_SUM_DD, NMNH_COMM_WORLD, KINFO) + + PRES = ZRES +! +!------------------------------------------------------------------------------- +! +END SUBROUTINE REDUCE_SUM_0DD_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_0D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_0D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the scalar argument PRES on processors. +! +! REDUCE_SUM_0D_ll is the routine for scalar argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_0D_ll, each processor +! computes its local sum PRES; in REDUCE_SUM_0D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Implicit Arguments +!! ------------------ +! +! +!! Author +!! ------ +! Ph. Kloos * CNRM - CERFACS * +! +!! Modifications +!! ------------- +! Original 27/06/98 +! R. Guivarch 09/07/98 Same argument PRES INOUT +! +!----------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + REAL, INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + REAL :: ZRES ! Intermediate result +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHREAL_MPI, & + MPI_SUM, NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_0D_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_1DD_ll(PRES, KINFO) +! ######################################## +! + +!! Author +!! ------ +! J.Escobar 22/10/2010 +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + TYPE(DOUBLE_DOUBLE), DIMENSION(:), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + TYPE(DOUBLE_DOUBLE), DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum + +! +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + IF (FIRST_CALL_DD) CALL INIT_DD(KINFO) + ZRES%R = 0.0 ; ZRES%E = 0.0 + CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES), MNH_DOUBLE_DOUBLE , & + MNH_SUM_DD, NMNH_COMM_WORLD, KINFO) +PRES = ZRES +! +!------------------------------------------------------------------------------- +! +END SUBROUTINE REDUCE_SUM_1DD_ll +! + +! ######################################## + SUBROUTINE REDUCE_SUM_1D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_1D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the each entry of the one-dimensional vector PRES +! on all processors. +! +! REDUCE_SUM_1D_ll is the routine for 1D argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_1D_ll, each processor +! computes its local 1D sum PRES; in REDUCE_SUM_1D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Implicit Arguments +!! ------------------ +! +! +!! Author +!! ------ +! Ph. Kloos * CNRM - CERFACS * +! +!! Modifications +!! ------------- +! Original 27/06/98 +! R. Guivarch 09/07/98 Same argument PRES INOUT +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + REAL, DIMENSION(:), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + REAL, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHREAL_MPI, & + MPI_SUM, NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_1D_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_2D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_2D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the each entry of the two-dimensional vector PRES +! on all processors. +! +! REDUCE_SUM_2D_ll is the routine for 2D argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_2D_ll, each processor +! computes its local 2D sum PRES; in REDUCE_SUM_2D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Implicit Arguments +!! ------------------ +! +! +!! Author +!! ------ +! Ph. Kloos * CNRM - CERFACS * +! +!! Modifications +!! ------------- +! Original 27/06/98 +! R. Guivarch 09/07/98 Same argument PRES INOUT +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + REAL, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum +! + INTEGER :: IDIM +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + IDIM = SIZE(PRES,1) * SIZE(PRES,2) +! + CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, & + NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_2D_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_3D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_3D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the each entry of the three-dimensional vector PRES +! on all processors. +! +! REDUCE_SUM_3D_ll is the routine for 3D argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_3D_ll, each processor +! computes its local 3D sum PRES; in REDUCE_SUM_3D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Implicit Arguments +!! ------------------ +! +! +!! Author +!! ------ +! Ph. Kloos * CNRM - CERFACS * +! +!! Modifications +!! ------------- +! Original 27/06/98 +! R. Guivarch 09/07/98 Same argument PRES INOUT +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate + ! sum +! + INTEGER :: IDIM +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3) +! + CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, & + NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_3D_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_I0D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_I0D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the scalar argument PRES on processors. +! +! REDUCE_SUM_I0D_ll is the routine for integer scalar argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_I0D_ll, each processor +! computes its local sum PRES; in REDUCE_SUM_I0D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Author +!! ------ +! D. Gazen * L.A. * +! +!! Modifications +!! ------------- +! Original 4/09/2000 +! +!----------------------------------------------------------------- +! +!* 0. DECLARATIONS +! +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + INTEGER, INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + INTEGER :: ZRES ! Intermediate result +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHINT_MPI, & + MPI_SUM, NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_I0D_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_I1D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_I1D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the each entry of the one-dimensional vector PRES +! on all processors. +! +! REDUCE_SUM_I1D_ll is the routine for integer 1D argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_I1D_ll, each processor +! computes its local 1D sum PRES; in REDUCE_SUM_I1D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Author +!! ------ +! D. Gazen * L.A. * +! +!! Modifications +!! ------------- +! Original 4/09/2000 +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + INTEGER, DIMENSION(:), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + INTEGER, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHINT_MPI, & + MPI_SUM, NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_I1D_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_I2D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_2D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the each entry of the two-dimensional vector PRES +! on all processors. +! +! REDUCE_SUM_I2D_ll is the routine for integer 2D argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_I2D_ll, each processor +! computes its local 2D sum PRES; in REDUCE_SUM_I2D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Author +!! ------ +! D. Gazen * L.A. * +! +!! Modifications +!! ------------- +! Original 4/09/2000 +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + INTEGER, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum +! + INTEGER :: IDIM +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + IDIM = SIZE(PRES,1) * SIZE(PRES,2) +! + CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, & + NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_I2D_ll +! +! ######################################## + SUBROUTINE REDUCE_SUM_I3D_ll(PRES, KINFO) +! ######################################## +! +!!**** *REDUCE_SUM_I3D_ll*- +! +!! Purpose +!! ------- +! This routine calculates the sum of the values +! of the each entry of the three-dimensional vector PRES +! on all processors. +! +! REDUCE_SUM_I3D_ll is the routine for 3D argument +! of the generic routine REDUCESUM_ll. +! +!! Method +!! ------ +! Before the call to REDUCE_SUM_I3D_ll, each processor +! computes its local 3D sum PRES; in REDUCE_SUM_I3D_ll +! we reduce this values and return the global sum +! in the PRES variable. +! +!! External +!! -------- +! +!! Author +!! ------ +! D. Gazen * L.A. * +! +!! Modifications +!! ------------- +! Original 4/09/2000 +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! + IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! + INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum +! + INTEGER, INTENT(OUT) :: KINFO ! MPI return status +! +!* 0.2 Declarations of local variables : +! + INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate + ! sum +! + INTEGER :: IDIM +! +!------------------------------------------------------------------------------- +! +!* 1. CALL THE MPI_ALLREDUCE ROUTINE +! ------------------------------ +! + IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3) +! + CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, & + NMNH_COMM_WORLD, KINFO) +! + PRES = ZRES +! +!------------------------------------------------------------------------------- +! + END SUBROUTINE REDUCE_SUM_I3D_ll +! +!------------------------------------------------------------------------------- +! +end module mode_reduce_sum diff --git a/src/LIB/SURCOUCHE/src/mode_scatter.f90 b/src/LIB/SURCOUCHE/src/mode_scatter.f90 index f16f8f6145411a02a68b86cfa0947bf777adbd92..32eaa729052794702023468e113cecabaa913449 100644 --- a/src/LIB/SURCOUCHE/src/mode_scatter.f90 +++ b/src/LIB/SURCOUCHE/src/mode_scatter.f90 @@ -6,6 +6,7 @@ ! Modifications: ! J. Escobar 10/02/2012: bug in MPI_RECV: replace MPI_STATUSES_IGNORE with MPI_STATUS_IGNORE ! P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications +! P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (SCATTERXX_N3 and SCATTERXY_N3) !----------------------------------------------------------------- MODULE MODE_SCATTER_ll @@ -19,14 +20,17 @@ IMPLICIT NONE PRIVATE INTERFACE SCATTER_XXFIELD - MODULE PROCEDURE SCATTERXX_X1,SCATTERXX_X2,SCATTERXX_X3& - & ,SCATTERXX_X4,SCATTERXX_X5,SCATTERXX_X6,& - & SCATTERXX_N1,SCATTERXX_N2 + MODULE PROCEDURE & + SCATTERXX_X1, SCATTERXX_X2, SCATTERXX_X3, & + SCATTERXX_X4, SCATTERXX_X5, SCATTERXX_X6, & + SCATTERXX_N1, SCATTERXX_N2, SCATTERXX_N3 END INTERFACE -INTERFACE SCATTER_XYFIELD - MODULE PROCEDURE SCATTERXY_X2,SCATTERXY_X3,SCATTERXY_X4,& - & SCATTERXY_X5,SCATTERXY_X6,SCATTERXY_N2 +INTERFACE SCATTER_XYFIELD + MODULE PROCEDURE & + SCATTERXY_X2, SCATTERXY_X3, & + SCATTERXY_X4, SCATTERXY_X5, SCATTERXY_X6, & + SCATTERXY_N2, SCATTERXY_N3 END INTERFACE PUBLIC SCATTER_XXFIELD,SCATTER_XYFIELD,GET_DOMREAD_ll @@ -371,6 +375,44 @@ END IF END SUBROUTINE SCATTERXX_N2 +SUBROUTINE SCATTERXX_N3(HDIR,KSEND,KRECV,KROOT,KCOMM) +USE MODD_IO, ONLY: ISP, ISNPROC + +CHARACTER(LEN=*), INTENT(IN) :: HDIR +INTEGER,DIMENSION(:,:,:), TARGET, INTENT(IN) :: KSEND +INTEGER,DIMENSION(:,:,:), INTENT(INOUT) :: KRECV +INTEGER, INTENT(IN) :: KROOT +INTEGER, INTENT(IN) :: KCOMM + +INTEGER :: IERR +INTEGER :: JI +INTEGER :: IXO,IXE,IYO,IYE +INTEGER,DIMENSION(:,:,:), POINTER :: TI2DP + +IF (ISP == KROOT) THEN + DO JI = 1,ISNPROC + CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) + IF (HDIR == 'XX') THEN + TI2DP=>KSEND(IXO:IXE,:,:) + ELSE ! HDIR ='YY' + TI2DP=>KSEND(IYO:IYE,:,:) + END IF + + IF (ISP /= JI) THEN + CALL MPI_BSEND(TI2DP,SIZE(TI2DP),MNHINT_MPI,JI-1,199+KROOT,KCOMM& + & ,IERR) + ELSE + KRECV(:,:,:) = TI2DP(:,:,:) + END IF + END DO +ELSE + CALL MPI_RECV(KRECV,SIZE(KRECV),MNHINT_MPI,KROOT-1,199+KROOT,KCOMM& + & ,MPI_STATUS_IGNORE,IERR) +END IF + +END SUBROUTINE SCATTERXX_N3 + + SUBROUTINE SCATTERXY_X2(PSEND,PRECV,KROOT,KCOMM) USE MODD_IO, ONLY: ISP, ISNPROC USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE @@ -584,6 +626,39 @@ END IF END SUBROUTINE SCATTERXY_N2 +SUBROUTINE SCATTERXY_N3(KSEND,KRECV,KROOT,KCOMM) +USE MODD_IO, ONLY: ISP, ISNPROC + +INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN) :: KSEND +INTEGER,DIMENSION(:,:,:), INTENT(INOUT) :: KRECV +INTEGER, INTENT(IN) :: KROOT +INTEGER, INTENT(IN) :: KCOMM + +INTEGER :: IERR +INTEGER :: JI +INTEGER :: IXO,IXE,IYO,IYE +INTEGER,DIMENSION(:,:,:), POINTER :: TI3DP + +IF (ISP == KROOT) THEN + DO JI = 1,ISNPROC + CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) + TI3DP=>KSEND(IXO:IXE,IYO:IYE,:) + + IF (ISP /= JI) THEN + CALL MPI_BSEND(TI3DP,SIZE(TI3DP),MNHINT_MPI,JI-1,199+KROOT,KCOMM& + & ,IERR) + ELSE + KRECV(:,:,:) = TI3DP(:,:,:) + END IF + END DO +ELSE + CALL MPI_RECV(KRECV,SIZE(KRECV),MNHINT_MPI,KROOT-1,199+KROOT,KCOMM& + & ,MPI_STATUS_IGNORE,IERR) +END IF + +END SUBROUTINE SCATTERXY_N3 + + SUBROUTINE GET_DOMREAD_ll(KIP,KXOR,KXEND,KYOR,KYEND) USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll USE MODD_VAR_ll, ONLY: TCRRT_PROCONF diff --git a/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 index 77d08c6866ce897efa35164f450f5b2ed04e74b3..3ab67f7ba8364b8e0c4a5516bf4c44c4f99e0b15 100644 --- a/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 @@ -37,12 +37,18 @@ ! !------------------------------------------------------------------------------ ! - USE MODD_MPIF - !JUANZ - USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD - !JUANZ -! -! INCLUDE 'mpif.h' +USE MODD_MPIF +USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD + +implicit none + +interface GMAXLOC_ll + module procedure GMAXLOC1D_ll, GMAXLOC2D_ll, GMAXLOC3D_ll +end interface + +interface GMINLOC_ll + module procedure GMINLOC1D_ll, GMINLOC2D_ll, GMINLOC3D_ll +end interface ! CONTAINS ! diff --git a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 index 6e9bfb3a5ec5955fb2e00360209d53ab23be3e4f..613d6c3eee38a2cc70052f92f6da957aceaacc8f 100644 --- a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -6,6 +6,7 @@ ! Modifications: ! J. Escobar 15/09/2015: WENO5 & JPHEXT <> 1 ! P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications +! P. Wautelet 21/06/2019: mode REDUCESUM_ll subroutine to mode_reduce_sum.f90 (to remove circular dependencies between modules) !----------------------------------------------------------------- ! ################## @@ -57,11 +58,15 @@ ! !------------------------------------------------------------------------------ ! - USE MODD_MPIF - use modd_precision, only: MNHINT_MPI, MNHREAL_MPI - USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD +USE MODD_MPIF +use modd_precision, only: MNHINT_MPI, MNHREAL_MPI +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD + +use mode_reduce_sum + +implicit none ! - CONTAINS +CONTAINS ! ! ####################################################### FUNCTION EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & @@ -118,7 +123,7 @@ ! USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT USE MODD_VAR_ll, ONLY: TCRRT_COMDATA - USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -368,7 +373,7 @@ USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -670,7 +675,7 @@ USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -971,7 +976,7 @@ USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! USE MODE_TOOLS_ll ! @@ -1207,7 +1212,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll USE MODD_VAR_ll, ONLY: IP, TCRRT_COMDATA, TCRRT_PROCONF, NPROC ! - USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -1414,7 +1419,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -1626,7 +1631,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -2379,664 +2384,4 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll END SUBROUTINE SUM_DIM1_ll ! -! ######################################## - SUBROUTINE REDUCE_SUM_0DD_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_0DD_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the scalar argument PRES on processors. -! -! REDUCE_SUM_0Q_ll is the routine for scalar REAL*16 argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_0Q_ll, each processor -! computes its local sum PRES; in REDUCE_SUM_0Q_ll -! we reduce this values and return the global sum -! in the PRES variable REAL*16. -! -!! External -!! -------- -! -!! Implicit Arguments -!! ------------------ -! -! -!! Author -!! ------ -! Ph. Kloos * CNRM - CERFACS * -! -!! Modifications -!! ------------- -! Original 27/06/98 -! R. Guivarch 09/07/98 Same argument PRES INOUT -! -!----------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - USE MODE_REPRO_SUM -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - TYPE(DOUBLE_DOUBLE), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - TYPE(DOUBLE_DOUBLE) :: ZRES ! sum -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - IF (FIRST_CALL_DD) CALL INIT_DD(KINFO) - ZRES%R = 0.0 ; ZRES%E = 0.0 - CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNH_DOUBLE_DOUBLE , & - MNH_SUM_DD, NMNH_COMM_WORLD, KINFO) - - PRES = ZRES -! -!------------------------------------------------------------------------------- -! -END SUBROUTINE REDUCE_SUM_0DD_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_0D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_0D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the scalar argument PRES on processors. -! -! REDUCE_SUM_0D_ll is the routine for scalar argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_0D_ll, each processor -! computes its local sum PRES; in REDUCE_SUM_0D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Implicit Arguments -!! ------------------ -! -! -!! Author -!! ------ -! Ph. Kloos * CNRM - CERFACS * -! -!! Modifications -!! ------------- -! Original 27/06/98 -! R. Guivarch 09/07/98 Same argument PRES INOUT -! -!----------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - REAL, INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - REAL :: ZRES ! Intermediate result -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHREAL_MPI, & - MPI_SUM, NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_0D_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_1DD_ll(PRES, KINFO) -! ######################################## -! - -!! Author -!! ------ -! J.Escobar 22/10/2010 -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! -! - USE MODE_REPRO_SUM - - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - TYPE(DOUBLE_DOUBLE), DIMENSION(:), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - TYPE(DOUBLE_DOUBLE), DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum - -! -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - IF (FIRST_CALL_DD) CALL INIT_DD(KINFO) - ZRES%R = 0.0 ; ZRES%E = 0.0 - CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES), MNH_DOUBLE_DOUBLE , & - MNH_SUM_DD, NMNH_COMM_WORLD, KINFO) -PRES = ZRES -! -!------------------------------------------------------------------------------- -! -END SUBROUTINE REDUCE_SUM_1DD_ll -! - -! ######################################## - SUBROUTINE REDUCE_SUM_1D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_1D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the each entry of the one-dimensional vector PRES -! on all processors. -! -! REDUCE_SUM_1D_ll is the routine for 1D argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_1D_ll, each processor -! computes its local 1D sum PRES; in REDUCE_SUM_1D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Implicit Arguments -!! ------------------ -! -! -!! Author -!! ------ -! Ph. Kloos * CNRM - CERFACS * -! -!! Modifications -!! ------------- -! Original 27/06/98 -! R. Guivarch 09/07/98 Same argument PRES INOUT -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - REAL, DIMENSION(:), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - REAL, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHREAL_MPI, & - MPI_SUM, NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_1D_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_2D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_2D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the each entry of the two-dimensional vector PRES -! on all processors. -! -! REDUCE_SUM_2D_ll is the routine for 2D argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_2D_ll, each processor -! computes its local 2D sum PRES; in REDUCE_SUM_2D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Implicit Arguments -!! ------------------ -! -! -!! Author -!! ------ -! Ph. Kloos * CNRM - CERFACS * -! -!! Modifications -!! ------------- -! Original 27/06/98 -! R. Guivarch 09/07/98 Same argument PRES INOUT -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - REAL, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum -! - INTEGER :: IDIM -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - IDIM = SIZE(PRES,1) * SIZE(PRES,2) -! - CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, & - NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_2D_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_3D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_3D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the each entry of the three-dimensional vector PRES -! on all processors. -! -! REDUCE_SUM_3D_ll is the routine for 3D argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_3D_ll, each processor -! computes its local 3D sum PRES; in REDUCE_SUM_3D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Implicit Arguments -!! ------------------ -! -! -!! Author -!! ------ -! Ph. Kloos * CNRM - CERFACS * -! -!! Modifications -!! ------------- -! Original 27/06/98 -! R. Guivarch 09/07/98 Same argument PRES INOUT -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate - ! sum -! - INTEGER :: IDIM -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3) -! - CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, & - NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_3D_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_I0D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_I0D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the scalar argument PRES on processors. -! -! REDUCE_SUM_I0D_ll is the routine for integer scalar argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_I0D_ll, each processor -! computes its local sum PRES; in REDUCE_SUM_I0D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Author -!! ------ -! D. Gazen * L.A. * -! -!! Modifications -!! ------------- -! Original 4/09/2000 -! -!----------------------------------------------------------------- -! -!* 0. DECLARATIONS -! -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - INTEGER, INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - INTEGER :: ZRES ! Intermediate result -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHINT_MPI, & - MPI_SUM, NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_I0D_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_I1D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_I1D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the each entry of the one-dimensional vector PRES -! on all processors. -! -! REDUCE_SUM_I1D_ll is the routine for integer 1D argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_I1D_ll, each processor -! computes its local 1D sum PRES; in REDUCE_SUM_I1D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Author -!! ------ -! D. Gazen * L.A. * -! -!! Modifications -!! ------------- -! Original 4/09/2000 -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - INTEGER, DIMENSION(:), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - INTEGER, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHINT_MPI, & - MPI_SUM, NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_I1D_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_I2D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_2D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the each entry of the two-dimensional vector PRES -! on all processors. -! -! REDUCE_SUM_I2D_ll is the routine for integer 2D argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_I2D_ll, each processor -! computes its local 2D sum PRES; in REDUCE_SUM_I2D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Author -!! ------ -! D. Gazen * L.A. * -! -!! Modifications -!! ------------- -! Original 4/09/2000 -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - INTEGER, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum -! - INTEGER :: IDIM -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - IDIM = SIZE(PRES,1) * SIZE(PRES,2) -! - CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, & - NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_I2D_ll -! -! ######################################## - SUBROUTINE REDUCE_SUM_I3D_ll(PRES, KINFO) -! ######################################## -! -!!**** *REDUCE_SUM_I3D_ll*- -! -!! Purpose -!! ------- -! This routine calculates the sum of the values -! of the each entry of the three-dimensional vector PRES -! on all processors. -! -! REDUCE_SUM_I3D_ll is the routine for 3D argument -! of the generic routine REDUCESUM_ll. -! -!! Method -!! ------ -! Before the call to REDUCE_SUM_I3D_ll, each processor -! computes its local 3D sum PRES; in REDUCE_SUM_I3D_ll -! we reduce this values and return the global sum -! in the PRES variable. -! -!! External -!! -------- -! -!! Author -!! ------ -! D. Gazen * L.A. * -! -!! Modifications -!! ------------- -! Original 4/09/2000 -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! - IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! - INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! -!* 0.2 Declarations of local variables : -! - INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate - ! sum -! - INTEGER :: IDIM -! -!------------------------------------------------------------------------------- -! -!* 1. CALL THE MPI_ALLREDUCE ROUTINE -! ------------------------------ -! - IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3) -! - CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, & - NMNH_COMM_WORLD, KINFO) -! - PRES = ZRES -! -!------------------------------------------------------------------------------- -! - END SUBROUTINE REDUCE_SUM_I3D_ll -! -!------------------------------------------------------------------------------- -! END MODULE MODE_SUM_ll diff --git a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 index 8378386e1c732809ab0d9849611e476bbed47304..b5fbe7198a2e4bd55d549e75aa671f105bef252e 100644 --- a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 @@ -47,16 +47,24 @@ ! Juan/Didier 12/03/2009: array bound bug correction with 1proc/MPIVIDE ! J. Escobar 27/06/2011 correction for gridnesting with different SHAPE ! - USE MODD_MPIF - use modd_precision, only: MNHINT_MPI, MNHREAL_MPI - USE MODD_STRUCTURE_ll - !JUANZ - USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD - !JUANZ +USE MODD_MPIF +use modd_precision, only: MNHINT_MPI, MNHREAL_MPI +USE MODD_STRUCTURE_ll +USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD - use mode_msg -! - CONTAINS +use mode_msg + +implicit none + +interface GET_GLOBALSLICE_ll + module procedure GET_1DGLOBALSLICE_ll, GET_2DGLOBALSLICE_ll +end interface + +interface GET_SLICE_ll + module procedure GET_1DSLICE_ll, GET_2DSLICE_ll +end interface + +CONTAINS SUBROUTINE SLIDE_COORD(KDIM_DATA,KDIM_PROC,THIS_PROC,KOR,KEND) diff --git a/src/LIB/SURCOUCHE/src/modi_adddelfield2_ll.f90 b/src/LIB/SURCOUCHE/src/modi_adddelfield2_ll.f90 deleted file mode 100644 index 5d3722292a18f4bf1d3bd9fccbbbff34363a8c02..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_adddelfield2_ll.f90 +++ /dev/null @@ -1,50 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -! ########################### - MODULE MODI_ADDDELFIELD2_ll -! ########################### -! -INTERFACE -! -!! ################################################# - SUBROUTINE ADD_FIELD2_ll( TPLIST_ll, TPHALO2_ll ) -!! ################################################# -! - USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll -! - TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll ! list of HALO2 - TYPE(HALO2_ll), TARGET :: TPHALO2_ll ! HALO2 to be added -! - END SUBROUTINE ADD_FIELD2_ll -! -!! ######################################################## - SUBROUTINE DEL_FIELD2_ll( TPLIST_ll, TPHALO2_ll, KINFO ) -!! ######################################################## -! - USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll -! - TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll ! list of fields - TYPE(HALO2_ll), TARGET :: TPHALO2_ll! field to be deleted - ! from the list of fields - INTEGER :: KINFO ! return status : - ! 0 if PFIELD has been found - ! 1 otherwise -! - END SUBROUTINE DEL_FIELD2_ll -! -END INTERFACE -! -END MODULE MODI_ADDDELFIELD2_ll - diff --git a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 b/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 deleted file mode 100644 index 043aa02d0f8ad3fd05de721e2429d5f4bff5969d..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 +++ /dev/null @@ -1,70 +0,0 @@ -!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Modifications: -! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine -!----------------------------------------------------------------- -! ######################### - MODULE MODI_ADDnDFIELD_ll -! ######################### -! -INTERFACE -! -!! ####################################################### - SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME ) -!! ####################################################### -! - USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll -! - CHARACTER(LEN=1), INTENT(IN) :: HDIR ! direction of the field - ! ("X" or "Y") - TYPE(LIST1D_ll), POINTER :: TPLIST ! list of fields - REAL, DIMENSION(:), TARGET :: PFIELD ! field to be added - ! to the list of fields - character(len=*), intent(in) :: HNAME ! Name of the field to be added -! - END SUBROUTINE ADD1DFIELD_ll -! -!! ################################################# - SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME ) -!! ################################################# -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! list of fields - REAL, DIMENSION(:,:), TARGET :: PFIELD ! field to be added - ! to the list of fields - character(len=*), intent(in) :: HNAME ! Name of the field to be added -! - END SUBROUTINE ADD2DFIELD_ll -! -!! ################################################# - SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME ) -!! ################################################# -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! list of fields - REAL, DIMENSION(:,:,:), TARGET :: PFIELD ! field to be added - ! to the list of fields - character(len=*), intent(in) :: HNAME ! Name of the field to be added -! - END SUBROUTINE ADD3DFIELD_ll -! -!! ################################################# - SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME ) -!! ################################################# -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - type(list_ll), pointer :: tplist ! list of fields - real, dimension(:,:,:,:), intent(in) :: pfield ! field to be added to the list of fields - character(len=*), intent(in) :: hname ! name of the field to be added -! - END SUBROUTINE ADD4DFIELD_ll -! -END INTERFACE -! -END MODULE MODI_ADDnDFIELD_ll diff --git a/src/LIB/SURCOUCHE/src/modi_delndfield_ll.f90 b/src/LIB/SURCOUCHE/src/modi_delndfield_ll.f90 deleted file mode 100644 index dc4dbc89f353721f10ecc5291280c4c7803a0556..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_delndfield_ll.f90 +++ /dev/null @@ -1,78 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -! ######################## - MODULE MODI_DELnDFIELD_ll -! ######################### -! -INTERFACE -! -!! ################################################# - SUBROUTINE DEL1DFIELD_ll( TPLIST, PFIELD, KINFO ) -!! ################################################# -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! list of fields - REAL, DIMENSION(:), TARGET :: PFIELD ! field to be deleted - ! from the list of fields - INTEGER, INTENT(OUT) :: KINFO ! return status : - ! 0 if PFIELD has been found - ! 1 otherwise. -! - END SUBROUTINE DEL1DFIELD_ll -! -!! ################################################# - SUBROUTINE DEL2DFIELD_ll( TPLIST, PFIELD, KINFO ) -!! ################################################# -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! list of fields - REAL, DIMENSION(:,:), TARGET :: PFIELD ! field to be deleted - ! from the list of fields - INTEGER, INTENT(OUT) :: KINFO ! return status : - ! 0 if PFIELD has been found - ! 1 otherwise. -! - END SUBROUTINE DEL2DFIELD_ll -! -!! ################################################# - SUBROUTINE DEL3DFIELD_ll( TPLIST, PFIELD, KINFO ) -!! ################################################# -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! list of fields - REAL, DIMENSION(:,:,:), TARGET :: PFIELD ! field to be deleted - ! from the list of fields - INTEGER, INTENT(OUT) :: KINFO ! return status : - ! 0 if PFIELD has been found - ! 1 otherwise. -! - END SUBROUTINE DEL3DFIELD_ll -! -!! ################################# - SUBROUTINE CLEANLIST_ll( TPLIST ) -!! ################################# -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! list of fields -! - END SUBROUTINE CLEANLIST_ll -! -END INTERFACE -! -END MODULE MODI_DELnDFIELD_ll diff --git a/src/LIB/SURCOUCHE/src/modi_gather.f90 b/src/LIB/SURCOUCHE/src/modi_gather.f90 deleted file mode 100644 index edda3c46eb26e8e5dfb27db12f5dc57730f98d1e..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_gather.f90 +++ /dev/null @@ -1,54 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -MODULE MODI_GATHER_ll -! -INTERFACE GATHERALL_FIELD_ll - SUBROUTINE GATHERALL_X1(HDIR,PSEND,PRECV,KRESP) - CHARACTER(LEN=*), INTENT(IN) :: HDIR - REAL,DIMENSION(:), INTENT(IN) :: PSEND - REAL,DIMENSION(:), INTENT(INOUT):: PRECV - INTEGER, INTENT(INOUT):: KRESP - END SUBROUTINE GATHERALL_X1 - - SUBROUTINE GATHERALL_X2(HDIR,PSEND,PRECV,KRESP) - CHARACTER(LEN=*), INTENT(IN) :: HDIR - REAL,DIMENSION(:,:), INTENT(IN) :: PSEND - REAL,DIMENSION(:,:), INTENT(INOUT):: PRECV - INTEGER, INTENT(INOUT):: KRESP - END SUBROUTINE GATHERALL_X2 - - SUBROUTINE GATHERALL_X3(HDIR,PSEND,PRECV,KRESP) - CHARACTER(LEN=*), INTENT(IN) :: HDIR - REAL,DIMENSION(:,:,:), INTENT(IN) :: PSEND - REAL,DIMENSION(:,:,:), INTENT(INOUT):: PRECV - INTEGER, INTENT(INOUT):: KRESP - END SUBROUTINE GATHERALL_X3 - - SUBROUTINE GATHERALL_N1(HDIR,KSEND,KRECV,KRESP) - CHARACTER(LEN=*), INTENT(IN) :: HDIR - INTEGER,DIMENSION(:), INTENT(IN) :: KSEND - INTEGER,DIMENSION(:), INTENT(INOUT):: KRECV - INTEGER, INTENT(INOUT):: KRESP - END SUBROUTINE GATHERALL_N1 - - SUBROUTINE GATHERALL_N2(HDIR,KSEND,KRECV,KRESP) - CHARACTER(LEN=*), INTENT(IN) :: HDIR - INTEGER,DIMENSION(:,:), INTENT(IN) :: KSEND - INTEGER,DIMENSION(:,:), INTENT(INOUT):: KRECV - INTEGER, INTENT(INOUT):: KRESP - END SUBROUTINE GATHERALL_N2 -END INTERFACE -! -END MODULE MODI_GATHER_ll diff --git a/src/LIB/SURCOUCHE/src/modi_get_ll.f90 b/src/LIB/SURCOUCHE/src/modi_get_ll.f90 deleted file mode 100644 index f77ebb3ea5899a9b0d8e4f078c1fe13bd40ca116..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_get_ll.f90 +++ /dev/null @@ -1,143 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- - -! ################## - MODULE MODI_GET_ll -! ################## -! -INTERFACE -! -!! ################################################## - SUBROUTINE GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM ) -!! ################################################## -! - CHARACTER(len=1), INTENT(IN) :: HSPLIT - INTEGER, INTENT(OUT) :: KXDIM, KYDIM -! - END SUBROUTINE GET_DIM_EXT_ll -! -!! ################################################### - SUBROUTINE GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM ) -!! ################################################### -! - CHARACTER(len=1), INTENT(IN) :: HSPLIT - INTEGER, INTENT(OUT) :: KXDIM, KYDIM -! - END SUBROUTINE GET_DIM_PHYS_ll -! -!! ########################################## - SUBROUTINE GET_OR_ll( HSPLIT, KXOR, KYOR ) -!! ########################################## -! - CHARACTER(len=1), INTENT(IN) :: HSPLIT - INTEGER, INTENT(OUT) :: KXOR, KYOR -! - END SUBROUTINE GET_OR_ll -! -!! #################################################### - SUBROUTINE GET_INDICE_ll( KXOR, KYOR, KXEND, KYEND ) -!! #################################################### -! - INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND -! - END SUBROUTINE GET_INDICE_ll -! -!! ########################################## - SUBROUTINE GET_GLOBALDIMS_ll(KIMAX, KJMAX) -!! ########################################## -! - INTEGER, INTENT(OUT) :: KIMAX, KJMAX ! current model dimensions -! - END SUBROUTINE GET_GLOBALDIMS_ll -! -!! ###################################################### - SUBROUTINE GET_PHYSICAL_ll( KXOR, KYOR, KXEND, KYEND ) -!! ###################################################### -! - INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND -! - END SUBROUTINE GET_PHYSICAL_ll -! -!! ############################################################### - SUBROUTINE GET_INTERSECTION_ll( KXOR, KYOR, KXEND, KYEND, & - KXORI, KYORI, KXENDI, KYENDI, & - HDOM, KINFO, KIP ) -!! ############################################################### -! - CHARACTER(LEN=4), INTENT(IN) :: HDOM ! 'EXTE' for extended subdomain - ! 'PHYS' for physical subdomain - INTEGER, INTENT(IN) :: KXOR, KYOR, & ! Coordinates of the - KXEND, KYEND ! region -! - INTEGER, INTENT(OUT) :: KXORI, KYORI, & ! Global Coordinates - KXENDI, KYENDI ! of the intersection - INTEGER, INTENT(OUT) :: KINFO ! Returned Info - INTEGER, INTENT(IN), OPTIONAL:: KIP ! Processor number - ! (or subdomain number) - END SUBROUTINE GET_INTERSECTION_ll -! -END INTERFACE -! -INTERFACE GET_GLOBALSLICE_ll -! -!! #################################################################### - SUBROUTINE GET_1DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, & - KB, KE, KERR ) -!! #################################################################### -! - REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY - CHARACTER(LEN=1), INTENT(IN) :: HDIR - INTEGER, INTENT(IN) :: KLOC - REAL, DIMENSION(:), INTENT(OUT) :: PGLOBALSLICE - INTEGER, OPTIONAL :: KB, KE, KERR -! - END SUBROUTINE GET_1DGLOBALSLICE_ll -! -!! #################################################################### - SUBROUTINE GET_2DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, & - KB, KE, KKB, KKE, KERR ) -!! #################################################################### -! - REAL, DIMENSION(:,:,:) :: PARRAY - CHARACTER(LEN=1) :: HDIR - INTEGER :: KLOC - REAL, DIMENSION(:,:) :: PGLOBALSLICE - INTEGER, OPTIONAL :: KB, KE, KKB, KKE, KERR -! - END SUBROUTINE GET_2DGLOBALSLICE_ll -! -END INTERFACE -! -INTERFACE GET_SLICE_ll -! -!! ##################################################################### - SUBROUTINE GET_1DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, KB, KE, KERR ) -!! ##################################################################### -! - REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY - CHARACTER(LEN=1), INTENT(IN) :: HDIR - INTEGER, INTENT(IN) :: KLOC - REAL, DIMENSION(:), INTENT(OUT) :: PSLICE - INTEGER, OPTIONAL :: KB, KE, KERR -! - END SUBROUTINE GET_1DSLICE_ll -! -!! ######################################################## - SUBROUTINE GET_2DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, & - KB, KE, KKB, KKE, KERR ) -!! ######################################################## -! - REAL, DIMENSION(:,:,:) :: PARRAY - CHARACTER(LEN=1) :: HDIR - INTEGER :: KLOC - REAL, DIMENSION(:,:) :: PSLICE - INTEGER, OPTIONAL :: KB, KE, KKB, KKE, KERR -! - END SUBROUTINE GET_2DSLICE_ll -! -END INTERFACE -! -END MODULE MODI_GET_ll diff --git a/src/LIB/SURCOUCHE/src/modi_init_ll.f90 b/src/LIB/SURCOUCHE/src/modi_init_ll.f90 deleted file mode 100644 index ecf09a18d3d3f1cc71bf7555cb7f11740f4007d5..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_init_ll.f90 +++ /dev/null @@ -1,188 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -! ################### - MODULE MODI_INIT_ll -! ################### -!! -INTERFACE -! -! ######################################### - SUBROUTINE SET_SPLITTING_ll( HSPLITTING ) -! ######################################### -! - CHARACTER(LEN=*) :: HSPLITTING -! - END SUBROUTINE SET_SPLITTING_ll -! -! ################################## - SUBROUTINE SET_LBX_ll( KLBX, KMI ) -! ################################## -! - CHARACTER(LEN=*) :: KLBX - INTEGER :: KMI -! - END SUBROUTINE SET_LBX_ll -! -! ################################## - SUBROUTINE SET_LBY_ll( KLBY, KMI ) -! ################################## -! - CHARACTER(LEN=*) :: KLBY - INTEGER :: KMI -! - END SUBROUTINE SET_LBY_ll -! -! ############################################ - SUBROUTINE SET_LBSIZEX_ll( KNBRIM, KRIMTAB ) -! ############################################ -! - INTEGER :: KNBRIM - INTEGER, DIMENSION(:) :: KRIMTAB -! - END SUBROUTINE SET_LBSIZEX_ll -! -! ############################################ - SUBROUTINE SET_LBSIZEY_ll( KNBRIM, KRIMTAB ) -! ############################################ -! - INTEGER :: KNBRIM - INTEGER, DIMENSION(:) :: KRIMTAB -! - END SUBROUTINE SET_LBSIZEY_ll -! -! ################################### - SUBROUTINE SET_DIM_ll( KX, KY, KZ ) -! ################################### -! - INTEGER :: KX,KY,KZ -! - END SUBROUTINE SET_DIM_ll -! -! ####################################################### - SUBROUTINE SET_JP_ll( KMODELMAX, KHEXT, KVEXT, KPHALO ) -! ####################################################### -! - INTEGER :: KMODELMAX, KHEXT, KVEXT, KPHALO -! - END SUBROUTINE SET_JP_ll -! -! ######################################## - SUBROUTINE SET_XRATIO_ll( KXRATIO, KMI ) -! ######################################## -! - INTEGER :: KXRATIO, KMI -! - END SUBROUTINE SET_XRATIO_ll -! -! ######################################## - SUBROUTINE SET_YRATIO_ll( KYRATIO, KMI ) -! ######################################## -! - INTEGER :: KYRATIO, KMI -! - END SUBROUTINE SET_YRATIO_ll -! -! ################################## - SUBROUTINE SET_DAD_ll( KDAD, KMI ) -! ################################## -! - INTEGER :: KDAD, KMI -! - END SUBROUTINE SET_DAD_ll -! -! ################################## - SUBROUTINE SET_XOR_ll( KXOR, KMI ) -! ################################## -! - INTEGER :: KXOR, KMI -! - END SUBROUTINE SET_XOR_ll -! -! #################################### - SUBROUTINE SET_XEND_ll( KXEND, KMI ) -! #################################### -! - INTEGER :: KXEND, KMI -! - END SUBROUTINE SET_XEND_ll -! -! ################################## - SUBROUTINE SET_YOR_ll( KYOR, KMI ) -! ################################## -! - INTEGER :: KYOR, KMI -! - END SUBROUTINE SET_YOR_ll -! -! #################################### - SUBROUTINE SET_YEND_ll( KYEND, KMI ) -! #################################### -! - INTEGER :: KYEND, KMI -! - END SUBROUTINE SET_YEND_ll -! -! ######################## - SUBROUTINE SET_DAD0_ll() -! ######################## -! - END SUBROUTINE SET_DAD0_ll -! -! ####################### - SUBROUTINE INIT_LB_ll() -! ####################### -! - END SUBROUTINE INIT_LB_ll -! -! ####################### - SUBROUTINE SET_LB_FIELD_ll(HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB, IIE, IJE, & - SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ) - ! - CHARACTER(LEN=*),INTENT(IN) :: HLBTYPE ! LB type : 'LB','LBU' - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! field on the whole domain (or subdomain) - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBXFIELD ! LB field - X direction - REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBYFIELD ! LB field - Y direction - !beginning and end of the local physical subdomain - INTEGER, INTENT(IN) :: IIB ! indice I Beginning in x direction - INTEGER, INTENT(IN) :: IJB ! indice J Beginning in y direction - INTEGER, INTENT(IN) :: IIE ! indice I End in x direction - INTEGER, INTENT(IN) :: IJE ! indice J End in y direction - INTEGER, INTENT(IN) :: SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ! shifting applied to the indices copied from PFIELD in each direction - ! it is used for LBXUM et LBXVM - ! I do not know why... - ! -! ####################### -! - END SUBROUTINE SET_LB_FIELD_ll -! -! ################################### - SUBROUTINE INI_PARA_ll( KINFO_ll ) -! ################################### -! - INTEGER, INTENT(OUT) :: KINFO_ll -! - END SUBROUTINE INI_PARA_ll -! -! ################################### - SUBROUTINE END_PARA_ll( KINFO_ll ) -! ################################### -! - INTEGER, INTENT(OUT) :: KINFO_ll -! - END SUBROUTINE END_PARA_ll -! -END INTERFACE -! -END MODULE MODI_INIT_ll diff --git a/src/LIB/SURCOUCHE/src/modi_location_ll.f90 b/src/LIB/SURCOUCHE/src/modi_location_ll.f90 deleted file mode 100644 index 4f6e4cdea2fb14c649ed4ff0b1bb5c35e25358dd..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_location_ll.f90 +++ /dev/null @@ -1,51 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- - -! ####################### - MODULE MODI_LOCATION_ll -! ####################### -! -INTERFACE -! -!! ########################################### - LOGICAL FUNCTION LNORTH_ll( K, HSPLITTING ) -!! ########################################### -! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting -! - END FUNCTION LNORTH_ll -! -!! ########################################## - LOGICAL FUNCTION LWEST_ll( K, HSPLITTING ) -!! ########################################## -! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting -! - END FUNCTION LWEST_ll -! -!! ########################################### - LOGICAL FUNCTION LSOUTH_ll( K, HSPLITTING ) -!! ########################################### -! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting -! - END FUNCTION LSOUTH_ll -! -!! ########################################## - LOGICAL FUNCTION LEAST_ll( K, HSPLITTING ) -!! ########################################## -! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting -! - END FUNCTION LEAST_ll -! -END INTERFACE -! -END MODULE MODI_LOCATION_ll diff --git a/src/LIB/SURCOUCHE/src/modi_nest_ll.f90 b/src/LIB/SURCOUCHE/src/modi_nest_ll.f90 deleted file mode 100644 index d4fc1b5f7af4e1d7f03128429c9e057974206a11..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_nest_ll.f90 +++ /dev/null @@ -1,195 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -! ################### - MODULE MODI_NEST_ll -! ################### -! -INTERFACE -! -! ############################################### - SUBROUTINE GET_MODEL_NUMBER_ll( KMODEL_NUMBER ) -! ############################################### -! - INTEGER :: KMODEL_NUMBER -! - END SUBROUTINE GET_MODEL_NUMBER_ll -! -! #################################################### - SUBROUTINE GET_CHILD_DIM_ll( KCHILD, KX, KY, KINFO ) -! #################################################### -! - INTEGER, INTENT(IN) :: KCHILD -! - INTEGER, INTENT(OUT) :: KX, KY -! - INTEGER, INTENT(OUT) :: KINFO -! - END SUBROUTINE GET_CHILD_DIM_ll -! -! ################################################################### - SUBROUTINE GET_FEEDBACK_COORD_ll( KXOR, KYOR, KXEND, KYEND, KINFO ) -! ################################################################### -! - INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND -! - INTEGER, INTENT(OUT) :: KINFO -! - END SUBROUTINE GET_FEEDBACK_COORD_ll -! -! ################################## - SUBROUTINE UNSET_LSFIELD_1WAY_ll() -! ################################## -! - END SUBROUTINE UNSET_LSFIELD_1WAY_ll -! -! ########################################## - SUBROUTINE UNSET_LSFIELD_2WAY_ll( KMODEL ) -! ########################################## -! - INTEGER, INTENT(IN) :: KMODEL -! - END SUBROUTINE UNSET_LSFIELD_2WAY_ll -! -! ######################################### - SUBROUTINE LS_FORCING_ll( KCHILD, KINFO, OEXTRAPOL, OCYCLIC_EXTRAPOL ) -! ######################################### -! - INTEGER, INTENT(IN) :: KCHILD - INTEGER, INTENT(OUT) :: KINFO - LOGICAL, OPTIONAL, INTENT(IN) :: OEXTRAPOL - LOGICAL, OPTIONAL, INTENT(IN) :: OCYCLIC_EXTRAPOL -! - END SUBROUTINE LS_FORCING_ll -! -! ################################### - SUBROUTINE LS_FEEDBACK_ll( KINFO ) -! ################################### -! - INTEGER, INTENT(OUT) :: KINFO -! - END SUBROUTINE LS_FEEDBACK_ll -! - -! ############################# - SUBROUTINE UNSET_LBFIELD_ll() -! ############################# -! - END SUBROUTINE UNSET_LBFIELD_ll -! -! ######################################### - SUBROUTINE LB_FORCING_ll( KCHILD, KINFO ) -! ######################################### -! - INTEGER, INTENT(IN) :: KCHILD -! - INTEGER, INTENT(OUT) :: KINFO -! - END SUBROUTINE LB_FORCING_ll -! -!! ########################################################### - FUNCTION LBFINE2COARSE( KRATIO, KLBSIZE ) RESULT( KCOARSE ) -!! ########################################################### -! - IMPLICIT NONE -! - INTEGER :: KCOARSE -! - INTEGER :: KRATIO, KLBSIZE -! - END FUNCTION LBFINE2COARSE -! -! ######################################### - SUBROUTINE GO_TOMODEL_ll( KMODEL, KINFO ) -! ######################################### -! -INTEGER :: KMODEL, KINFO -! - END SUBROUTINE GO_TOMODEL_ll -! -END INTERFACE -! -INTERFACE SET_LSFIELD_1WAY_ll -! -! ############################################################# - SUBROUTINE SET_LS2DFIELD_1WAY_ll( P2DFIELD, PTFIELD, KMODEL ) -! ############################################################# -! - REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD - INTEGER, INTENT(IN) :: KMODEL -! - END SUBROUTINE SET_LS2DFIELD_1WAY_ll -! -! ############################################################# - SUBROUTINE SET_LS3DFIELD_1WAY_ll( P3DFIELD, PTFIELD, KMODEL ) -! ############################################################# -! - REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD - INTEGER, INTENT(IN) :: KMODEL -! - END SUBROUTINE SET_LS3DFIELD_1WAY_ll -! -END INTERFACE -! -INTERFACE SET_LSFIELD_2WAY_ll -! -! ##################################################### - SUBROUTINE SET_LS2DFIELD_2WAY_ll( P2DFIELD, PTFIELD ) -! ##################################################### -! - REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD -! - END SUBROUTINE SET_LS2DFIELD_2WAY_ll -! -! ##################################################### - SUBROUTINE SET_LS3DFIELD_2WAY_ll( P3DFIELD, PTFIELD ) -! ##################################################### -! - REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD -! - END SUBROUTINE SET_LS3DFIELD_2WAY_ll -! -END INTERFACE -! -INTERFACE SET_LBFIELD_ll -! -! ############################################################## - SUBROUTINE SET_LB2DFIELD_ll( P2DFIELD, PTFIELD, KFINELBSIZE, & - HSIDE, KMODEL ) -! ############################################################## -! - REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD -! - INTEGER, INTENT(IN) :: KFINELBSIZE, KMODEL -! - CHARACTER(LEN=*), INTENT(IN) :: HSIDE -! - END SUBROUTINE SET_LB2DFIELD_ll -! -! ############################################################## - SUBROUTINE SET_LB3DFIELD_ll( P3DFIELD, PTFIELD, KFINELBSIZE, & - HSIDE, KMODEL ) -! ############################################################## -! - REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD -! - INTEGER, INTENT(IN) :: KFINELBSIZE, KMODEL -! - CHARACTER(LEN=*), INTENT(IN) :: HSIDE -! - END SUBROUTINE SET_LB3DFIELD_ll -! -END INTERFACE -! -END MODULE MODI_NEST_ll diff --git a/src/LIB/SURCOUCHE/src/modi_remap_ll.f90 b/src/LIB/SURCOUCHE/src/modi_remap_ll.f90 deleted file mode 100644 index ab47659f701fbf8b4ecd1c08ddcd1736d25f34d3..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_remap_ll.f90 +++ /dev/null @@ -1,63 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -! #################### - MODULE MODI_REMAP_ll -! #################### -! -INTERFACE -! -!! ######################################################## - SUBROUTINE REMAP_2WAY_X_ll( PFIELDIN, PFIELDOUT, KINFO ) -!! ######################################################## -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent - REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field - INTEGER :: KINFO ! return status -! - END SUBROUTINE REMAP_2WAY_X_ll -! -! ######################################################## - SUBROUTINE REMAP_X_2WAY_ll( PFIELDIN, PFIELDOUT, KINFO ) -! ######################################################## -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent - REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field - INTEGER :: KINFO ! return status -! - END SUBROUTINE REMAP_X_2WAY_ll -! -! ##################################################### - SUBROUTINE REMAP_X_Y_ll( PFIELDIN, PFIELDOUT, KINFO ) -! ##################################################### -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent - REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field - INTEGER :: KINFO ! return status -! - END SUBROUTINE REMAP_X_Y_ll -! -! ##################################################### - SUBROUTINE REMAP_Y_X_ll( PFIELDIN, PFIELDOUT, KINFO ) -! ##################################################### -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent - REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field - INTEGER :: KINFO ! return status -! - END SUBROUTINE REMAP_Y_X_ll -! -END INTERFACE -! -END MODULE MODI_REMAP_ll diff --git a/src/LIB/SURCOUCHE/src/modi_scatter.f90 b/src/LIB/SURCOUCHE/src/modi_scatter.f90 deleted file mode 100644 index c85b9f1f667699f290d7acbf1ef3096c7f666403..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_scatter.f90 +++ /dev/null @@ -1,29 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - -! ######spl - MODULE MODI_SCATTER -! ##################### -! -INTERFACE - SUBROUTINE SCATTER(P1,P2) -! -REAL, DIMENSION(:,:), INTENT(IN) :: P1 -REAL, DIMENSION(:,:), INTENT(OUT) :: P2 -! -END SUBROUTINE SCATTER -! -END INTERFACE -! -END MODULE MODI_SCATTER diff --git a/src/LIB/SURCOUCHE/src/modi_sum_ll.f90 b/src/LIB/SURCOUCHE/src/modi_sum_ll.f90 deleted file mode 100644 index dfef9061dd6354c4ad9a237ff55f6384a0aa227e..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_sum_ll.f90 +++ /dev/null @@ -1,365 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -! ################## - MODULE MODI_SUM_ll -! ################## -! -INTERFACE -! -!! ####################################################### - FUNCTION EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ####################################################### -! - REAL, DIMENSION(:,:,:), POINTER :: EXTRACT_ll ! Result -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates - KXEND, KYEND, KZEND ! of the region -! - END FUNCTION EXTRACT_ll -! -!! ########################################################### - FUNCTION SUM1D_ll( PFIELD, KDIR, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ########################################################### -! - REAL, DIMENSION(:,:), POINTER :: SUM1D_ll ! Result -! - INTEGER, INTENT(IN) :: KDIR ! Summation direction (1, 2 or 3) -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates - KXEND, KYEND, KZEND ! of the region -! - END FUNCTION SUM1D_ll -! -!! ################################################################### - FUNCTION SUM2D_ll( PFIELD, KDIR1, KDIR2, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ################################################################### -! - REAL, DIMENSION(:), POINTER :: SUM2D_ll ! Result -! - INTEGER, INTENT(IN) :: KDIR1, KDIR2 ! Summation directions (1, 2 or 3) -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates - KXEND, KYEND, KZEND ! of the region -! - END FUNCTION SUM2D_ll -! -!! ##################################################### - FUNCTION SUM3D_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ##################################################### -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates - KXEND, KYEND, KZEND ! of the region -! - END FUNCTION SUM3D_ll -! -!! ####################################################################### - FUNCTION SUM_1DFIELD_ll( PFIELD, HDIR, KOR, KEND, KERR ) RESULT( ZSUM ) -!! ####################################################################### -! - REAL, DIMENSION(:), INTENT(IN) :: PFIELD ! 1d Field -! - CHARACTER(LEN=1) :: HDIR ! direction of the 1D field -! - INTEGER, OPTIONAL, INTENT(OUT) :: KERR ! Returned Info -! - INTEGER, OPTIONAL, INTENT(IN) :: KOR, KEND ! Coordinates of the region -! - REAL :: ZSUM ! result -! - END FUNCTION SUM_1DFIELD_ll -! -!! ######################################################## - REAL FUNCTION MAX_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ######################################################## -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates - KXEND, KYEND, KZEND ! of the region -! - END FUNCTION MAX_ll -! -!! ######################################################## - REAL FUNCTION MIN_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, & - KXEND, KYEND, KZEND ) -!! ######################################################## -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates - KXEND, KYEND, KZEND ! of the region -! - END FUNCTION MIN_ll -! -!! ########################################### - FUNCTION SUMMASK_ll( PFIELD, OMASK, KINFO ) -!! ########################################### -! - REAL, DIMENSION(:), POINTER :: SUMMASK_ll ! Result -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK ! 2d Mask -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - END FUNCTION SUMMASK_ll -! -!! #################################################### - REAL FUNCTION SUMMASKCOMP_ll( PFIELD, OMASK, KINFO ) -!! #################################################### -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field -! - LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK ! 2d Mask -! - INTEGER, INTENT(OUT) :: KINFO ! Returned Info -! - END FUNCTION SUMMASKCOMP_ll -! -!! ############################################# - SUBROUTINE SUM_DIM1_ll( PFIELD, PRES, KINFO ) -!! ############################################# -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD - REAL, DIMENSION(:, :), INTENT(OUT) :: PRES -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE SUM_DIM1_ll -! -!! ############################################# - SUBROUTINE SUM_DIM2_ll( PFIELD, PRES, KINFO ) -!! ############################################# -! - REAL, DIMENSION(:), INTENT(IN) :: PFIELD - REAL, DIMENSION(:), INTENT(OUT) :: PRES -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE SUM_DIM2_ll -! -END INTERFACE -! -INTERFACE GMAXLOC_ll -! -!! ####################################################### - FUNCTION GMAXLOC3D_ll( PARRAY, MASK ) RESULT( KMAXLOC ) -!! ####################################################### -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PARRAY ! input array in - ! which the maximum is to be found -! - LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK ! mask - INTEGER, DIMENSION(3) :: KMAXLOC ! indices - ! of the maximum value on the whole domain (global coordinates) -! - END FUNCTION GMAXLOC3D_ll -! -!! ############################################################## - FUNCTION GMAXLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC ) -!! ############################################################## -! - REAL, DIMENSION(:,:), INTENT(IN) :: PARRAY ! input array in - ! which the maximum is to be found - LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK ! mask - INTEGER, DIMENSION(2) :: KMAXLOC ! indices - ! of the maximum value on the whole domain (global coordinates) - INTEGER, DIMENSION(2), OPTIONAL :: KDIMS -! - END FUNCTION GMAXLOC2D_ll -! -!! ############################################################## - FUNCTION GMAXLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC ) -!! ############################################################## -! - REAL, DIMENSION(:), INTENT(IN) :: PARRAY ! input array in - ! which the maximum is to be found - LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK ! mask - INTEGER :: KMAXLOC ! indice - ! of the maximum value on the whole domain (global coordinates) - INTEGER, OPTIONAL :: KDIMS -! - END FUNCTION GMAXLOC1D_ll -! -END INTERFACE -! -INTERFACE GMINLOC_ll -! -!! ####################################################### - FUNCTION GMINLOC3D_ll( PARRAY, MASK ) RESULT( KMINLOC ) -!! ####################################################### -! - REAL, DIMENSION(:,:,:), INTENT(IN) :: PARRAY ! input array in - ! which the minimum is to be found - LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK ! mask - INTEGER, DIMENSION(3) :: KMINLOC ! indices - ! of the minimum value on the whole domain (global coordinates) -! - END FUNCTION GMINLOC3D_ll -! -!! ############################################################## - FUNCTION GMINLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT (KMINLOC ) -!! ############################################################## -! - REAL, DIMENSION(:,:), INTENT(IN) :: PARRAY ! input array in - ! which the minimum is to be found - LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK ! mask - INTEGER, DIMENSION(2) :: KMINLOC ! indices - ! of the minimum value on the whole domain (global coordinates) - INTEGER, DIMENSION(2), OPTIONAL :: KDIMS -! - END FUNCTION GMINLOC2D_ll -! -!! ############################################################## - FUNCTION GMINLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMINLOC ) -!! ############################################################## -! - REAL, DIMENSION(:), INTENT(IN) :: PARRAY ! input array in - ! which the minimum is to be found - LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK ! mask - INTEGER :: KMINLOC ! indice - ! of the minimum value on the whole domain (global coordinates) - INTEGER, OPTIONAL :: KDIMS -! - END FUNCTION GMINLOC1D_ll -! -END INTERFACE -! -INTERFACE REDUCESUM_ll -! -!! ########################################### - SUBROUTINE REDUCE_SUM_0DD_ll( PRES, KINFO ) -!! ########################################### -! - USE MODD_REPRO_SUM , ONLY : DOUBLE_DOUBLE -! - TYPE(DOUBLE_DOUBLE) , INTENT(INOUT) :: PRES ! sum -! - INTEGER , INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_0DD_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_0D_ll( PRES, KINFO ) -!! ########################################## -! - REAL, INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_0D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_1DD_ll( PRES, KINFO ) -!! ########################################## -! - USE MODD_REPRO_SUM , ONLY : DOUBLE_DOUBLE -! - TYPE(DOUBLE_DOUBLE),DIMENSION(:),INTENT(INOUT) :: PRES ! sum -! - INTEGER , INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_1DD_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_1D_ll( PRES, KINFO ) -!! ########################################## -! - REAL,DIMENSION(:),INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_1D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_2D_ll( PRES, KINFO ) -!! ########################################## -! - REAL,DIMENSION(:,:),INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_2D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_3D_ll( PRES, KINFO ) -!! ########################################## -! - REAL, DIMENSION(:,:,:),INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_3D_ll -! -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I0D_ll( PRES, KINFO ) -!! ########################################## -! - INTEGER, INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_I0D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I1D_ll( PRES, KINFO ) -!! ########################################## -! - INTEGER,DIMENSION(:),INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_I1D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I2D_ll( PRES, KINFO ) -!! ########################################## -! - INTEGER,DIMENSION(:,:),INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_I2D_ll -! -!! ########################################## - SUBROUTINE REDUCE_SUM_I3D_ll( PRES, KINFO ) -!! ########################################## -! - INTEGER, DIMENSION(:,:,:),INTENT(INOUT) :: PRES ! sum -! - INTEGER, INTENT(OUT) :: KINFO ! MPI return status -! - END SUBROUTINE REDUCE_SUM_I3D_ll -! -END INTERFACE -! -END MODULE MODI_SUM_ll diff --git a/src/LIB/SURCOUCHE/src/modi_update_ll.f90 b/src/LIB/SURCOUCHE/src/modi_update_ll.f90 deleted file mode 100644 index 19479f91a80ccbda23799dfc55bdd65f61920905..0000000000000000000000000000000000000000 --- a/src/LIB/SURCOUCHE/src/modi_update_ll.f90 +++ /dev/null @@ -1,77 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- - -! ##################### - MODULE MODI_UPDATE_ll -! ##################### -! -INTERFACE -! -!! ########################################## - SUBROUTINE UPDATE_HALO_ll( TPLIST, KINFO, HDIR ) -!! ########################################## -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields to be updated - INTEGER :: KINFO ! return status - CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction -! - END SUBROUTINE UPDATE_HALO_ll -! -!! ############################################ - SUBROUTINE UPDATE_1DHALO_ll( TPLIST, KINFO ) -!! ############################################ -! - USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll -! - TYPE(LIST1D_ll), POINTER :: TPLIST - INTEGER, INTENT(OUT) :: KINFO -! - END SUBROUTINE UPDATE_1DHALO_ll -! -!! ############################################################ - SUBROUTINE UPDATE_BOUNDARIES_ll( HDIRECTION, TPLIST, KINFO ) -!! ############################################################ -! - USE MODD_ARGSLIST_ll, ONLY : LIST_ll -! - CHARACTER(len=2), INTENT(IN) :: HDIRECTION - TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields to be updated - INTEGER :: KINFO ! return status -! - END SUBROUTINE UPDATE_BOUNDARIES_ll -! -! -!! ################################################################## - SUBROUTINE INIT_HALO2_ll(TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ) -!! ################################################################## -! - USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll -! - TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list of HALO2_lls - INTEGER :: KNBVAR ! number of HALO2_lls to allocate - INTEGER :: KDIMX, KDIMY, KDIMZ ! dimensions of the HALO2_lls -! - END SUBROUTINE INIT_HALO2_ll -! -!! ######################################################## - SUBROUTINE UPDATE_HALO2_ll( TPLIST, TPLISTHALO2, KINFO ) -!! ######################################################## -! - USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll,LIST_ll -! - TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of - ! fields to be sent - TYPE(HALO2LIST_ll), POINTER :: TPLISTHALO2 ! pointer to the list of - ! halo2 to be received - INTEGER :: KINFO ! return status -! - END SUBROUTINE UPDATE_HALO2_ll -! -END INTERFACE -! -END MODULE MODI_UPDATE_ll diff --git a/src/LIB/SURCOUCHE/src/test_double_double.f90 b/src/LIB/SURCOUCHE/src/test_double_double.f90 index eb1d20fa04a3f08ac29562b456da3f8815d0aaac..59b0b2976b5efbf1a835a7da28bbf824b6354f7e 100644 --- a/src/LIB/SURCOUCHE/src/test_double_double.f90 +++ b/src/LIB/SURCOUCHE/src/test_double_double.f90 @@ -1,12 +1,14 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- PROGRAM TEST_DOUBLE_DOUBLE ! This code calculates the summation of an array of real numbers ! distributed on multiple processors using double-double precision. USE MODD_MPIF + use mode_reduce_sum USE mode_repro_sum IMPLICIT NONE diff --git a/src/MNH/advec_4th_order_aux.f90 b/src/MNH/advec_4th_order_aux.f90 index fc56999ac43116470dadbdac2477333accd25bcc..a02a9bbbe3d0fe31f3e4210805e0ced089aaca55 100644 --- a/src/MNH/advec_4th_order_aux.f90 +++ b/src/MNH/advec_4th_order_aux.f90 @@ -111,7 +111,7 @@ USE MODD_CONF #ifdef _OPENACC USE MODE_DEVICE #endif -use mode_ll, only: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll +use mode_ll, only: GET_INDICE_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll ! IMPLICIT NONE ! diff --git a/src/MNH/aer_monitorn.f90 b/src/MNH/aer_monitorn.f90 index 21f1f177fdb72649cc8f5074726840a36ea06626..97faca64cb603b8b904a8512a07a01a45f85f619 100644 --- a/src/MNH/aer_monitorn.f90 +++ b/src/MNH/aer_monitorn.f90 @@ -1,7 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2008-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. +!----------------------------------------------------------------- !! ######################## MODULE MODI_AER_MONITOR_n !! ######################## @@ -120,7 +121,7 @@ USE MODD_CONF_n, ONLY: LUSERC,& ! Logical to use clouds NRR ! Total number of water variables USE MODD_PARAM_n, ONLY: CCLOUD USE MODD_PRECIP_n, ONLY: XEVAP3D -USE MODI_SUM_ll +USE MODE_SUM_ll USE MODI_SEDIM_DUST USE MODI_SEDIM_SALT USE MODI_DUST_FILTER diff --git a/src/MNH/bikhardt.f90 b/src/MNH/bikhardt.f90 index 1efebdc110d4eb558ebb4e10203fddeaebae9c7f..d1aef90e66f611cd6211de826c09ffdbce869a33 100644 --- a/src/MNH/bikhardt.f90 +++ b/src/MNH/bikhardt.f90 @@ -79,6 +79,8 @@ contains ! ------------ ! USE MODD_PARAMETERS ! Declarative modules + +use mode_tools_ll, only: GET_INDICE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/ch_aer_mod_init.f90 b/src/MNH/ch_aer_mod_init.f90 index b5a2409aae881e642fc93e797a0c011284024e94..6c22e54432cd4063b7c3facf2a3dc74ede01c378 100644 --- a/src/MNH/ch_aer_mod_init.f90 +++ b/src/MNH/ch_aer_mod_init.f90 @@ -1,4 +1,4 @@ -!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. @@ -41,6 +41,7 @@ END MODULE MODI_CH_AER_MOD_INIT !! ------------- !! 20/03/03 P . Tulet (CNRM/GMEI) add initialization tabulation !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet: 07/06/2019: allocate weights only when needed !! !! EXTERNAL !! -------- @@ -83,6 +84,12 @@ TZFILE => NULL() ! ! Initialize the mineral tabulation IF (CMINERAL == 'NARES') THEN + ALLOCATE( W1IJA(100,100), W1JKA(100,100), W2IJA(100,100), W2JKA(100,100) ) + ALLOCATE( W1IJB(100,100), W1JKB(100,100), W2IJB(100,100), W2JKB(100,100) ) + ALLOCATE( W1IJC(100,100), W1JKC(100,100), W2IJC(100,100), W2JKC(100,100) ) + ALLOCATE( X1MINA(2,100), X1MAXA(2,100), X1MODA(2,100), X2MINA(2,100), X2MAXA(2,100), X2MODA(2,100) ) + ALLOCATE( X1MINB(2,100), X1MAXB(2,100), X1MODB(2,100), X2MINB(2,100), X2MAXB(2,100), X2MODB(2,100) ) + ALLOCATE( X1MINC(2,100), X1MAXC(2,100), X1MODC(2,100), X2MINC(2,100), X2MAXC(2,100), X2MODC(2,100) ) ! .. the file ares.w contains the weights of the model CALL IO_File_add2list(TZFILE,'ares1A.w','CHEMTAB','READ') CALL IO_File_open(TZFILE) diff --git a/src/MNH/ch_aqueous_sedim1mom.f90 b/src/MNH/ch_aqueous_sedim1mom.f90 index bddef28fabab5eda5381b4c4acad12a3c03792e9..9b4e7c6c327a7146e172173aed5dc17d867c7b77 100644 --- a/src/MNH/ch_aqueous_sedim1mom.f90 +++ b/src/MNH/ch_aqueous_sedim1mom.f90 @@ -99,7 +99,8 @@ USE MODD_RAIN_ICE_PARAM, ONLY : XFSEDR, XEXSEDR, & XFSEDG, XEXSEDG use mode_tools, only: Countjv -! +use mode_tools_ll, only: GET_INDICE_ll + IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : diff --git a/src/MNH/ch_aqueous_tmicc2r2.f90 b/src/MNH/ch_aqueous_tmicc2r2.f90 index 463ce4238652ab665025bcec96199e685441306c..5009b65247fd7696a0cc62018e39858f2c03fc92 100644 --- a/src/MNH/ch_aqueous_tmicc2r2.f90 +++ b/src/MNH/ch_aqueous_tmicc2r2.f90 @@ -94,6 +94,7 @@ USE MODD_RAIN_C2R2_KHKO_PARAM, ONLY : XAUTO1, XAUTO2, & XACCR_RSMALL1, XACCR_RSMALL2 use mode_tools, only: Countjv +use mode_tools_ll, only: GET_INDICE_ll IMPLICIT NONE ! diff --git a/src/MNH/ch_aqueous_tmicice.f90 b/src/MNH/ch_aqueous_tmicice.f90 index c0fc812219caa96684384ec073a03b668b8f0fbf..e51d52f374a2b6ff66cb7891b25af689cb400fd3 100644 --- a/src/MNH/ch_aqueous_tmicice.f90 +++ b/src/MNH/ch_aqueous_tmicice.f90 @@ -137,6 +137,7 @@ USE MODD_CH_ICE_n ! index for ice phase chemistry wit USE MODE_PACK_PGI #endif use mode_tools, only: Countjv +use mode_tools_ll, only: GET_INDICE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/ch_aqueous_tmickess.f90 b/src/MNH/ch_aqueous_tmickess.f90 index ff4a0bf33b81dee3b215e2632813b506884c16a6..5c57138b8eca55b20d4550a54c4fd2f3d88c325c 100644 --- a/src/MNH/ch_aqueous_tmickess.f90 +++ b/src/MNH/ch_aqueous_tmickess.f90 @@ -84,6 +84,7 @@ USE MODD_CLOUDPAR, ONLY : XC1RC, XC2RC, &! autoconversion param. XCEXVT ! constant in the rain drop fall velocity use mode_tools, only: Countjv +use mode_tools_ll, only: GET_INDICE_ll IMPLICIT NONE ! diff --git a/src/MNH/ch_aqueous_tmickhko.f90 b/src/MNH/ch_aqueous_tmickhko.f90 index 7369be14eb357a3112c9f118dc42228bd90f8605..938565d212dcc3925fe8169f450aa6a397daba65 100644 --- a/src/MNH/ch_aqueous_tmickhko.f90 +++ b/src/MNH/ch_aqueous_tmickhko.f90 @@ -85,6 +85,7 @@ USE MODD_PARAMETERS,ONLY: JPHEXT, &! number of horizontal External points USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN use mode_tools, only: Countjv +use mode_tools_ll, only: GET_INDICE_ll IMPLICIT NONE ! diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90 index c5357b6a18dd0e5275a5c866958cb60f0edba919..30ea347667318cda050a7dd246ab9396b5635e95 100644 --- a/src/MNH/ch_monitorn.f90 +++ b/src/MNH/ch_monitorn.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- !! ######################## MODULE MODI_CH_MONITOR_n !! ######################## @@ -133,7 +134,6 @@ USE MODI_CH_AQUEOUS_TMICKHKO USE MODI_CH_AQUEOUS_SEDIM1MOM USE MODI_CH_AQUEOUS_SEDIM2MOM USE MODI_CH_AQUEOUS_CHECK -USE MODI_SUM_ll USE MODI_CH_AER_SEDIM_n USE MODI_CH_AER_WETDEP_n USE MODI_CH_ORILAM @@ -145,6 +145,7 @@ USE MODI_CH_AER_DEPOS USE MODE_ll USE MODE_MODELN_HANDLER use mode_msg +USE MODE_SUM_ll ! USE MODI_WRITE_TS1D USE MODD_CST, ONLY : XMNH_TINY diff --git a/src/MNH/change_gribex_var.f90 b/src/MNH/change_gribex_var.f90 index 0f4badbcd98c8f3280d2c46a7a704b8e51188ef8..a24b85dc832b2beaec76afa82d636023fbc7dabe 100644 --- a/src/MNH/change_gribex_var.f90 +++ b/src/MNH/change_gribex_var.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################# MODULE MODI_CHANGE_GRIBEX_VAR ! ############################# @@ -172,6 +173,7 @@ USE MODD_PARAMETERS USE MODD_REF ! USE MODE_THERMO +use mode_tools_ll, only: GET_INDICE_ll ! USE MODI_SHUMAN USE MODI_WATER_SUM diff --git a/src/MNH/convection.f90 b/src/MNH/convection.f90 index 84eb18803a7034d84f1845fa0c4020f698761b59..2738ac854fe50aabff8b02554b43b0c6f41b6c79 100644 --- a/src/MNH/convection.f90 +++ b/src/MNH/convection.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! ###################### MODULE MODI_CONVECTION ! ###################### @@ -166,6 +162,9 @@ END MODULE MODI_CONVECTION ! USE MODD_PARAMETERS USE MODD_CST + +use mode_tools_ll, only: GET_INDICE_ll + USE MODI_SHUMAN USE MODI_DEEP_CONVECTION USE MODI_SHALLOW_CONVECTION diff --git a/src/MNH/deallocate_model1.f90 b/src/MNH/deallocate_model1.f90 index 11a577e2e5a77f04b0ea4f0f24009235b5f51312..dc3107d54dd4857b1857c4a2692638d4e9a4c3c8 100644 --- a/src/MNH/deallocate_model1.f90 +++ b/src/MNH/deallocate_model1.f90 @@ -67,6 +67,7 @@ END MODULE MODI_DEALLOCATE_MODEL1 !! 10/2016 M.Mazoyer New KHKO output fields !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 02/2019 C.Lac add rain fraction as an output field +! P. Wautelet 07/06/2019: bugfix: deallocate XLSRVM only if allocated !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -306,7 +307,7 @@ IF ( KCALL == 3 ) THEN DEALLOCATE(XLSVM) DEALLOCATE(XLSWM) DEALLOCATE(XLSTHM) - DEALLOCATE(XLSRVM) + IF(ASSOCIATED(XLSRVM)) DEALLOCATE(XLSRVM) IF (ASSOCIATED(XLBXUM)) THEN DEALLOCATE(XLBXUM) DEALLOCATE(XLBYUM) diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 26d24db0e97d71b45f2bd9539ca23bfe86136846..38c7bba55cb86e02d0f9edc6ad19b085f384dacf 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -873,7 +873,6 @@ IF (KMI == 1) THEN NHTURBSV = 0 NCHEMSV = 0 NNEGASV = 0 - NDEPOSV = 0 NDEPOTRSV = 0 ! ! diff --git a/src/MNH/define_maskn.f90 b/src/MNH/define_maskn.f90 index abd56bf02b2932733f88c05d04b72af9265004f0..e7c927cb6105d71ce086710880d29681a7523602 100644 --- a/src/MNH/define_maskn.f90 +++ b/src/MNH/define_maskn.f90 @@ -68,7 +68,7 @@ USE MODE_MODELN_HANDLER ! USE MODD_VAR_ll, ONLY : YSPLITTING USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODE_TOOLS_ll, ONLY : INTERSECTION +USE MODE_TOOLS_ll, ONLY : GET_OR_ll, INTERSECTION ! IMPLICIT NONE ! diff --git a/src/MNH/eddyUV_flux_one_wayn.f90 b/src/MNH/eddyUV_flux_one_wayn.f90 index 99a1fc6783a34ab406dd09980941479396b15c5a..1e8e7c51314655f7e99de4252bd3562d2722878f 100644 --- a/src/MNH/eddyUV_flux_one_wayn.f90 +++ b/src/MNH/eddyUV_flux_one_wayn.f90 @@ -69,6 +69,7 @@ USE MODD_NESTING ! use mode_bikhardt USE MODE_FIELD, ONLY : TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME +use mode_tools_ll, only: GET_INDICE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/exchange.f90 b/src/MNH/exchange.f90 index fbf47a060f4524e611135ec95b0ba7a8293b0d5e..b6d8bb8b3a90378304d730c19fbdfeecb932cef2 100644 --- a/src/MNH/exchange.f90 +++ b/src/MNH/exchange.f90 @@ -1,14 +1,8 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/exchange.f90,v $ $Revision: 1.2.2.2.2.2.16.1.2.5.2.1 $ $Date: 2015/12/01 15:26:23 $ -!----------------------------------------------------------------- -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! #################### MODULE MODI_EXCHANGE ! #################### @@ -99,7 +93,7 @@ END MODULE MODI_EXCHANGE !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll +! USE MODE_ll ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_GRID_n @@ -108,7 +102,8 @@ USE MODD_BUDGET, ONLY : LBUDGET_SV USE MODD_CST, ONLY : XMNH_TINY USE MODD_LUNIT_n, ONLY : TLUOUT USE MODI_SHUMAN -USE MODI_SUM_ll +use mode_exchange_ll, only: UPDATE_HALO_ll +USE MODE_SUM_ll USE MODI_BUDGET USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC USE MODD_CH_AEROSOL, ONLY : LORILAM, NM6_AER diff --git a/src/MNH/extend_grid_parameter_mnh.f90 b/src/MNH/extend_grid_parameter_mnh.f90 index 3d5fc09a13966b120e77dbb6db3755d0e3a69ed0..f83fc564f7c7a88f784331aab62369990f598531 100644 --- a/src/MNH/extend_grid_parameter_mnh.f90 +++ b/src/MNH/extend_grid_parameter_mnh.f90 @@ -22,7 +22,7 @@ USE MODD_MPIF use MODD_PRECISION, only: MNHREAL_MPI USE MODD_VAR_ll, ONLY: NPROC, IP, NMNH_COMM_WORLD ! -USE MODE_TOOLS_ll, ONLY: INTERSECTION, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll +USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll, GET_INDICE_ll, GET_OR_ll, INTERSECTION, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll ! USE MODI_UPDATE_NHALO1D ! diff --git a/src/MNH/fill_zsmtn.f90 b/src/MNH/fill_zsmtn.f90 index 6a8bb7556c4e9ae88049eefa66be4c7d37b4b0b1..0aec87f432255cf0c4b0a52bb87c1a7d23730c71 100644 --- a/src/MNH/fill_zsmtn.f90 +++ b/src/MNH/fill_zsmtn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -70,6 +70,7 @@ USE MODI_INI_BIKHARDT_n USE MODI_SPAWN_ZS USE MODE_MODELN_HANDLER ! +use mode_nest_ll, only: GO_TOMODEL_ll USE MODE_SPLITTING_ll, ONLY : SPLIT2, DEF_SPLITTING2 USE MODD_VAR_ll, ONLY : NPROC, IP, YSPLITTING, NMNH_COMM_WORLD USE MODD_STRUCTURE_ll, ONLY : ZONE_ll diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90 index 1d3e057e3b5745ca58136806b5248925ff85f90d..8774b548f230f23bd8ac2e48bfed340df491a843 100644 --- a/src/MNH/goto_model_wrapper.f90 +++ b/src/MNH/goto_model_wrapper.f90 @@ -118,6 +118,7 @@ USE MODD_ADVFRC_n USE MODD_CH_PRODLOSSTOT_n USE MODD_CH_BUDGET_n USE MODE_FIELD +use mode_msg ! IMPLICIT NONE ! diff --git a/src/MNH/gps_zenith.f90 b/src/MNH/gps_zenith.f90 index 613ad8f2b6145570b8111a7ec83c5b251d675fdb..a11a074d6f511b7909c55934712aa9294cd0a3c2 100644 --- a/src/MNH/gps_zenith.f90 +++ b/src/MNH/gps_zenith.f90 @@ -86,7 +86,7 @@ USE MODD_PARAMETERS ! USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list -USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll +USE MODE_TOOLS_ll, ONLY: GET_INDICE_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll ! USE MODI_INTERPOL_STATION ! diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90 index e9e38431b8efa6cf0e9d939aef2ddf302a9b8bea..2e0a107b6f707f3c82045e9b89fa41225ba132c4 100644 --- a/src/MNH/ice_adjust.f90 +++ b/src/MNH/ice_adjust.f90 @@ -174,9 +174,10 @@ USE MODD_BUDGET USE MODD_CONF USE MODD_CST USE MODD_PARAMETERS -! + USE MODE_MPPDB -! +use mode_tools_ll, only: GET_INDICE_ll + #ifdef MNH_BITREP USE MODI_BITREP #endif diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90 index 957781f1862a455d18478686f61a10eca718268a..8d802babf157138a461aeff09c479f519d42149b 100644 --- a/src/MNH/ice_adjust_elec.f90 +++ b/src/MNH/ice_adjust_elec.f90 @@ -179,7 +179,9 @@ USE MODD_BUDGET USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELECEND USE MODD_ELEC_DESCR, ONLY : XRTMIN_ELEC, XQTMIN, XFC, XFI, XECHARGE USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN, XBI -! + +use mode_tools_ll, only: GET_INDICE_ll + USE MODI_CONDENSATION USE MODI_BUDGET USE MODI_GET_HALO diff --git a/src/MNH/ini_aeroset1.f90 b/src/MNH/ini_aeroset1.f90 index 5048577ac1f123343beeb03f4764ea643a07fa55..869ade50617ff16582b5ca8bc0354aa4fe0f155e 100644 --- a/src/MNH/ini_aeroset1.f90 +++ b/src/MNH/ini_aeroset1.f90 @@ -1,4 +1,4 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. @@ -23,8 +23,13 @@ END MODULE MODI_INI_AEROSET1 USE MODD_AEROSET +use mode_msg + IMPLICIT NONE +if ( .not.allocated( POLYTAU ) ) & + call Print_msg( NVERB_FATAL, 'GEN', 'INI_AEROSET1', 'POLYTAU not allocated') + POLYTAU(1, 1,1,1,1:13 )=(/ -733.61139, -13649.90625, -99755.00000, & -355288.34375, -608672.87500, -390948.84375, -22.75222, 156.46201, & -340.26620, 315.24551, -450.78485, 626.89001, 0.12454 /) diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index dad3e933933a55d6a761bae30c453cecf9a0e377..a7ff5457c1cfbe7464077149deef90d0492ec766 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -286,175 +286,177 @@ END MODULE MODI_INI_MODEL_n ! P. Wautelet 14/03/2019: correct ZWS when variable not present in file (set to XZWS_DEFAULT) ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! P. Wautelet 19/04/2019: removed unused dummy arguments and variables +! P. Wautelet 07/06/2019: allocate lookup tables for optical properties only when needed !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! -#ifdef CPLOASIS - USE MODI_SFX_OASIS_READ_NAM +#ifdef MNH_ECRAD +USE YOERDI, only: RCCO2 #endif -! -USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list -USE MODE_IO_FILE, ONLY: IO_File_open -USE MODE_IO_FIELD_READ, only: IO_Field_read -USE MODE_INI_ONE_WAY_n -USE MODE_GATHER_ll -USE MODE_MSG -USE MODE_TYPE_ZDIFFU -! -USE MODD_NSV -USE MODD_PARAMETERS -USE MODD_CST + +USE MODD_2D_FRC +USE MODD_ADVFRC_n +USE MODD_ADV_n +use MODD_AEROSET, only: POLYTAU, POLYSSA, POLYG +USE MODD_ARGSLIST_ll, only: LIST_ll +USE MODD_BIKHARDT_n +USE MODD_BLOWSNOW +USE MODD_BLOWSNOW_n +USE MODD_BUDGET +USE MODD_CH_AERO_n, only: XSOLORG,XMI +USE MODD_CH_AEROSOL, only: LORILAM +USE MODD_CH_BUDGET_n +USE MODD_CH_FLX_n, only: XCHFLX +USE MODD_CH_M9_n, only:NNONZEROTERMS +USE MODD_CH_MNHC_n, only: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & + LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH +USE MODD_CH_PH_n +USE MODD_CH_PRODLOSSTOT_n +USE MODD_CLOUD_MF_n USE MODD_CONF +USE MODD_CONF_n +USE MODD_CST +USE MODD_CTURB +USE MODD_CURVCOR_n +USE MODD_DEEP_CONVECTION_n +USE MODD_DEF_EDDY_FLUX_n ! for VT and WT fluxes +USE MODD_DEF_EDDYUV_FLUX_n ! FOR UV +USE MODD_DIAG_FLAG, only: LCHEMDIAG, CSPEC_BU_DIAG +USE MODD_DIM_n +USE MODD_DRAG_n +USE MODD_DRAGTREE USE MODD_DUST +use MODD_DUST_OPT_LKT, only: NMAX_RADIUS_LKT_DUST=>NMAX_RADIUS_LKT, NMAX_SIGMA_LKT_DUST=>NMAX_SIGMA_LKT, & + NMAX_WVL_SW_DUST=>NMAX_WVL_SW, & + XEXT_COEFF_WVL_LKT_DUST=>XEXT_COEFF_WVL_LKT, XEXT_COEFF_550_LKT_DUST=>XEXT_COEFF_550_LKT, & + XPIZA_LKT_DUST=>XPIZA_LKT, XCGA_LKT_DUST=>XCGA_LKT USE MODD_DYN -USE MODD_DYNZD -USE MODD_FRC -USE MODD_REF -USE MODD_SERIES, ONLY: LSERIES -USE MODD_TIME -USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI -USE MODD_NESTING, only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL -USE MODD_PASPOL -USE MODD_DRAGTREE -USE MODD_METRICS_n USE MODD_DYN_n +USE MODD_DYNZD USE MODD_DYNZD_n +USE MODD_ELEC_n, only: XCION_POS_FW, XCION_NEG_FW USE MODD_FIELD_n -USE MODD_PAST_FIELD_n -USE MODD_MEAN_FIELD_n -USE MODD_MEAN_FIELD -USE MODD_ADV_n -USE MODD_LSFIELD_n -USE MODD_GRID_n -USE MODD_GRID, ONLY: XLONORI,XLATORI -USE MODD_TIME_n -USE MODD_REF_n +#ifdef MNH_FOREFIRE +USE MODD_FOREFIRE +USE MODD_FOREFIRE_n +#endif +USE MODD_FRC USE MODD_FRC_n -USE MODD_CURVCOR_n -USE MODD_DIM_n -USE MODD_BUDGET -USE MODD_RADIATIONS_n -USE MODD_SHADOWS_n -USE MODD_PARAM_RAD_n, ONLY: CAER, CLW -USE MODD_VAR_ll, ONLY : IP -! -USE MODD_STAND_ATM, ONLY : XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM -USE MODD_CH_MNHC_n, ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & - LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH -USE MODD_CH_PH_n -USE MODD_CH_AEROSOL, ONLY : LORILAM -USE MODD_CH_AERO_n, ONLY : XSOLORG,XMI -USE MODD_CH_FLX_n, ONLY : XCHFLX +USE MODD_GET_n +USE MODD_GRID_n +USE MODD_GRID, only: XLONORI,XLATORI +USE MODD_IO, only: CIO_DIR, TFILEDATA, TFILE_DUMMY +USE MODD_IO_SURF_MNH, only: IO_SURF_MNH_MODEL +USE MODD_LATZ_EDFLX +USE MODD_LBC_n, only: CLBCX, CLBCY +USE MODD_LSFIELD_n +USE MODD_LUNIT_n +USE MODD_MEAN_FIELD +USE MODD_MEAN_FIELD_n +USE MODD_METRICS_n +USE MODD_MNH_SURFEX_n +USE MODD_NESTING, only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL +USE MODD_NSV +USE MODD_NSV +USE MODD_NUDGING_n, only: LNUDGING +USE MODD_OUT_n +USE MODD_PARAMETERS USE MODD_PARAM_KAFR_n USE MODD_PARAM_MFSHALL_n -USE MODD_DEEP_CONVECTION_n -USE MODD_OUT_n -USE MODD_BIKHARDT_n -USE MODD_NUDGING_n, ONLY : LNUDGING -USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG, CSPEC_BU_DIAG -USE MODD_CLOUD_MF_n -USE MODD_NSV -! -USE MODD_ELEC_n, ONLY : XCION_POS_FW, XCION_NEG_FW - -USE MODD_LUNIT_n -USE MODD_CONF_n -USE MODD_GET_n -USE MODD_TURB_n -USE MODD_CTURB -USE MODD_LBC_n, only: CLBCX, CLBCY +USE MODD_PARAM_n +USE MODD_PARAM_RAD_n, only: CAER, CAOP, CLW +USE MODD_PASPOL USE MODD_PASPOL_n -USE MODD_DRAG_n -USE MODD_BLOWSNOW -USE MODD_BLOWSNOW_n -use modd_precision, only: LFIINT -! -! -USE MODI_INI_BUDGET -USE MODI_INI_SW_SETUP -USE MODI_INI_LW_SETUP -USE MODI_SET_GRID -USE MODI_METRICS -USE MODI_UPDATE_METRICS -USE MODI_READ_FIELD -USE MODI_SET_REF -USE MODI_INI_DYNAMICS -USE MODI_INI_TKE_EPS -USE MODI_SET_DIRCOS -USE MODI_INI_CPL -USE MODI_INI_RADIATIONS -USE MODI_INI_RADIATIONS_ECMWF -USE MODI_INI_RADIATIONS_ECRAD +USE MODD_PAST_FIELD_n +use modd_precision, only: LFIINT +USE MODD_RADIATIONS_n +USE MODD_REF +USE MODD_REF_n +USE MODD_RELFRC_n +use MODD_SALT, only: LSALT +use MODD_SALT_OPT_LKT, only: NMAX_RADIUS_LKT_SALT=>NMAX_RADIUS_LKT, NMAX_SIGMA_LKT_SALT=>NMAX_SIGMA_LKT, & + NMAX_WVL_SW_SALT=>NMAX_WVL_SW, & + XEXT_COEFF_WVL_LKT_SALT=>XEXT_COEFF_WVL_LKT, XEXT_COEFF_550_LKT_SALT=>XEXT_COEFF_550_LKT, & + XPIZA_LKT_SALT=>XPIZA_LKT, XCGA_LKT_SALT=>XCGA_LKT +USE MODD_SERIES, only: LSERIES +USE MODD_SHADOWS_n +USE MODD_STAND_ATM, only: XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM +USE MODD_TIME +USE MODD_TIME_n +USE MODD_TURB_CLOUD, only: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI +USE MODD_TURB_n +USE MODD_VAR_ll, only: IP + +USE MODE_GATHER_ll +USE MODE_INI_ONE_WAY_n +USE MODE_IO +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, only: IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list +USE MODE_ll +USE MODE_MODELN_HANDLER +USE MODE_MPPDB +USE MODE_MSG +USE MODE_SPLITTINGZ_ll, only: GET_DIM_EXTZ_ll +USE MODE_TYPE_ZDIFFU + +USE MODI_CH_AER_MOD_INIT +USE MODI_CH_INIT_BUDGET_n USE MODI_CH_INIT_FIELD_n -USE MODI_INI_DEEP_CONVECTION -USE MODI_INI_BIKHARDT_n +USE MODI_CH_INIT_JVALUES +USE MODI_CH_INIT_PRODLOSSTOT_n USE MODI_GET_SIZEX_LB USE MODI_GET_SIZEY_LB -USE MODI_INI_SPAWN_LS_n -USE MODI_INI_AIRCRAFT_BALLOON -USE MODI_UPDATE_NSV -USE MODI_INI_ELEC_n -USE MODI_INI_MICRO_n -USE MODI_INI_LG -USE MODI_SURF_SOLAR_GEOM -USE MODI_SUNPOS_n -USE MODI_INI_SURF_RAD -USE MODI_MNHGET_SURF_PARAM_n -USE MODI_MNHREAD_ZS_DUMMY_n -USE MODI_INIT_GROUND_PARAM_n -USE MODI_INI_AIRCRAFT_BALLOON -USE MODI_INI_SURFSTATION_n -USE MODI_INI_POSPROFILER_n -USE MODI_CH_INIT_JVALUES -USE MODI_CH_AER_MOD_INIT -! -USE MODD_PARAM_n -USE MODE_MODELN_HANDLER -USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll -! USE MODI_INI_AEROSET1 USE MODI_INI_AEROSET2 USE MODI_INI_AEROSET3 USE MODI_INI_AEROSET4 USE MODI_INI_AEROSET5 USE MODI_INI_AEROSET6 +USE MODI_INI_AIRCRAFT_BALLOON +USE MODI_INI_AIRCRAFT_BALLOON +USE MODI_INI_BIKHARDT_n +USE MODI_INI_BUDGET +USE MODI_INI_CPL +USE MODI_INI_DEEP_CONVECTION USE MODI_INI_DRAG -! -#ifdef MNH_FOREFIRE -USE MODD_FOREFIRE -USE MODD_FOREFIRE_n -USE MODI_INIT_FOREFIRE_n -#endif +USE MODI_INI_DYNAMICS +USE MODI_INI_ELEC_n USE MODI_INI_LES_N -USE MODD_MNH_SURFEX_n +USE MODI_INI_LG +USE MODI_INI_LW_SETUP +USE MODI_INI_MICRO_n +USE MODI_INI_POSPROFILER_n +USE MODI_INI_RADIATIONS +USE MODI_INI_RADIATIONS_ECMWF +USE MODI_INI_RADIATIONS_ECRAD USE MODI_INI_SERIES_N -! Eddy fluxes ! Ajout PP -USE MODD_DEF_EDDY_FLUX_n ! for VT and WT fluxes -USE MODD_DEF_EDDYUV_FLUX_n ! FOR UV -USE MODD_LATZ_EDFLX -USE MODD_ADVFRC_n -USE MODD_RELFRC_n -USE MODD_2D_FRC -USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL -USE MODD_IO, ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY -! -USE MODD_CH_PRODLOSSTOT_n -USE MODI_CH_INIT_PRODLOSSTOT_n -! -USE MODD_CH_BUDGET_n -USE MODI_CH_INIT_BUDGET_n -USE MODD_CH_M9_n, ONLY:NNONZEROTERMS -! -USE MODE_MPPDB +USE MODI_INI_SPAWN_LS_n +USE MODI_INI_SURF_RAD +USE MODI_INI_SURFSTATION_n +USE MODI_INI_SW_SETUP USE MODI_INIT_AEROSOL_PROPERTIES -#ifdef MNH_ECRAD -USE YOERDI , ONLY :RCCO2 +#ifdef MNH_FOREFIRE +USE MODI_INIT_FOREFIRE_n #endif +USE MODI_INIT_GROUND_PARAM_n +USE MODI_INI_TKE_EPS +USE MODI_METRICS +USE MODI_MNHGET_SURF_PARAM_n +USE MODI_MNHREAD_ZS_DUMMY_n +USE MODI_READ_FIELD +USE MODI_SET_DIRCOS +USE MODI_SET_GRID +USE MODI_SET_REF +#ifdef CPLOASIS +USE MODI_SFX_OASIS_READ_NAM +#endif +USE MODI_SUNPOS_n +USE MODI_SURF_SOLAR_GEOM +USE MODI_UPDATE_METRICS +USE MODI_UPDATE_NSV ! IMPLICIT NONE ! @@ -2249,6 +2251,20 @@ IF (CRAD == 'ECMW') THEN ZTOWN(:,:) = 0. ZBARE(:,:) = 0. END IF +! + IF ( CAOP=='EXPL' .AND. LDUST ) THEN + ALLOCATE( XEXT_COEFF_WVL_LKT_DUST( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST, NMAX_WVL_SW_DUST ) ) + ALLOCATE( XEXT_COEFF_550_LKT_DUST( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST ) ) + ALLOCATE( XPIZA_LKT_DUST ( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST, NMAX_WVL_SW_DUST ) ) + ALLOCATE( XCGA_LKT_DUST ( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST, NMAX_WVL_SW_DUST ) ) + END IF +! + IF ( CAOP=='EXPL' .AND. LSALT ) THEN + ALLOCATE( XEXT_COEFF_WVL_LKT_SALT( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT, NMAX_WVL_SW_SALT ) ) + ALLOCATE( XEXT_COEFF_550_LKT_SALT( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT ) ) + ALLOCATE( XPIZA_LKT_SALT ( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT, NMAX_WVL_SW_SALT ) ) + ALLOCATE( XCGA_LKT_SALT ( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT, NMAX_WVL_SW_SALT ) ) + END IF ! CALL INI_RADIATIONS_ECMWF (XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP, & CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM, & @@ -2399,12 +2415,17 @@ CALL INI_POSPROFILER_n(XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, & !* 26. Prognostic aerosols ! ------------------------ ! -CALL INI_AEROSET1 -CALL INI_AEROSET2 -CALL INI_AEROSET3 -CALL INI_AEROSET4 -CALL INI_AEROSET5 -CALL INI_AEROSET6 +IF ( ( CRAD=='ECMW' .OR. CRAD=='ECRA' ) .AND. CAOP=='EXPL' .AND. LORILAM ) THEN + ALLOCATE(POLYTAU(6,10,8,6,13)) + ALLOCATE(POLYSSA(6,10,8,6,13)) + ALLOCATE(POLYG (6,10,8,6,13)) + CALL INI_AEROSET1 + CALL INI_AEROSET2 + CALL INI_AEROSET3 + CALL INI_AEROSET4 + CALL INI_AEROSET5 + CALL INI_AEROSET6 +END IF #ifdef MNH_FOREFIRE ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90 index 50cbf7ae92633f14d3579f961cc825188da6d148..582bcac1eedeaa9c95d03fcf22910247bccb5259 100644 --- a/src/MNH/ini_one_wayn.f90 +++ b/src/MNH/ini_one_wayn.f90 @@ -108,7 +108,9 @@ USE MODD_PARAM_n, only: CCLOUD USE MODD_REF_n, only: XRHODJ, XRHODREF ! use mode_bikhardt -use mode_ll, only: LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, SET_LSFIELD_1WAY_ll +use mode_ll, only: GET_CHILD_DIM_ll, GET_DIM_EXT_ll, GO_TOMODEL_ll, & + LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, & + SET_LSFIELD_1WAY_ll, UNSET_LSFIELD_1WAY_ll USE MODE_MODELN_HANDLER, only: GOTO_MODEL ! USE MODI_SET_CHEMAQ_1WAY diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90 index f02cd9c388ba086241e6cf773243827f0ea2b0fa..7f9e33802c3d1f812783407aba724084078871ac 100644 --- a/src/MNH/ini_prog_var.f90 +++ b/src/MNH/ini_prog_var.f90 @@ -127,6 +127,7 @@ USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER USE MODE_MSG USE MODE_POS +use mode_tools_ll, only: GET_INDICE_ll ! USE MODI_CH_AER_INIT_SOA USE MODI_CH_INIT_SCHEME_n diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90 index cf73ab385ef0dd904338bd818d644d3346b48fd2..b7188358438cab4e72bbd722068802212d4110ab 100644 --- a/src/MNH/ini_radiations_ecmwf.f90 +++ b/src/MNH/ini_radiations_ecmwf.f90 @@ -173,43 +173,45 @@ END MODULE MODI_INI_RADIATIONS_ECMWF ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! P. Wautelet 14/02/2019: remove HINIFILE dummy argument ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 07/06/2019: initialize dust and salt optical properties lookup tables only if necessary !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ !ECMWF radiation scheme specific modules ! -USE PARKIND1, ONLY : JPRB -USE YOEAERD , ONLY : RCAEOPS ,RCAEOPL ,RCAEOPU ,RCAEOPD ,RCTRBGA ,& - RCVOBGA ,RCSTBGA ,RCTRPT ,RCAEADM ,RCAEROS ,& - RCAEADK -USE OYOMCST , ONLY : RTT -USE YOETHF , ONLY : RTICE +USE OYOMCST, ONLY: RTT +USE PARKIND1, ONLY: JPRB +USE YOEAERD, ONLY: RCAEOPS, RCAEOPL, RCAEOPU, RCAEOPD, RCTRBGA, & + RCVOBGA, RCSTBGA, RCTRPT, RCAEADM, RCAEROS, & + RCAEADK +USE YOETHF, ONLY: RTICE ! !MESO-NH modules ! -USE MODD_TYPE_DATE -USE MODD_CONF USE MODD_CST +USE MODD_CONF +use MODD_DUST, only: LDUST USE MODD_GRID USE MODD_PARAMETERS +use MODD_PARAM_RAD_n, only: CAOP, LFIX_DAT +use MODD_SALT, only: LSALT USE MODD_STAND_ATM -USE MODD_PARAM_RAD_n, ONLY: LFIX_DAT +USE MODD_TYPE_DATE ! +USE MODE_CONSRAD +USE MODE_DUSTOPT USE MODE_ll +USE MODE_REPRO_SUM +USE MODE_SALTOPT ! -USE MODI_INI_RADCONF USE MODI_INI_HOR_AERCLIM -! -USE MODE_DUSTOPT -USE MODE_SALTOPT -USE MODE_CONSRAD -USE MODE_REPRO_SUM +USE MODI_INI_RADCONF USE MODI_INI_STAND_ATM -USE MODI_SUECOZC +USE MODI_RADAER USE MODI_RADOZC USE MODI_SUAERV -USE MODI_RADAER +USE MODI_SUECOZC ! IMPLICIT NONE ! @@ -698,29 +700,31 @@ END DO ! Read in look up tables of dust optical properties !No arguments, all look up tables are defined in module !modd_dust_opt_lkt -CALL DUST_OPT_LKT_SET1() -CALL DUST_OPT_LKT_SET2() -CALL DUST_OPT_LKT_SET3() -CALL DUST_OPT_LKT_SET4() -CALL DUST_OPT_LKT_SET5() -CALL DUST_OPT_LKT_SET6() -CALL DUST_OPT_LKT_SET7() -CALL DUST_OPT_LKT_SET8() -CALL DUST_OPT_LKT_SET9() -CALL DUST_OPT_LKT_SET10() - -CALL SALT_OPT_LKT_SET1() -CALL SALT_OPT_LKT_SET2() -CALL SALT_OPT_LKT_SET3() -CALL SALT_OPT_LKT_SET4() -CALL SALT_OPT_LKT_SET5() -CALL SALT_OPT_LKT_SET6() -CALL SALT_OPT_LKT_SET7() -CALL SALT_OPT_LKT_SET8() -CALL SALT_OPT_LKT_SET9() -CALL SALT_OPT_LKT_SET10() - +IF ( LDUST .AND. CAOP=='EXPL' ) THEN + CALL DUST_OPT_LKT_SET1() + CALL DUST_OPT_LKT_SET2() + CALL DUST_OPT_LKT_SET3() + CALL DUST_OPT_LKT_SET4() + CALL DUST_OPT_LKT_SET5() + CALL DUST_OPT_LKT_SET6() + CALL DUST_OPT_LKT_SET7() + CALL DUST_OPT_LKT_SET8() + CALL DUST_OPT_LKT_SET9() + CALL DUST_OPT_LKT_SET10() +END IF +IF ( LSALT .AND. CAOP=='EXPL' ) THEN + CALL SALT_OPT_LKT_SET1() + CALL SALT_OPT_LKT_SET2() + CALL SALT_OPT_LKT_SET3() + CALL SALT_OPT_LKT_SET4() + CALL SALT_OPT_LKT_SET5() + CALL SALT_OPT_LKT_SET6() + CALL SALT_OPT_LKT_SET7() + CALL SALT_OPT_LKT_SET8() + CALL SALT_OPT_LKT_SET9() + CALL SALT_OPT_LKT_SET10() +END IF ! CALL INI_CONS_PROP_OP DEALLOCATE (ZPRES_HL) diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index 0abca384483c4f456109dc3b57d45dbd7a1a4dfd..1011b72700764cd6c65d9bc1ab2d183a2248b905 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -164,6 +164,7 @@ END MODULE MODI_INI_SEG_n !! 07/2017 add GBLOWSNOW (V. Vionnet) ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 19/06/2019: add Fieldlist_nmodel_resize subroutine + provide KMODEL to INI_FIELD_LIST when known !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -369,6 +370,8 @@ CALL READ_DESFM_n(KMI,TPINIFILE,YCONF,GFLAT,GUSERV,GUSERC, & IF (KMI==1) THEN !Do this only 1 time IF (CPROGRAM=='SPAWN ') THEN CALL INI_FIELD_LIST(2) + ELSE IF (CPROGRAM=='DIAG ' .OR. CPROGRAM=='SPEC ') THEN + CALL INI_FIELD_LIST(1) ELSE IF (CPROGRAM/='REAL ' .AND. CPROGRAM/='IDEAL ' ) THEN CALL INI_FIELD_LIST() END IF @@ -450,6 +453,9 @@ CALL READ_EXSEG_n(KMI,TZFILE_DES,YCONF,GFLAT,GUSERV,GUSERC, & YTURB,YTOM,GRMC01,YRAD,YDCONV,YSCONV,YCLOUD,YELEC,YEQNSYS, & PTSTEP_ALL,CSTORAGE_TYPE,CINIFILEPGD_n ) ! +if ( cprogram == 'MESONH' .and. kmi == 1 ) then !Do this only once + call Fieldlist_nmodel_resize(NMODEL) +end if ! IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='DIAG ' .OR. CPROGRAM=='SPEC ' & .OR. CPROGRAM=='REAL ') THEN diff --git a/src/MNH/ion_attach_elec.f90 b/src/MNH/ion_attach_elec.f90 index 90a6f300ec32d36d3ac48752d48f6deebcff4eed..bfecbd9a16f54dc039518c785c481438bda2e442 100644 --- a/src/MNH/ion_attach_elec.f90 +++ b/src/MNH/ion_attach_elec.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################ MODULE MODI_ION_ATTACH_ELEC ! ############################ @@ -92,7 +93,9 @@ USE MODD_RAIN_ICE_PARAM USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELEC USE MODD_BUDGET, ONLY : LBU_RSV USE MODD_REF, ONLY : XTHVREFZ -! + +use mode_tools_ll, only: GET_INDICE_ll + USE MODI_BUDGET USE MODI_MOMG ! diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index adf6eee1c10df71a80cf600d765cbdd291e023a9..806c6c9652e2dd3515a1657eb1444d864d687637 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -111,6 +111,7 @@ USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG use mode_tools, only: Countjv +use mode_tools_ll, only: GET_INDICE_ll ! USE MODI_BUDGET USE MODI_PROGNOS diff --git a/src/MNH/lidar.f90 b/src/MNH/lidar.f90 index 835da86854aa30a790446dcf70cc0143b516db98..976de3ca396061d429dbdb10531c45da38bfc020 100644 --- a/src/MNH/lidar.f90 +++ b/src/MNH/lidar.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ################# MODULE MODI_LIDAR ! ################# @@ -112,7 +113,9 @@ USE MODD_PARAM_LIMA_COLD, ONLY : UCCS=>XCCS, UCXS=>XCXS, ULBEXS=>XLBEXS, & ULBS=>XLBS USE MODD_PARAM_LIMA_MIXED,ONLY : UCCG=>XCCG, UCXG=>XCXG, ULBEXG=>XLBEXG, & ULBG=>XLBG -! + +use mode_tools_ll, only: GET_INDICE_ll + USE MODI_BHMIE_WATER ! Gamma or mono dispersed size distributions USE MODI_BHMIE_AEROSOLS ! Lognormal or mono dispersed size distributions ! diff --git a/src/MNH/mnhget_surf_paramn.f90 b/src/MNH/mnhget_surf_paramn.f90 index 238c9d4ae495de607bf0ea77ffb853acefb7952b..da6c4608943b601d01edfbb2a234079a68c551cb 100644 --- a/src/MNH/mnhget_surf_paramn.f90 +++ b/src/MNH/mnhget_surf_paramn.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 surfex 2006/10/24 10:43:18 -!----------------------------------------------------------------- ! ####################### MODULE MODI_MNHGET_SURF_PARAM_n ! ####################### @@ -88,6 +83,8 @@ USE MODD_PARAMETERS, ONLY : XUNDEF ! USE MODD_IO_SURF_MNH, ONLY : NHALO ! +use mode_tools_ll, only: GET_INDICE_ll + USE MODI_GET_COVER_N USE MODI_GET_FRAC_N USE MODI_GET_JCOVER_N diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index 3a89446e628078774236e93bcb5a944c48085ba6..2d0888f4515e3e1173ad26ad642f534893bc16d3 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -75,6 +75,7 @@ USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_IO_FILE, ONLY: IO_File_open USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname USE MODE_MSG +use MODE_TOOLS_ll, only: GET_DIM_EXT_ll, GET_INDICE_ll ! USE MODI_GET_1D_MASK USE MODI_MNH_SURF_GRID_IO_INIT diff --git a/src/MNH/mnhopen_namelist.f90 b/src/MNH/mnhopen_namelist.f90 index d594b6e5ff0e60fda174f2a27a028318b8f633eb..81716add4fcd795d50b15a88814ae749dafc66a7 100644 --- a/src/MNH/mnhopen_namelist.f90 +++ b/src/MNH/mnhopen_namelist.f90 @@ -60,6 +60,7 @@ USE MODD_IO_NAM, ONLY: TNAM USE MODE_IO_FILE, ONLY: IO_File_open USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG +use mode_nest_ll, only: GET_MODEL_NUMBER_ll ! IMPLICIT NONE ! diff --git a/src/MNH/modd_aeroset.f90 b/src/MNH/modd_aeroset.f90 index 9fe34721d690c9bf7dad011f45fde7f2a44d7346..311312bd47ff1efff93c1a33f04bd441e0f702f3 100644 --- a/src/MNH/modd_aeroset.f90 +++ b/src/MNH/modd_aeroset.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 modd 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ######################## MODULE MODD_AEROSET !! ######################## @@ -39,14 +34,15 @@ !! MODIFICATIONS !! ------------- !! +! P. Wautelet 07/06/2019: arrays are now ALLOCATABLE to save memory when not used !!-------------------------------------------------------------------- !! DECLARATIONS !! ------------ IMPLICIT NONE - REAL,SAVE,DIMENSION(6,10,8,6,13) ::POLYTAU - REAL,SAVE,DIMENSION(6,10,8,6,13) ::POLYSSA - REAL,SAVE,DIMENSION(6,10,8,6,13) ::POLYG + REAL,SAVE,DIMENSION(:,:,:,:,:),ALLOCATABLE ::POLYTAU + REAL,SAVE,DIMENSION(:,:,:,:,:),ALLOCATABLE ::POLYSSA + REAL,SAVE,DIMENSION(:,:,:,:,:),ALLOCATABLE ::POLYG END MODULE MODD_AEROSET diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index 15a8191b3834948e5e3f338be1ea96acdd170ea8..14387e9f096dfadc2fa95b186c91d1bf6e299cfe 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -555,7 +555,6 @@ INTEGER, SAVE :: NDIFSV ! numerical diffusion INTEGER, SAVE :: NRELSV ! relaxation INTEGER, SAVE :: NDCONVSV ! Deep CONVection INTEGER, SAVE :: NMAFLSV ! mass flux -INTEGER, SAVE :: NDEPOSV ! deposition on the ground INTEGER, SAVE :: NDEPOTRSV ! deposition on tree INTEGER, SAVE :: NHTURBSV ! horizontal turbulence INTEGER, SAVE :: NVTURBSV ! vertical turbulence diff --git a/src/MNH/modd_ch_aerosol.f90 b/src/MNH/modd_ch_aerosol.f90 index e0019a581fbb165a4ee631c4bca6c7918c18cd96..4eb7fed5cc8a2c7f1fbe9a6820d1206842dfa513 100644 --- a/src/MNH/modd_ch_aerosol.f90 +++ b/src/MNH/modd_ch_aerosol.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_ch_aerosol.f90,v $ $Revision: 1.1.2.2.2.1.2.1.2.1.2.2 $ -! MASDEV4_7 modd 2007/03/02 13:59:38 -!----------------------------------------------------------------- !! ###################### MODULE MODD_CH_AEROSOL !! ###################### @@ -35,7 +30,8 @@ !! ------------- !! (30-01-01) P.Tulet (LA) * modifications for secondary biogenics aerosols !! (25-08-16) M.Leriche (LA) * NM6_AER is now in SAVE and assign in ini_nsv -!! +! P. Wautelet: 07/06/2019: allocate weights only when needed!! +! !!-------------------------------------------------------------------- !! DECLARATIONS !! ------------ @@ -231,12 +227,12 @@ REAL, SAVE, DIMENSION(:,:,:,:,:,:), ALLOCATABLE :: zf ! Declaration of the neuronal coefficients ! .. weights -REAL, SAVE, DIMENSION(100,100) :: W1IJA,W1JKA,W2IJA,W2JKA -REAL, SAVE, DIMENSION(100,100) :: W1IJB,W1JKB,W2IJB,W2JKB -REAL, SAVE, DIMENSION(100,100) :: W1IJC,W1JKC,W2IJC,W2JKC -REAL, SAVE, DIMENSION(2,100) :: X1MINA,X1MAXA,X1MODA,X2MINA,X2MAXA,X2MODA -REAL, SAVE, DIMENSION(2,100) :: X1MINB,X1MAXB,X1MODB,X2MINB,X2MAXB,X2MODB -REAL, SAVE, DIMENSION(2,100) :: X1MINC,X1MAXC,X1MODC,X2MINC,X2MAXC,X2MODC +REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: W1IJA,W1JKA,W2IJA,W2JKA +REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: W1IJB,W1JKB,W2IJB,W2JKB +REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: W1IJC,W1JKC,W2IJC,W2JKC +REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: X1MINA,X1MAXA,X1MODA,X2MINA,X2MAXA,X2MODA +REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: X1MINB,X1MAXB,X1MODB,X2MINB,X2MAXB,X2MODB +REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: X1MINC,X1MAXC,X1MODC,X2MINC,X2MAXC,X2MODC ! .. counters and indices INTEGER, SAVE :: I1IA,J1JA,K1KA,I2IA,J2JA,K2KA diff --git a/src/MNH/modd_dust_opt_lkt.f90 b/src/MNH/modd_dust_opt_lkt.f90 index a8b88a9e194dea2e61735d94ba5b31bbc347c601..449fc2811f11b70aedc690bf90a6aba49c91a948 100644 --- a/src/MNH/modd_dust_opt_lkt.f90 +++ b/src/MNH/modd_dust_opt_lkt.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 modd 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ######################## MODULE MODD_DUST_OPT_LKT !! ######################## @@ -42,6 +37,7 @@ !! MODIFICATIONS !! ------------- !! +! P. Wautelet 07/06/2019: arrays are now ALLOCATABLE to save memory when not used !!-------------------------------------------------------------------- !! DECLARATIONS !! ------------ @@ -54,10 +50,10 @@ INTEGER, PARAMETER :: NMAX_WVL_SW=6 !Max number of wavelengths in lkt !Declaration of the look up tables - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XEXT_COEFF_WVL_LKT - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT) :: XEXT_COEFF_550_LKT - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XPIZA_LKT - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XCGA_LKT + REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XEXT_COEFF_WVL_LKT + REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XEXT_COEFF_550_LKT + REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XPIZA_LKT + REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XCGA_LKT !Declaration of the max and min values taken into account in the tables REAL, PARAMETER :: XRADIUS_LKT_MIN = 0.01 ![um] smallest number median radius taken into account diff --git a/src/MNH/modd_salt_opt_lkt.f90 b/src/MNH/modd_salt_opt_lkt.f90 index d6b12b0b5b57b10796bc15b145f56e4e0c5825cb..702bc081bf1ba271c3e77752a40a7bb9e8189c89 100644 --- a/src/MNH/modd_salt_opt_lkt.f90 +++ b/src/MNH/modd_salt_opt_lkt.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 modd 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ######################## MODULE MODD_SALT_OPT_LKT !! ######################## @@ -42,6 +37,7 @@ !! MODIFICATIONS !! ------------- !! +! P. Wautelet 07/06/2019: arrays are now ALLOCATABLE to save memory when not used !!-------------------------------------------------------------------- !! DECLARATIONS !! ------------ @@ -54,10 +50,10 @@ INTEGER, PARAMETER :: NMAX_WVL_SW=6 !Max number of wavelengths in lkt !Declaration of the look up tables - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XEXT_COEFF_WVL_LKT - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT) :: XEXT_COEFF_550_LKT - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XPIZA_LKT - REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XCGA_LKT + REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XEXT_COEFF_WVL_LKT + REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XEXT_COEFF_550_LKT + REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XPIZA_LKT + REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XCGA_LKT !Declaration of the max and min values taken into account in the tables REAL, PARAMETER :: XRADIUS_LKT_MIN = 0.01 ![um] smallest number median radius taken into account diff --git a/src/MNH/mode_dustopt.f90 b/src/MNH/mode_dustopt.f90 index 6a85251e3827ae1166526bd4049c775ac2964204..c9c78d1444921ee91149af7636e4d7d52fc38b4b 100644 --- a/src/MNH/mode_dustopt.f90 +++ b/src/MNH/mode_dustopt.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! masdev4_7 BUG1 2007/06/29 12:06:27 -!----------------------------------------------------------------- ! ################### MODULE MODE_DUSTOPT ! ################### @@ -325,8 +320,13 @@ CONTAINS USE MODD_DUST_OPT_LKT + use mode_msg + IMPLICIT NONE - + + if ( .not.allocated( XEXT_COEFF_WVL_LKT ) ) & + call Print_msg( NVERB_FATAL, 'GEN', 'DUST_OPT_LKT_SET1', 'XEXT_COEFF_WVL_LKT not allocated') + !Here are the output values from the mie program: XEXT_COEFF_WVL_LKT(1,1,1:6)=(/ 92.520000,37.760000,21.553000,5.277700,2.711100,1.337700 /) XPIZA_LKT(1,1,1:6)=(/ 0.431792,0.157096,0.049108,0.030213,0.005366,0.000659 /) diff --git a/src/MNH/mode_elec_ll.f90 b/src/MNH/mode_elec_ll.f90 index 084db39dd5ecec2f1b48f1e743e95d9ef328d23c..32ba759ef5e0b8f1cffd1f5f0ac2f62cd4dc5bd4 100644 --- a/src/MNH/mode_elec_ll.f90 +++ b/src/MNH/mode_elec_ll.f90 @@ -28,7 +28,9 @@ USE MODD_MPIF use modd_precision, only: MNHINT_MPI, MNHREAL_MPI USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD -! + +use MODE_TOOLS_ll, only: GET_OR_ll + IMPLICIT NONE ! INTEGER, PARAMETER :: IFIRST_PROC = 0 ! 0/1 to increase numerotation of proc number diff --git a/src/MNH/mode_extrapol.f90 b/src/MNH/mode_extrapol.f90 index fe3cc9b664bbeca42953bca05f35b5801b61b8af..41d5268fbcbe5acef1f00965eac0332c2d6f8e1b 100644 --- a/src/MNH/mode_extrapol.f90 +++ b/src/MNH/mode_extrapol.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -35,7 +35,7 @@ CONTAINS SUBROUTINE EXTRAPOL3D(HBORD,PTAB) USE MODD_LBC_n - USE MODE_ll + USE MODE_TOOLS_ll ! IMPLICIT NONE ! @@ -93,7 +93,7 @@ CONTAINS SUBROUTINE EXTRAPOL2D(HBORD,PTAB) USE MODD_LBC_n - USE MODE_ll + USE MODE_TOOLS_ll ! IMPLICIT NONE ! @@ -170,10 +170,12 @@ CONTAINS !! J.Escobar 2/05/2016 : add STOP in case of problem with decomposition !------------------------------------------------------------------------------- USE MODD_LBC_n + use mode_argslist_ll, only: ADD2DFIELD_ll, CLEANLIST_ll USE MODE_MODELN_HANDLER - USE MODE_ll - USE MODD_PARAMETERS, ONLY : JPHEXT - USE MODE_EXCHANGE_ll, ONLY : UPDATE_HALO_EXTENDED_ll + use mode_nest_ll, only: GET_CHILD_DIM_ll, GO_TOMODEL_ll + USE MODE_TOOLS_ll + USE MODD_PARAMETERS, ONLY: JPHEXT + USE MODE_EXCHANGE_ll, ONLY: UPDATE_HALO_EXTENDED_ll ! IMPLICIT NONE ! @@ -311,10 +313,12 @@ CONTAINS !! J.Escobar 2/05/2016 : add STOP in case of problem with decomposition !------------------------------------------------------------------------------- USE MODD_LBC_n + use mode_argslist_ll, only: ADD2DFIELD_ll, CLEANLIST_ll USE MODE_MODELN_HANDLER - USE MODE_ll - USE MODD_PARAMETERS, ONLY : JPHEXT - USE MODE_EXCHANGE_ll, ONLY : UPDATE_HALO_EXTENDED_ll + use mode_nest_ll, only: GET_CHILD_DIM_ll, GO_TOMODEL_ll + USE MODE_TOOLS_ll + USE MODD_PARAMETERS, ONLY: JPHEXT + USE MODE_EXCHANGE_ll, ONLY: UPDATE_HALO_EXTENDED_ll ! IMPLICIT NONE ! diff --git a/src/MNH/mode_mnh_zwork.f90 b/src/MNH/mode_mnh_zwork.f90 index 255953083f5fa5b2791354146a2a2df7a98e17ad..b21e9cce1a98f62b199e08077d6310cb8158a5a4 100644 --- a/src/MNH/mode_mnh_zwork.f90 +++ b/src/MNH/mode_mnh_zwork.f90 @@ -41,7 +41,7 @@ CONTAINS SUBROUTINE MNH_ALLOC_ZWORK(IMODEL) - USE MODE_TOOLS_ll, ONLY : LWEST_ll,LEAST_ll, LSOUTH_ll, LNORTH_ll + USE MODE_TOOLS_ll, ONLY : GET_DIM_EXT_ll, GET_INDICE_ll, LWEST_ll,LEAST_ll, LSOUTH_ll, LNORTH_ll USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF USE MODD_DIM_n, ONLY : NKMAX diff --git a/src/MNH/mode_saltopt.f90 b/src/MNH/mode_saltopt.f90 index d7fd28f3f1912d0a897de0aa93aebc050b6a761a..5cda0f3bbb19ac227b50ffd7b4bd9e814a50e2a6 100644 --- a/src/MNH/mode_saltopt.f90 +++ b/src/MNH/mode_saltopt.f90 @@ -1,11 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ################### MODULE MODE_SALTOPT ! ################### @@ -336,8 +333,13 @@ CONTAINS USE MODD_SALT_OPT_LKT + use mode_msg + IMPLICIT NONE - + + if ( .not.allocated( XEXT_COEFF_WVL_LKT ) ) & + call Print_msg( NVERB_FATAL, 'GEN', 'SALT_OPT_LKT_SET1', 'XEXT_COEFF_WVL_LKT not allocated') + !Here are the output values from the mie program: XEXT_COEFF_WVL_LKT(1,1,1:6)=(/ 44.560000,11.638000,0.691110,0.260970,0.532810,132.670000 /) XPIZA_LKT(1,1,1:6)=(/ 0.236252,0.196169,0.900,0.900,0.900,0.000010 /) diff --git a/src/MNH/mode_type_zdiffu.f90 b/src/MNH/mode_type_zdiffu.f90 index e6a4a6076278f31aab1bee492787dad0b45fc212..7083cb2629079100fcde90077cb4324b1c5cdb17 100644 --- a/src/MNH/mode_type_zdiffu.f90 +++ b/src/MNH/mode_type_zdiffu.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODE_TYPE_ZDIFFU @@ -17,6 +17,8 @@ SUBROUTINE INIT_TYPE_ZDIFFU_HALO2(PTYPE_ZDIFFU_HALO2,KSIZE_ZERO) ! ------------ USE MODD_PARAMETERS , ONLY : JPVEXT USE MODD_DIM_ll , ONLY : NKMAX_TMP_ll + +use mode_tools_ll, only: GET_DIM_EXT_ll, GET_INDICE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90 index 7fb6f12e714832d959136737f8fa584518c27537..8d83765590a09f58a926aa1ed985a733951cc0ce 100644 --- a/src/MNH/modn_budget.f90 +++ b/src/MNH/modn_budget.f90 @@ -313,7 +313,7 @@ NAMELIST/NAM_BU_RSV/ LBU_RSV, NASSESV, NNESTSV, NADVSV, NFRCSV, & NDEPSQS, NAGGSQS, NAUTSQS, NRIMQS, NACCQS, NCMELQS, NWETGQS, & NDRYGQS, NNIISQS, NSEDIQS, NNEUTQS, & NDEPGQG, NRIMQG, NACCQG, NCMELQG, NCFRZQG, NWETGQG, NDRYGQG, & - NGMLTQG, NINDQG, NSEDIQG, NNEUTQG,NDEPOSV,NDEPOTRSV + NGMLTQG, NINDQG, NSEDIQG, NNEUTQG, NDEPOTRSV ! must add budget for hail ! END MODULE MODN_BUDGET diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90 index f7bcfbd74eb3bf7ac1593cfba69ad864ede34ddf..8f922a418ec4e95d2703056d878e542c90953261 100644 --- a/src/MNH/one_wayn.f90 +++ b/src/MNH/one_wayn.f90 @@ -141,9 +141,12 @@ USE MODD_PARAM_n, only: CCLOUD USE MODD_REF_n, only: XRHODJ, XRHODREF, XRVREF, XTHVREF ! use mode_bikhardt -use mode_ll, only: LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, SET_LSFIELD_1WAY_ll +use mode_ll, only: GET_CHILD_DIM_ll, GO_TOMODEL_ll, & + LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, & + SET_LSFIELD_1WAY_ll, UNSET_LSFIELD_1WAY_ll USE MODE_MODELN_HANDLER, only: GOTO_MODEL use mode_sum_ll, only: SUM3D_ll +use mode_tools_ll, only: GET_DIM_EXT_ll ! USE MODI_SET_CHEMAQ_1WAY USE MODI_SET_CONC_ICE_C1R3 diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 19602cccbb662c82974aeecd8a3b779c5d632925..14b2b23d9656a02d21026556004155021b827b07 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -699,7 +699,7 @@ CALL READ_PRE_IDEA_NAM_n(NLUPRE,NLUOUT) CALL POSNAM(NLUPRE,'NAM_AERO_PRE',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_AERO_PRE) ! -CALL INI_FIELD_LIST() +CALL INI_FIELD_LIST(1) ! CALL INI_FIELD_SCALARS() ! diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90 index 5b5a884f455416e1d7fd51e9ffc8677a7fc92f67..5f525bf935f0b31b2f263e957e3e42af5d598df8 100644 --- a/src/MNH/prep_nest_pgd.f90 +++ b/src/MNH/prep_nest_pgd.f90 @@ -197,7 +197,7 @@ CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) !* 3. READING OF THE GRIDS ! -------------------- ! -CALL INI_FIELD_LIST() +CALL INI_FIELD_LIST(NMODEL) ! CALL SET_DAD0_ll() DO JPGD=1,NMODEL diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index 86b375631f93207762fa91052e5412c6c11d7679..4303b30728ee131ad0d8d1f6cd5a0eb4aafacd69 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -99,6 +99,7 @@ USE MODE_IO, only: IO_Config_set, IO_Init USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write USE MODE_IO_FILE, only: IO_File_close, IO_File_open USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print +use mode_ll USE MODE_MODELN_HANDLER USE MODE_MSG USE MODE_POS diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index a499c20078af7eb38472eff996410dec58f15e04..564611d776d47cec051614a4d4a8bd7d3a1535b7 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -614,7 +614,7 @@ CALL INIT_NMLVAR CALL POSNAM(IPRE_REAL1,'NAM_REAL_CONF',GFOUND,ILUOUT0) IF (GFOUND) READ(IPRE_REAL1,NAM_REAL_CONF) ! -CALL INI_FIELD_LIST() +CALL INI_FIELD_LIST(1) ! CALL INI_FIELD_SCALARS() ! diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index 97cc43d0a07feef1abaf31c176e29ecc8aa92a14..b4c3096c367839114be4329438e174c08f608d4c 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -239,6 +239,7 @@ USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD , NPROC USE MODE_ll USE MODE_MPPDB USE MODE_MSG +USE MODE_SUM2_ll, ONLY: GMAXLOC_ll ! USE MODI_BUDGET USE MODI_CONJGRAD @@ -252,7 +253,6 @@ USE MODI_MASS_LEAK USE MODI_P_ABS USE MODI_RICHARDSON USE MODI_SHUMAN -USE MODI_SUM_ll , ONLY : GMAXLOC_ll ! IMPLICIT NONE ! diff --git a/src/MNH/radar_simulator.f90 b/src/MNH/radar_simulator.f90 index 1d09ecc69198c2b91558b22c01081ffd166a8b43..b855afc924ed0d8a391fc7d21a9d572158c6fd7f 100644 --- a/src/MNH/radar_simulator.f90 +++ b/src/MNH/radar_simulator.f90 @@ -146,6 +146,8 @@ USE MODD_RADAR , ONLY: XLAT_RAD,XLON_RAD,XALT_RAD,XDT_RAD,XELEV,& ! USE MODE_INTERPOL_BEAM USE MODE_FGAU , ONLY: GAULEG,GAUHER +use mode_tools_ll, only: GET_INDICE_ll + USE MODI_RADAR_SCATTERING ! convective/stratiform USE MODI_SET_MSK diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90 index 531637f10cc37a1b65b4a345a40860d85a256822..8d47d4851fe307bbfa631489ad4fdbf10a128a7c 100644 --- a/src/MNH/radiations.f90 +++ b/src/MNH/radiations.f90 @@ -163,12 +163,13 @@ USE MODE_REPRO_SUM, ONLY : SUM_DD_R2_R1_ll,SUM_DD_R1_ll USE MODE_PACK_PGI #endif USE MODE_SALTOPT +USE MODE_SUM_ll, ONLY: MIN_ll +USE MODE_SUM2_ll, ONLY: GMINLOC_ll USE MODE_THERMO ! USE MODI_AEROOPT_GET USE MODI_ECMWF_RADIATION_VERS2 USE MODI_ECRAD_INTERFACE -USE MODI_SUM_ll, ONLY: GMINLOC_ll, MIN_ll USE MODD_VAR_ll, ONLY: IP ! IMPLICIT NONE diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index dcd7c3206e7c9cb1b84ec22cb30ae4caa3bb449b..3be17cc22856c7714e0a7b66b8325961020f04cf 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -272,6 +272,7 @@ use mode_tools, only: Countjv #else use mode_tools, only: Countjv_device #endif +use mode_tools_ll, only: GET_INDICE_ll #ifdef MNH_BITREP USE MODI_BITREP diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index 047a7618837fe20f15acf3aa2ad4595b807d3bff..6ff7014b90c5d416e45fa2a60cda6fe5b8aaf16e 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -142,6 +142,7 @@ USE MODE_MSG USE MODE_TIME USE MODE_THERMO USE MODE_TOOLS, ONLY: UPCASE +use mode_tools_ll, only: GET_DIM_EXT_ll ! USE MODI_READ_HGRID_n USE MODI_READ_VER_GRID diff --git a/src/MNH/read_asc_latpress.f90 b/src/MNH/read_asc_latpress.f90 index 61745f0d15b225622ff7c647f17b122796e25dfe..af67b339779c1df773e1e56e8deaa0120b1790eb 100644 --- a/src/MNH/read_asc_latpress.f90 +++ b/src/MNH/read_asc_latpress.f90 @@ -1,8 +1,8 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. - +!----------------------------------------------------------------- ! ######################## MODULE MODI_READ_ASC_LATPRESS ! ######################## @@ -52,8 +52,7 @@ END MODULE MODI_READ_ASC_LATPRESS ! ----------- ! ! - - +use mode_tools_ll, only: GET_INDICE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index 778b9e29c97c92e0e4d788fff847280ba6944660..b5e9923162403a4345ae638acf393c5419d115fa 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -117,6 +117,7 @@ USE MODE_MPPDB USE MODE_THERMO USE MODE_TIME USE MODE_TOOLS, ONLY: UPCASE +use mode_tools_ll, only: GET_DIM_EXT_ll ! USE MODI_CH_AER_INIT_SOA USE MODI_CH_INIT_SCHEME_n diff --git a/src/MNH/read_hgrid.f90 b/src/MNH/read_hgrid.f90 index 26b9881e4dd96a27160ffd4aec883c38abc99446..ec9c7cd44834781c72dda2a054b4dbc66f2868d4 100644 --- a/src/MNH/read_hgrid.f90 +++ b/src/MNH/read_hgrid.f90 @@ -93,6 +93,8 @@ USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GRIDPROJ USE MODE_MSG USE MODE_MODELN_HANDLER +use MODE_NEST_ll, only: GO_TOMODEL_ll +use MODE_TOOLS_ll, only: GET_DIM_PHYS_ll ! USE MODI_READ_HGRID_n ! diff --git a/src/MNH/read_hgridn.f90 b/src/MNH/read_hgridn.f90 index 0989fed5359ea361bf8667a872ea934124fa094d..04cf40b18a5e061db9bf11b1b3159d2dbe311ce9 100644 --- a/src/MNH/read_hgridn.f90 +++ b/src/MNH/read_hgridn.f90 @@ -92,6 +92,7 @@ USE MODE_IO, only: IO_Pack_set USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_MODELN_HANDLER +use MODE_TOOLS_ll, only: GET_DIM_EXT_ll, GET_DIM_PHYS_ll, GET_INDICE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/set_advfrc.f90 b/src/MNH/set_advfrc.f90 index b931fe38b25df299015f2528102b153cdf644489..954d6fb9607ae72667f10f5bfc57e2adaaf2fa28 100644 --- a/src/MNH/set_advfrc.f90 +++ b/src/MNH/set_advfrc.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -93,6 +93,7 @@ USE MODD_REF USE MODE_DATETIME USE MODE_MSG USE MODE_THERMO +use mode_tools_ll, only: GET_INDICE_ll ! USE MODI_HEIGHT_PRESS USE MODI_PRESS_HEIGHT diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90 index ef30e87c56598b307c37c5061a9eff04d0071f3e..1f88a63cfff307d1dd499afd5f73d1d7d1f51d9e 100644 --- a/src/MNH/set_perturb.f90 +++ b/src/MNH/set_perturb.f90 @@ -115,15 +115,16 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_LSFIELD_n USE MODD_PARAMETERS USE MODD_REF_n +USE MODD_VAR_ll , ONLY : NMNH_COMM_WORLD ! USE MODE_GATHER_ll USE MODE_ll USE MODE_MPPDB USE MODE_POS USE MODE_REPRO_SUM +use MODE_SCATTER_ll, only: SCATTER_XYFIELD ! USE MODI_GET_HALO -USE MODI_SCATTER ! IMPLICIT NONE ! @@ -354,8 +355,8 @@ SELECT CASE(CPERT_KIND) !* 3.3 Add to the U and V fields : ! ALLOCATE(ZPU(IIU,IJU),ZPV(IIU,IJU)) - CALL SCATTER(ZPU_ll,ZPU) - CALL SCATTER(ZPV_ll,ZPV) + CALL SCATTER_XYFIELD(ZPU_ll,ZPU,1,NMNH_COMM_WORLD) + CALL SCATTER_XYFIELD(ZPV_ll,ZPV,1,NMNH_COMM_WORLD) DEALLOCATE(ZPU_ll,ZPV_ll) DO JI = 1,IIU DO JJ = 1,IJU diff --git a/src/MNH/set_relfrc.f90 b/src/MNH/set_relfrc.f90 index 7c7fc25b1aeb15115d282bba56bd8f513ab701ab..6de7d389ec9698629325142cc2dbecdbd2532563 100644 --- a/src/MNH/set_relfrc.f90 +++ b/src/MNH/set_relfrc.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -80,6 +80,7 @@ END MODULE MODI_SET_RELFRC ! USE MODD_CONF USE MODD_CST +USE MODD_DIM_n USE MODD_FRC USE MODD_GRID USE MODD_GRID_n @@ -92,8 +93,8 @@ USE MODD_RELFRC_n USE MODE_DATETIME USE MODE_MSG USE MODE_THERMO +use mode_tools_ll, only: GET_INDICE_ll ! -USE MODD_DIM_n USE MODI_HEIGHT_PRESS USE MODI_PRESS_HEIGHT USE MODI_READ_ASC_LATPRESS diff --git a/src/MNH/spectre.f90 b/src/MNH/spectre.f90 index 22878e5a926e5263f3e868a0ef20357e13ea4179..545c60629410ef29c5a16bfd5289f96038c41e28 100644 --- a/src/MNH/spectre.f90 +++ b/src/MNH/spectre.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -40,6 +40,7 @@ USE MODE_POS USE MODE_IO, only: IO_Config_set, IO_Init USE MODE_IO_FILE, only: IO_File_close, IO_File_open USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print +use mode_init_ll, only: END_PARA_ll USE MODE_MODELN_HANDLER !USE MODD_TYPE_DATE USE MODI_VERSION diff --git a/src/MNH/spectre_arome.f90 b/src/MNH/spectre_arome.f90 index 81a83ebc2089429df9c56f7ecaa107e050d6d94e..c519472808d3a06c58144cd4596c1c28f8a0e0a1 100644 --- a/src/MNH/spectre_arome.f90 +++ b/src/MNH/spectre_arome.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -30,6 +30,7 @@ SUBROUTINE SPECTRE_AROME(HINIFILE,HOUTFILE,PDELTAX,PDELTAY,KI,KJ,KK) ! USE MODD_CONF USE MODE_IO, only: IO_Pack_set +use mode_init_ll, only: SET_DAD0_ll, SET_JP_ll, SET_SPLITTING_ll USE MODD_SPECTRE USE MODI_COMPUTE_SPECTRE USE MODD_PARAMETERS diff --git a/src/MNH/split_grid_parameter_mnh.f90 b/src/MNH/split_grid_parameter_mnh.f90 index fed28c271c66c42b89e5a22370edd23e29884dda..e859565f1512b167ef76f96a8a8c1856968428b8 100644 --- a/src/MNH/split_grid_parameter_mnh.f90 +++ b/src/MNH/split_grid_parameter_mnh.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################################################# #ifdef MNH_PARALLEL SUBROUTINE SPLIT_GRID_PARAMETERX1_MNH(HGRID,HREC,KDIM,KSIZE,KIMAX_ll,KJMAX_ll,KHALO,PFIELD,PFIELD_SPLIT) @@ -21,6 +22,8 @@ #else USE MODD_IO_SURF_MNH, ONLY : NHALO #endif + +use mode_tools_ll, only: GET_INDICE_ll, GET_OR_ll ! IMPLICIT NONE ! diff --git a/src/MNH/surf_solar_slopes.f90 b/src/MNH/surf_solar_slopes.f90 index 9dd3fbe40e653dab6d3ced2f8c4d61a04e70bc3f..e7ea4ef2284690164c6c4c0679c8621f245ec5dd 100644 --- a/src/MNH/surf_solar_slopes.f90 +++ b/src/MNH/surf_solar_slopes.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 param 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ############################# MODULE MODI_SURF_SOLAR_SLOPES ! ############################# @@ -83,6 +78,7 @@ END MODULE MODI_SURF_SOLAR_SLOPES ! ------------ ! USE MODD_CST, ONLY : XPI, XMNH_TINY +use mode_tools_ll, only: GET_INDICE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/turb_cloud_index.f90 b/src/MNH/turb_cloud_index.f90 index a224e27eb694ad36e42c8559521034e5de408996..abe8e0f24c2af29888c0d0517ea5d6d882e6e8a8 100644 --- a/src/MNH/turb_cloud_index.f90 +++ b/src/MNH/turb_cloud_index.f90 @@ -90,6 +90,7 @@ USE MODD_PARAMETERS, ONLY: JPVEXT ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_tools_ll, only: GET_INDICE_ll ! USE MODI_GRADIENT_M ! diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 20aa0f4647beb92f0df37401df66e993e28eb2f0..6655d27e109d94115783b87e80f9edc5251e5616 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -240,6 +240,7 @@ USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_IO_FILE, only: IO_File_close, IO_File_open USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_ll +use mode_msg USE MODE_THERMO USE MODE_TOOLS, ONLY: UPCASE USE MODE_MODELN_HANDLER diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90 index de9025e0f7668d7f4d216f2741999e9c84d36aeb..7731c2dcf7524bf48901c17ce96a42f87633a309 100644 --- a/src/MNH/zsmt_pgd.f90 +++ b/src/MNH/zsmt_pgd.f90 @@ -75,7 +75,8 @@ USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll , ONLY : GET_DIM_EXT_ll , ADD2DFIELD_ll , CLEANLIST_ll , UPDATE_HALO_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODI_SUM_ll +USE MODE_SUM_ll +use mode_tools_ll, only: GET_INDICE_ll USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL ! IMPLICIT NONE diff --git a/src/Makefile b/src/Makefile index 0e20e4a2ab02a54c4be1be985ac1ad7cc52bb84c..3d140df7dbd7a8f51c4368348d6cfc88219b8ee6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -408,7 +408,7 @@ $(OBJDIR_MASTER)/spll_lockoff.o $(OBJDIR_MASTER)/spll_lockon.o $(OBJDIR_MASTER)/ $(OBJDIR_MASTER)/fswap8buff.o $(OBJDIR_MASTER)/spll_remark2.o libs4py.so : progmaster - $(CC) -shared $(LDFLAGS) -o $(OBJDIR_MASTER)/$@ $(OBJ_S4PY) $(LIBS) + $(F90) -shared $(LDFLAGS) -o $(OBJDIR_MASTER)/$@ $(OBJ_S4PY) $(LIBS) endif ########################################################## # # diff --git a/src/SURFEX/interpol_npts.F90 b/src/SURFEX/interpol_npts.F90 index 8f3d25e867dcf7d1228eabc9f75626622e820288..49953d7aec721500ede2b606426d15a99ff1ccfc 100644 --- a/src/SURFEX/interpol_npts.F90 +++ b/src/SURFEX/interpol_npts.F90 @@ -2,6 +2,7 @@ !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. +!----------------------------------------------------------------- ! ######### SUBROUTINE INTERPOL_NPTS (UG, U, HPROGRAM,KLUOUT,KNPTS,KCODE,PX,PY,PFIELD,KNEAR_NBR) ! ######################################################### @@ -75,7 +76,7 @@ use modd_mpif use modd_precision, only: MNHINT_MPI, MNHREAL_MPI USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD USE MODE_GATHER_ll -USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll +USE MODE_TOOLS_ll, ONLY : GET_DIM_PHYS_ll, GET_GLOBALDIMS_ll USE MODD_PARAMETERS_ll,ONLY : JPHEXT ! USE MODD_IO_SURF_MNH, ONLY : NIU, NJU