1 ! WRF:MEDIATION_LAYER:FIRE_MODEL
6 module module_fr_fire_driver_wrf
9 use module_fr_fire_driver
10 use module_fr_fire_atm
15 subroutine fire_driver_em_init (grid , config_flags &
16 ,ids,ide, kds,kde, jds,jde &
17 ,ims,ime, kms,kme, jms,jme &
18 ,ips,ipe, kps,kpe, jps,jpe)
20 ! stub to call fire_driver_em with irun=0 and omit last 3 args
22 USE module_domain , only: domain , get_ijk_from_subgrid
23 USE module_configure , only : grid_config_rec_type
26 TYPE(domain) , TARGET :: grid ! data
27 TYPE (grid_config_rec_type) , INTENT(IN) :: config_flags
28 integer, intent(in):: &
29 ids,ide, kds,kde, jds,jde &
30 ,ims,ime, kms,kme, jms,jme &
31 ,ips,ipe, kps,kpe, jps,jpe
34 integer :: & ! fire mesh sizes
35 ifds,ifde, kfds,kfde, jfds,jfde, &
36 ifms,ifme, kfms,kfme, jfms,jfme, &
37 ifps,ifpe, kfps,kfpe, jfps,jfpe
40 real,dimension(1,1,1)::rho,z_at_w,dz8w
42 call message('fire_driver_em_init: FIRE initialization start')
44 ! get fire mesh dimensions
45 CALL get_ijk_from_subgrid ( grid , &
46 ifds,ifde, jfds,jfde,kfds,kfde, &
47 ifms,ifme, jfms,jfme,kfms,kfme, &
48 ifps,ifpe, jfps,jfpe,kfps,kfpe)
50 call fire_driver_em ( grid , config_flags &
51 ,1,2,0 & ! ifun start, end, test steps
52 ,ids,ide, kds,kde, jds,jde &
53 ,ims,ime, kms,kme, jms,jme &
54 ,ips,ipe, kps,kpe, jps,jpe &
55 ,ifds,ifde, jfds,jfde &
56 ,ifms,ifme, jfms,jfme &
57 ,ifps,ifpe, jfps,jfpe &
60 call message('fire_driver_em_init: FIRE initialization complete')
62 end subroutine fire_driver_em_init
68 subroutine fire_driver_em_step (grid , config_flags &
69 ,ids,ide, kds,kde, jds,jde &
70 ,ims,ime, kms,kme, jms,jme &
71 ,ips,ipe, kps,kpe, jps,jpe &
74 ! stub to call fire_driver_em
76 USE module_domain, only: domain , get_ijk_from_subgrid
77 USE module_configure , only : grid_config_rec_type
78 USE module_fr_fire_util, only : fire_test_steps
81 TYPE(domain) , TARGET :: grid ! data
82 TYPE (grid_config_rec_type) , INTENT(IN) :: config_flags
83 integer, intent(in):: &
84 ids,ide, kds,kde, jds,jde &
85 ,ims,ime, kms,kme, jms,jme &
86 ,ips,ipe, kps,kpe, jps,jpe
87 real,dimension(ims:ime, kms:kme, jms:jme),intent(in)::rho,z_at_w,dz8w
90 integer :: & ! fire mesh sizes
91 ifds,ifde, kfds,kfde, jfds,jfde, &
92 ifms,ifme, kfms,kfme, jfms,jfme, &
93 ifps,ifpe, kfps,kfpe, jfps,jfpe
94 integer :: its,ite,jts,jte,kts,kte ! atm tile
97 call message('fire_driver_em_step: FIRE step start')
99 ! get fire mesh dimensions
100 CALL get_ijk_from_subgrid ( grid , &
101 ifds,ifde, jfds,jfde,kfds,kfde, &
102 ifms,ifme, jfms,jfme,kfms,kfme, &
103 ifps,ifpe, jfps,jfpe,kfps,kfpe)
105 call fire_driver_em ( grid , config_flags &
106 ,3,6,fire_test_steps &
107 ,ids,ide, kds,kde, jds,jde &
108 ,ims,ime, kms,kme, jms,jme &
109 ,ips,ipe, kps,kpe, jps,jpe &
110 ,ifds,ifde, jfds,jfde &
111 ,ifms,ifme, jfms,jfme &
112 ,ifps,ifpe, jfps,jfpe &
117 ! --- add heat and moisture fluxes to tendency variables by postulated decay
118 do ij=1,grid%num_tiles
119 ! FIRE works on domain by 1 smaller, in last row&col winds are not set properly
120 its = grid%i_start(ij) ! start atmospheric tile in i
121 ite = min(grid%i_end(ij),ide-1) ! end atmospheric tile in i
122 jts = grid%j_start(ij) ! start atmospheric tile in j
123 jte = min(grid%j_end(ij),jde-1) ! end atmospheric tile in j
127 call fire_tendency( &
128 ids,ide-1, kds,kde, jds,jde-1, & ! domain dimensions
129 ims,ime, kms,kme, jms,jme, &
130 its,ite, kts,kte, jts,jte, & !
131 grid%grnhfx,grid%grnqfx,grid%canhfx,grid%canqfx, & ! fluxes on atm grid
132 config_flags%fire_ext_grnd,config_flags%fire_ext_crwn,config_flags%fire_crwn_hgt, &
133 config_flags%fire_sfc_flx,config_flags%fire_heat_peak,config_flags%fire_tg_ub, &
134 grid%ht,z_at_w,dz8w,grid%mut,grid%c1h,grid%c2h,rho, &
135 grid%rthfrten,grid%rqvfrten) ! out
139 ! debug print to compare
141 call print_3d_stats(its,ite,kts,kte,jts,jte,ims,ime,kms,kme,jms,jme,grid%rthfrten,'fire_driver_phys:rthfrten')
142 call print_3d_stats(its,ite,kts,kte,jts,jte,ims,ime,kms,kme,jms,jme,grid%rqvfrten,'fire_driver_phys:rqvfrten')
144 call message('fire_driver_em_step: FIRE step complete')
146 end subroutine fire_driver_em_step
148 end module module_fr_fire_driver_wrf