Skip to content
Snippets Groups Projects
Commit 1d3bf289 authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 06/10/2022: small fixes for ForeFire

parent ec5e940e
No related branches found
No related tags found
No related merge requests found
!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 1994-2022 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 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. !MNH_LIC for details. version 1.
!############################## !-----------------------------------------------------------------
!##############################
MODULE MODI_COUPLING_FOREFIRE_n MODULE MODI_COUPLING_FOREFIRE_n
!############################## !##############################
...@@ -82,20 +83,20 @@ INTEGER :: JSV ...@@ -82,20 +83,20 @@ INTEGER :: JSV
PSFTQ(:, :) = PSFTQ(:, :) + FF_VAPORFLUX(:, :) PSFTQ(:, :) = PSFTQ(:, :) + FF_VAPORFLUX(:, :)
DO JSV = 1, NSV_FF DO JSV = 1, NSV_FF
CALL MNH_GET_DOUBLEARRAY(sScalarVariables(JSV), FF_SVFLUXES(:, :, JSV), FF_MATRIXSIZE, 1) CALL MNH_GET_DOUBLEARRAY(sScalarVariables(JSV), FF_SVFLUXES(:, :, JSV), FF_MATRIXSIZE, 1)
PSFSV(:, :, NSV_FFBEG-1+JSV) = PSFSV(:, :, NSV_FFBEG-1+JSV) + FF_SVFLUXES(:, :, JSV) PSFSV(:, :, NSV_FFBEG-1+JSV) = PSFSV(:, :, NSV_FFBEG-1+JSV) + FF_SVFLUXES(:, :, JSV)
END DO END DO
IF ( LFFCHEM ) THEN IF ( LFFCHEM ) THEN
DO JSV = 1, NFFCHEMVAR DO JSV = 1, NFFCHEMVAR
CALL MNH_GET_DOUBLEARRAY(sChemicalVariables(JSV), FF_CVFLUXES(:, :, JSV), FF_MATRIXSIZE, 1) CALL MNH_GET_DOUBLEARRAY(sChemicalVariables(JSV), FF_CVFLUXES(:, :, JSV), FF_MATRIXSIZE, 1)
PSFSV(:, :, FF_CHEMINDICES(JSV)) = PSFSV(:, :, FF_CHEMINDICES(JSV)) + FF_CVFLUXES(:, :, JSV) PSFSV(:, :, FF_CHEMINDICES(JSV)) = PSFSV(:, :, FF_CHEMINDICES(JSV)) + FF_CVFLUXES(:, :, JSV)
END DO END DO
ENDIF ENDIF
END SUBROUTINE COUPLING_FOREFIRE_n END SUBROUTINE COUPLING_FOREFIRE_n
!############################################## !##############################################
SUBROUTINE SEND_GROUND_WIND_n (U, V, KG, IINFO) SUBROUTINE SEND_GROUND_WIND_n (U, V, KG, IINFO)
!############################################## !##############################################
...@@ -138,7 +139,7 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc ...@@ -138,7 +139,7 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc
FFOUTERWINDV(2,JFF) = V(3,JFF,KG) FFOUTERWINDV(2,JFF) = V(3,JFF,KG)
FFOUTERWINDV(FF_NX-1,JFF) = V(FF_NX-2,JFF,KG) FFOUTERWINDV(FF_NX-1,JFF) = V(FF_NX-2,JFF,KG)
END DO END DO
VAL1 = INT(U(2,3,KG)*FFMULT+0.5) VAL1 = INT(U(2,3,KG)*FFMULT+0.5)
VAL2 = INT(U(3,3,KG)*FFMULT+0.5) VAL2 = INT(U(3,3,KG)*FFMULT+0.5)
VAL3 = INT(U(3,2,KG)*FFMULT+0.5) VAL3 = INT(U(3,2,KG)*FFMULT+0.5)
...@@ -176,8 +177,8 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc ...@@ -176,8 +177,8 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc
FFOUTERWINDV(FF_NX-1,FF_NY-1) = VAL1*FFMULT*FFMULT*100 + VAL2*FFMULT*10 + VAL3 FFOUTERWINDV(FF_NX-1,FF_NY-1) = VAL1*FFMULT*FFMULT*100 + VAL2*FFMULT*10 + VAL3
NULLIFY(FOREFIREFIELD_ll) NULLIFY(FOREFIREFIELD_ll)
CALL ADD2DFIELD_ll(FOREFIREFIELD_ll,FFOUTERWINDU) CALL ADD2DFIELD_ll( FOREFIREFIELD_ll, FFOUTERWINDU, 'SEND_GROUND_WIND_n::FFOUTERWINDU' )
CALL ADD2DFIELD_ll(FOREFIREFIELD_ll,FFOUTERWINDV) CALL ADD2DFIELD_ll( FOREFIREFIELD_ll, FFOUTERWINDV, 'SEND_GROUND_WIND_n::FFOUTERWINDV' )
CALL UPDATE_HALO_ll(FOREFIREFIELD_ll,IINFO) CALL UPDATE_HALO_ll(FOREFIREFIELD_ll,IINFO)
CALL CLEANLIST_ll(FOREFIREFIELD_ll) CALL CLEANLIST_ll(FOREFIREFIELD_ll)
CALL MNH_PUT_DOUBLEARRAY(sOutWindU, FF_TIME, FFOUTERWINDU, FF_MATRIXSIZE, 1) CALL MNH_PUT_DOUBLEARRAY(sOutWindU, FF_TIME, FFOUTERWINDU, FF_MATRIXSIZE, 1)
...@@ -185,7 +186,7 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc ...@@ -185,7 +186,7 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc
END SUBROUTINE SEND_GROUND_WIND_n END SUBROUTINE SEND_GROUND_WIND_n
!##################################### !#####################################
SUBROUTINE FOREFIRE_RECEIVE_PARAL_n () SUBROUTINE FOREFIRE_RECEIVE_PARAL_n ()
!##################################### !#####################################
...@@ -208,7 +209,7 @@ IMPLICIT NONE ...@@ -208,7 +209,7 @@ IMPLICIT NONE
END SUBROUTINE FOREFIRE_RECEIVE_PARAL_n END SUBROUTINE FOREFIRE_RECEIVE_PARAL_n
!####################################### !#######################################
SUBROUTINE FOREFIRE_SEND_PARAL_n (IINFO) SUBROUTINE FOREFIRE_SEND_PARAL_n (IINFO)
!####################################### !#######################################
...@@ -238,18 +239,18 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exch ...@@ -238,18 +239,18 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exch
!* Calling the MNH parallel routines for the forefire-related variables !* Calling the MNH parallel routines for the forefire-related variables
! !
NULLIFY(FOREFIREFIELD_ll) NULLIFY(FOREFIREFIELD_ll)
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_POSX) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_POSX, 'FOREFIRE_SEND_PARAL_n::FFNODES_POSX' )
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_POSY) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_POSY, 'FOREFIRE_SEND_PARAL_n::FFNODES_POSY' )
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELX) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELX, 'FOREFIRE_SEND_PARAL_n::FFNODES_VELX' )
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELY) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELY, 'FOREFIRE_SEND_PARAL_n::FFNODES_VELY' )
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_TIME) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_TIME, 'FOREFIRE_SEND_PARAL_n::FFNODES_TIME' )
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_ID) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_ID, 'FOREFIRE_SEND_PARAL_n::FFNODES_ID' )
CALL UPDATE_HALO_ll(FOREFIREFIELD_ll, IINFO) CALL UPDATE_HALO_ll(FOREFIREFIELD_ll, IINFO)
CALL CLEANLIST_ll(FOREFIREFIELD_ll) CALL CLEANLIST_ll(FOREFIREFIELD_ll)
END SUBROUTINE FOREFIRE_SEND_PARAL_n END SUBROUTINE FOREFIRE_SEND_PARAL_n
!##################################################### !#####################################################
SUBROUTINE FOREFIRE_DUMP_FIELDS_n(U, V, W, MNHSV, TH & SUBROUTINE FOREFIRE_DUMP_FIELDS_n(U, V, W, MNHSV, TH &
, R, PABS, TKE, NX, NY, NZ) , R, PABS, TKE, NX, NY, NZ)
...@@ -280,7 +281,7 @@ INTEGER :: JSV ...@@ -280,7 +281,7 @@ INTEGER :: JSV
FF3DOUT = 1 FF3DOUT = 1
FFNUMOUT = FFNUMOUT + 1 FFNUMOUT = FFNUMOUT + 1
END IF END IF
IF ( FF3DOUTPUTSFLOW .AND. FF3DOUT.EQ.1 ) THEN IF ( FF3DOUTPUTSFLOW .AND. FF3DOUT.EQ.1 ) THEN
CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sU, FF_TIME, U, NX*NY*NZ, NX, NY, NZ, 1) CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sU, FF_TIME, U, NX*NY*NZ, NX, NY, NZ, 1)
CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sV, FF_TIME, V, NX*NY*NZ, NX, NY, NZ, 1) CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sV, FF_TIME, V, NX*NY*NZ, NX, NY, NZ, 1)
...@@ -290,14 +291,14 @@ INTEGER :: JSV ...@@ -290,14 +291,14 @@ INTEGER :: JSV
, FF_TIME, MNHSV(:, :, :, NSV_FFBEG-1+JSV), NX*NY*NZ, NX, NY, NZ, 1) , FF_TIME, MNHSV(:, :, :, NSV_FFBEG-1+JSV), NX*NY*NZ, NX, NY, NZ, 1)
END DO END DO
END IF END IF
IF ( FF3DOUTPUTSPHYS .AND. FF3DOUT.EQ.1 ) THEN IF ( FF3DOUTPUTSPHYS .AND. FF3DOUT.EQ.1 ) THEN
CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sT, FF_TIME, TH, NX*NY*NZ, NX, NY, NZ, 1) CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sT, FF_TIME, TH, NX*NY*NZ, NX, NY, NZ, 1)
CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sMoist, FF_TIME, R, NX*NY*NZ, NX, NY, NZ, 1) CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sMoist, FF_TIME, R, NX*NY*NZ, NX, NY, NZ, 1)
CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sP, FF_TIME, PABS, NX*NY*NZ, NX, NY, NZ, 1) CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sP, FF_TIME, PABS, NX*NY*NZ, NX, NY, NZ, 1)
CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sTKE, FF_TIME, TKE, NX*NY*NZ, NX, NY, NZ, 1) CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, sTKE, FF_TIME, TKE, NX*NY*NZ, NX, NY, NZ, 1)
END IF END IF
IF ( LFFCHEM .AND. FF3DOUTPUTSCHEM .AND. FF3DOUT.EQ.1 ) THEN IF ( LFFCHEM .AND. FF3DOUTPUTSCHEM .AND. FF3DOUT.EQ.1 ) THEN
DO JSV = 1, NFFCHEMVAR DO JSV = 1, NFFCHEMVAR
CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, cast_char_to_c(CNAMES(FF_CHEMINDICES(JSV))) & CALL MNH_DUMP_DOUBLEARRAY(FFNMODEL, PROCID, cast_char_to_c(CNAMES(FF_CHEMINDICES(JSV))) &
...@@ -308,7 +309,7 @@ INTEGER :: JSV ...@@ -308,7 +309,7 @@ INTEGER :: JSV
, FF_TIME, MNHSV(:, :, :, FF_CHEMINDOUT(JSV)), NX*NY*NZ, NX, NY, NZ, 1) , FF_TIME, MNHSV(:, :, :, FF_CHEMINDOUT(JSV)), NX*NY*NZ, NX, NY, NZ, 1)
END DO END DO
END IF END IF
FF3DOUT = 0 FF3DOUT = 0
END SUBROUTINE FOREFIRE_DUMP_FIELDS_n END SUBROUTINE FOREFIRE_DUMP_FIELDS_n
!MNH_LIC Copyright 1999-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 1999-2022 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 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. !MNH_LIC for details. version 1.
...@@ -104,7 +104,9 @@ USE MODD_NSV, only: NSV_A, NSV_C1R3BEG_A, NSV_C1R3_A, NSV_C2R2BEG_A, ...@@ -104,7 +104,9 @@ USE MODD_NSV, only: NSV_A, NSV_C1R3BEG_A, NSV_C1R3_A, NSV_C2R2BEG_A,
NSV_ELECBEG_A, NSV_ELEC_A, NSV_LGBEG_A, NSV_LG_A, NSV_LIMA_A, NSV_LIMA_BEG_A, & NSV_ELECBEG_A, NSV_ELEC_A, NSV_LGBEG_A, NSV_LG_A, NSV_LIMA_A, NSV_LIMA_BEG_A, &
NSV_LNOXBEG_A, NSV_LNOX_A, NSV_PPBEG_A, NSV_PP_A, & NSV_LNOXBEG_A, NSV_LNOX_A, NSV_PPBEG_A, NSV_PP_A, &
NSV_SLTBEG_A, NSV_SLTDEPBEG_A, NSV_SLTDEP_A, NSV_SLT_A, NSV_USER_A NSV_SLTBEG_A, NSV_SLTDEPBEG_A, NSV_SLTDEP_A, NSV_SLT_A, NSV_USER_A
#ifdef MNH_FOREFIRE
USE MODD_NSV, only: NSV_FF_A, NSV_FFBEG_A
#endif
USE MODD_PARAM_n, only: CCLOUD USE MODD_PARAM_n, only: CCLOUD
USE MODD_REF, ONLY: LCOUPLES USE MODD_REF, ONLY: LCOUPLES
USE MODD_REF_n, only: XRHODJ, XRHODREF USE MODD_REF_n, only: XRHODJ, XRHODREF
......
!MNH_LIC Copyright 1996-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 1996-2022 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 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. !MNH_LIC for details. version 1.
...@@ -137,7 +137,9 @@ USE MODD_NSV, only: NSV_A, NSV_C1R3BEG_A, NSV_C1R3_A, NSV_C2R2BEG_A, ...@@ -137,7 +137,9 @@ USE MODD_NSV, only: NSV_A, NSV_C1R3BEG_A, NSV_C1R3_A, NSV_C2R2BEG_A,
NSV_PPBEG_A, NSV_PP_A, & NSV_PPBEG_A, NSV_PP_A, &
NSV_SLTBEG_A, NSV_SLT_A, NSV_USER_A, & NSV_SLTBEG_A, NSV_SLT_A, NSV_USER_A, &
NSV_AERBEG_A, NSV_AER_A, NSV_CSBEG_A, NSV_CS_A NSV_AERBEG_A, NSV_AER_A, NSV_CSBEG_A, NSV_CS_A
#ifdef MNH_FOREFIRE
USE MODD_NSV, only: NSV_FF_A, NSV_FFBEG_A
#endif
USE MODD_PARAMETERS, only: JPHEXT, JPVEXT USE MODD_PARAMETERS, only: JPHEXT, JPVEXT
USE MODD_PARAM_n, only: CCLOUD USE MODD_PARAM_n, only: CCLOUD
USE MODD_REF, ONLY: LCOUPLES USE MODD_REF, ONLY: LCOUPLES
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment