From fb1f1869510837d7e8697fe2ff7ffdd46813743e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 10 Feb 2023 11:58:44 +0100 Subject: [PATCH] Philippe 10/02/2023: BLAZE: provide all necessary metadata for reading Remarks: needs pyrolib library > 0.3.1 to generate firemap file --- src/MNH/firemodel.f90 | 70 ++++++++++++++++++++++++++++++++----------- src/MNH/modd_fire.f90 | 4 ++- 2 files changed, 56 insertions(+), 18 deletions(-) diff --git a/src/MNH/firemodel.f90 b/src/MNH/firemodel.f90 index 0ed93811a..612d4d52c 100644 --- a/src/MNH/firemodel.f90 +++ b/src/MNH/firemodel.f90 @@ -1957,12 +1957,14 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) !* 0. DECLARATIONS !! ============ ! - USE MODD_FIELD, ONLY: TFIELDMETADATA, TYPEREAL + USE MODD_FIELD, ONLY: NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED, TFIELDMETADATA, TYPEREAL + USE MODD_FIRE, ONLY: NFIREENTRIES 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 MODD_LUNIT_n, ONLY: TLUOUT + USE MODD_PARAMETERS, ONLY: NMNHNAMELGTMAX, NUNITLGTMAX ! IMPLICIT NONE ! @@ -1976,6 +1978,25 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) !* 0.2 declarations of local variables + CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(NFIREENTRIES), PARAMETER :: & + CFIREFUELMAP_NAME = [ & + 'Fuel_type', 'rhod ', 'rhol ', 'Md ', 'Ml ', & + 'sd ', 'sl ', 'sigmad ', 'sigmal ', 'e ', & + 'Ti ', 'Ta ', 'DeltaH ', 'Deltah ', 'tau0 ', & + 'stoch ', 'rhoa ', 'cp ', 'cpa ', 'X0 ', & + 'LAI ', 'r00 ' ] + + CHARACTER(LEN=NUNITLGTMAX), DIMENSION(NFIREENTRIES), PARAMETER :: & + CFIREFUELMAP_UNITS = [ & + '1 ', 'kg m-3 ', 'kg m-3 ', '- ', '- ', & + 'm-1 ', 'm-1 ', 'kg m-2 ', 'kg m-2 ', 'm ', & + 'K ', 'K ', 'J kg-1 ', 'J kg-1 ', 's m-1 ', & + '- ', 'kg m-3 ', 'J K-1 kg-1', 'J K-1 kg-1', '- ', & + '- ', '- ' ] + + ! Comments not stored (not very useful and not necessary for checks at reading) + ! CHARACTER(LEN=NCOMMENTLGTMAX), DIMENSION(NFIREENTRIES), PARAMETER :: CFIREFUELMAP_COMMENT + CHARACTER(LEN=6) :: YFUELNAME INTEGER :: ILUOUT ! Logical unit number for the output listing TYPE(TFILEDATA), POINTER :: TFUELFILE ! FuelMap file @@ -2000,23 +2021,20 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) !* 3. Read fuels properties + DO JFUEL = 1, NFIREENTRIES TZFIELD = TFIELDMETADATA( & - CMNHNAME = 'generic', & + CMNHNAME = TRIM( CFIREFUELMAP_NAME(JFUEL) ), & CSTDNAME = '', & - CLONGNAME = 'generic', & - !CUNITS = '', & + CLONGNAME = TRIM( CFIREFUELMAP_NAME(JFUEL) ), & + CUNITS = TRIM( CFIREFUELMAP_UNITS(JFUEL) ), & CDIR = 'XY', & NGRID = 4, & NTYPE = TYPEREAL, & NDIMS = 3, & - LTIMEDEP = .FALSE., & - CCOMMENT = '' ) + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .FALSE. ) - DO JFUEL = 1, 22 - WRITE(YFUELNAME,'(A4,I2.2)')'Fuel',JFUEL - WRITE(UNIT=ILUOUT,FMT=*) 'Extract ', YFUELNAME - TZFIELD%CMNHNAME = YFUELNAME - TZFIELD%CLONGNAME = YFUELNAME + WRITE(UNIT=ILUOUT,FMT=*) 'Extract ', TRIM( CFIREFUELMAP_NAME(JFUEL) ) ! Import data from file CALL IO_Field_read( TFUELFILE, TZFIELD, PFIREFUELMAP(:,:,:,JFUEL) ) @@ -2026,9 +2044,18 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) WRITE(UNIT=ILUOUT,FMT=*) 'Extract Ignition' - ! change field properties - TZFIELD%CMNHNAME = 'Ignition' - TZFIELD%CLONGNAME = 'Ignition' + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'Ignition', & + CSTDNAME = '', & + CLONGNAME = 'Ignition time', & + CUNITS = 's', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .FALSE., & + CCOMMENT = 'Ignition map' ) ! Import data from file CALL IO_Field_read( TFUELFILE, TZFIELD, PFMIGNITION ) @@ -2037,9 +2064,18 @@ SUBROUTINE FIRE_READFUEL( TPFILE, PFIREFUELMAP, PFMIGNITION, PFMWALKIG ) WRITE(UNIT=ILUOUT,FMT=*) 'Extract Walking Ignition' - ! change field properties - TZFIELD%CMNHNAME = 'WalkingIgnition' - TZFIELD%CLONGNAME = 'WalkingIgnition' + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'WalkingIgnition', & + CSTDNAME = '', & + CLONGNAME = 'Walking ignition time', & + CUNITS = 's', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .FALSE., & + CCOMMENT = 'WalkingIgnition map' ) ! Import data from file CALL IO_Field_read( TFUELFILE, TZFIELD, PFMWALKIG ) diff --git a/src/MNH/modd_fire.f90 b/src/MNH/modd_fire.f90 index dbc833a7c..efda6f439 100644 --- a/src/MNH/modd_fire.f90 +++ b/src/MNH/modd_fire.f90 @@ -37,7 +37,9 @@ USE MODD_PRECISION, ONLY: MNHTIME IMPLICIT NONE ! SAVE -! + +INTEGER, PARAMETER :: NFIREENTRIES = 22 + LOGICAL :: LBLAZE ! Flag for Fire model use, default FALSE CHARACTER(LEN=11) :: CPROPAG_MODEL ! Fire propagation model (default SANTONI2011) -- GitLab