diff --git a/src/MNH/firemodel.f90 b/src/MNH/firemodel.f90 index 124629a7d4fb6bb52068d87737260c6e0b424c8d..795372561d1d99deeaa961784b32ed31ebbe3e4c 100644 --- a/src/MNH/firemodel.f90 +++ b/src/MNH/firemodel.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2019-2023 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. @@ -1957,18 +1957,12 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) !* 0. DECLARATIONS !! ============ ! - USE MODD_FIRE - USE MODD_CONF, ONLY : NVERB - USE MODD_FIELD - USE MODD_IO, ONLY: TFILEDATA - USE MODD_LUNIT_n, ONLY: TLUOUT - USE MODE_FIELD + USE MODD_FIELD, ONLY: TFIELDMETADATA, TYPEREAL + USE MODD_IO, ONLY: TFILEDATA + USE MODE_IO_FIELD_READ, ONLY: IO_Field_read + USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST - use NETCDF, ONLY: NF90_FLOAT - USE MODE_IO_FIELD_READ,ONLY: IO_Field_read - USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open - ! - USE MODE_MPPDB + USE MODD_LUNIT_n, ONLY: TLUOUT ! IMPLICIT NONE ! @@ -1982,23 +1976,15 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) !* 0.2 declarations of local variables - REAL, DIMENSION(SIZE(PFIREFUELMAP,1),SIZE(PFIREFUELMAP,2),SIZE(PFIREFUELMAP,3)) :: ZWORK ! Working array - CHARACTER(LEN=6) :: YFUELNAME - INTEGER :: IID ! File management variable - INTEGER :: IRESP ! Return code of FM routines - INTEGER :: IGRID ! C-grid indicator in LFIFM file - INTEGER :: ILENCH ! Length of comment string in LFIFM file - CHARACTER (LEN=100) :: YCOMMENT ! comment string in LFIFM file INTEGER :: ILUOUT ! Logical unit number for the output listing - INTEGER :: IIU, IJU ! max array size - TYPE(TFILEDATA),POINTER :: TFUELFILE => NULL() ! FuelMap file - TYPE(TFIELDDATA) :: TZFIELD ! Field type + TYPE(TFILEDATA), POINTER :: TFUELFILE ! FuelMap file + TYPE(TFIELDMETADATA) :: TZFIELD ! Field type ! loop, tests INTEGER :: JFUEL !---------------------------------------------------------------------------------------------- ! - + TFUELFILE => NULL() !* 1. Get logical number for Outputlisting ILUOUT = TLUOUT%NLU @@ -2012,23 +1998,26 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) CALL IO_FILE_ADD2LIST( TFUELFILE, 'FuelMap', 'MNH', 'READ', HFORMAT='NETCDF4' ) CALL IO_File_open( TFUELFILE ) - TFUELFILE%NLFITYPE = 0 - !* 3. Read fuels properties - CALL FIND_FIELD_ID_FROM_MNHNAME( 'UT', IID, IRESP ) - TZFIELD = TFIELDLIST(IID) + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'generic', & + CSTDNAME = '', & + CLONGNAME = 'generic', & + !CUNITS = '', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE., & + CCOMMENT = '' ) DO JFUEL = 1, 22 WRITE(YFUELNAME,'(A4,I2.2)')'Fuel',JFUEL WRITE(UNIT=ILUOUT,FMT=*) 'Extract ', YFUELNAME - ! change field properties - TZFIELD%CMNHNAME = YFUELNAME - TZFIELD%CSTDNAME = YFUELNAME - TZFIELD%NDIMS = 3 - TZFIELD%NTYPE = NF90_FLOAT - TZFIELD%LTIMEDEP = .FALSE. - TZFIELD%NGRID = 4 + TZFIELD%CMNHNAME = YFUELNAME + TZFIELD%CLONGNAME = YFUELNAME + ! Import data from file CALL IO_Field_read( TFUELFILE, TZFIELD, PFIREFUELMAP(:,:,:,JFUEL) ) END DO @@ -2038,8 +2027,8 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) WRITE(UNIT=ILUOUT,FMT=*) 'Extract Ignition' ! change field properties - TZFIELD%CMNHNAME = 'Ignition' - TZFIELD%CSTDNAME = 'Ignition' + TZFIELD%CMNHNAME = 'Ignition' + TZFIELD%CLONGNAME = 'Ignition' ! Import data from file CALL IO_Field_read( TFUELFILE, TZFIELD, PFMIGNITION ) @@ -2049,8 +2038,8 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) WRITE(UNIT=ILUOUT,FMT=*) 'Extract Walking Ignition' ! change field properties - TZFIELD%CMNHNAME = 'WalkingIgnition' - TZFIELD%CSTDNAME = 'WalkingIgnition' + TZFIELD%CMNHNAME = 'WalkingIgnition' + TZFIELD%CLONGNAME = 'WalkingIgnition' ! Import data from file CALL IO_Field_read( TFUELFILE, TZFIELD, PFMWALKIG ) @@ -2095,18 +2084,12 @@ SUBROUTINE FIRE_READBMAP(TPFILE, PBMAP) !* 0. DECLARATIONS !! ============ ! - USE MODD_FIRE - USE MODD_CONF, ONLY : NVERB - USE MODD_FIELD - USE MODD_IO, ONLY: TFILEDATA - USE MODD_LUNIT_n, ONLY: TLUOUT - USE MODE_FIELD + USE MODD_FIRE, ONLY: CBMAPFILE + USE MODD_IO, ONLY: TFILEDATA + USE MODE_IO_FIELD_READ, ONLY: IO_Field_read + USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST - use NETCDF, only: NF90_FLOAT - USE MODE_IO_FIELD_READ,ONLY: IO_Field_read - USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open - ! - USE MODE_MPPDB + USE MODD_LUNIT_n, ONLY: TLUOUT ! IMPLICIT NONE ! @@ -2118,21 +2101,11 @@ SUBROUTINE FIRE_READBMAP(TPFILE, PBMAP) !* 0.2 declarations of local variables - CHARACTER(LEN=6) :: YFUELNAME - INTEGER :: IID ! File management variable - INTEGER :: IRESP ! Return code of FM routines - INTEGER :: IGRID ! C-grid indicator in LFIFM file - INTEGER :: ILENCH ! Length of comment string in LFIFM file - CHARACTER (LEN=100) :: YCOMMENT ! comment string in LFIFM file INTEGER :: ILUOUT ! Logical unit number for the output listing - INTEGER :: IIU, IJU ! max array size - TYPE(TFILEDATA),POINTER :: TFUELFILE => NULL() ! FuelMap file - TYPE(TFIELDDATA) :: TZFIELD ! Field type - ! loop, tests - INTEGER :: JFUEL + TYPE(TFILEDATA), POINTER :: TFUELFILE ! FuelMap file !---------------------------------------------------------------------------------------------- ! - + TFUELFILE => NULL() !* 1. Get logical number for Outputlisting ILUOUT = TLUOUT%NLU @@ -2146,24 +2119,12 @@ SUBROUTINE FIRE_READBMAP(TPFILE, PBMAP) CALL IO_FILE_ADD2LIST( TFUELFILE, CBMAPFILE, 'MNH', 'READ', HFORMAT='NETCDF4' ) CALL IO_File_open( TFUELFILE ) - TFUELFILE%NLFITYPE = 0 - !* 4. read Burning map file WRITE(UNIT=ILUOUT,FMT=*) 'Extract BMap' - CALL FIND_FIELD_ID_FROM_MNHNAME( 'UT', IID, IRESP ) - TZFIELD = TFIELDLIST(IID) - ! changes properties - TZFIELD%CMNHNAME = 'BMAP' - TZFIELD%CSTDNAME = 'BMAP' - TZFIELD%NDIMS = 3 - TZFIELD%NTYPE = NF90_FLOAT - TZFIELD%LTIMEDEP = .TRUE. - TZFIELD%NGRID = 1 - ! Import data from file - CALL IO_Field_read( TFUELFILE, TZFIELD, PBMAP ) + CALL IO_Field_read( TFUELFILE, 'BMAP', PBMAP ) !* 5. Close file