Skip to content
Snippets Groups Projects
Commit 9a7586b9 authored by Batti Filippi's avatar Batti Filippi Committed by RODIER Quentin
Browse files

bugfix to run with ForeFire

parent 115d7d47
No related branches found
No related tags found
No related merge requests found
!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier !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 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
!############################## !##############################
...@@ -83,20 +82,20 @@ INTEGER :: JSV ...@@ -83,20 +82,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)
!############################################## !##############################################
...@@ -139,7 +138,7 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc ...@@ -139,7 +138,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)
...@@ -177,8 +176,8 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc ...@@ -177,8 +176,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, 'SEND_GROUND_WIND_n::FFOUTERWINDU' ) CALL ADD2DFIELD_ll(FOREFIREFIELD_ll,FFOUTERWINDU,'FF2D::OUTERWINDU')
CALL ADD2DFIELD_ll( FOREFIREFIELD_ll, FFOUTERWINDV, 'SEND_GROUND_WIND_n::FFOUTERWINDV' ) CALL ADD2DFIELD_ll(FOREFIREFIELD_ll,FFOUTERWINDV,'FF2D::OUTERWINDU')
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)
...@@ -186,7 +185,7 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exc ...@@ -186,7 +185,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 ()
!##################################### !#####################################
...@@ -209,7 +208,7 @@ IMPLICIT NONE ...@@ -209,7 +208,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)
!####################################### !#######################################
...@@ -239,18 +238,18 @@ TYPE(LIST_ll), POINTER :: FOREFIREFIELD_ll ! list of fields to exch ...@@ -239,18 +238,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, 'FOREFIRE_SEND_PARAL_n::FFNODES_POSX' ) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_POSX,'FF3D::NODEPOSX')
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_POSY, 'FOREFIRE_SEND_PARAL_n::FFNODES_POSY' ) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_POSY,'FF3D::NODEPOSY')
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELX, 'FOREFIRE_SEND_PARAL_n::FFNODES_VELX' ) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELX,'FF3D::NODEVELX')
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELY, 'FOREFIRE_SEND_PARAL_n::FFNODES_VELY' ) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_VELY,'FF3D::NODEVELY')
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_TIME, 'FOREFIRE_SEND_PARAL_n::FFNODES_TIME' ) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_TIME,'FF3D::NODETIME')
CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_ID, 'FOREFIRE_SEND_PARAL_n::FFNODES_ID' ) CALL ADD3DFIELD_ll(FOREFIREFIELD_ll, FFNODES_ID,'FF3D::NODEID')
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)
...@@ -281,7 +280,7 @@ INTEGER :: JSV ...@@ -281,7 +280,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)
...@@ -291,14 +290,14 @@ INTEGER :: JSV ...@@ -291,14 +290,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))) &
...@@ -309,7 +308,7 @@ INTEGER :: JSV ...@@ -309,7 +308,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-2022 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 1999-2021 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.
...@@ -103,10 +103,12 @@ USE MODD_NSV, only: NSV_A, NSV_C1R3BEG_A, NSV_C1R3_A, NSV_C2R2BEG_A, ...@@ -103,10 +103,12 @@ USE MODD_NSV, only: NSV_A, NSV_C1R3BEG_A, NSV_C1R3_A, NSV_C2R2BEG_A,
NSV_CHEM_A, NSV_CHICBEG_A, NSV_CHIC_A, NSV_DSTBEG_A, NSV_DSTDEPBEG_A, NSV_DSTDEP_A, NSV_DST_A, & NSV_CHEM_A, NSV_CHICBEG_A, NSV_CHIC_A, NSV_DSTBEG_A, NSV_DSTDEPBEG_A, NSV_DSTDEP_A, NSV_DST_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
#ifdef MNH_FOREFIRE #ifdef MNH_FOREFIRE
USE MODD_NSV, only: NSV_FF_A, NSV_FFBEG_A NSV_FFBEG_A, NSV_FF_A, &
#endif #endif
NSV_SLTBEG_A, NSV_SLTDEPBEG_A, NSV_SLTDEP_A, NSV_SLT_A, NSV_USER_A
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
......
...@@ -175,7 +175,7 @@ USE MODD_IO, ONLY: TFILEDATA ...@@ -175,7 +175,7 @@ USE MODD_IO, ONLY: TFILEDATA
USE MODD_LATZ_EDFLX, ONLY: LTH_FLX, LUV_FLX USE MODD_LATZ_EDFLX, ONLY: LTH_FLX, LUV_FLX
USE MODD_LBC_n, ONLY: LBC_MODEL USE MODD_LBC_n, ONLY: LBC_MODEL
USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_LUNIT_n, ONLY: TLUOUT
USE MODD_NSV, ONLY: NSV, NSV_CSBEG, NSV_CSEND, NSV_PPBEG, NSV_PPEND, NSV_USER, TSVLIST USE MODD_NSV
USE MODD_RELFRC_n, ONLY: RELFRC_MODEL USE MODD_RELFRC_n, ONLY: RELFRC_MODEL
USE MODD_SPAWN USE MODD_SPAWN
! !
......
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