Skip to content

Commit

Permalink
added input_lu input_tsk input_tmn
Browse files Browse the repository at this point in the history
  • Loading branch information
janmandel committed Jul 22, 2010
1 parent 0fc3108 commit d15ece1
Show file tree
Hide file tree
Showing 4 changed files with 697 additions and 11 deletions.
4 changes: 4 additions & 0 deletions wrfv2_fire/Registry/registry.fire
Expand Up @@ -168,6 +168,10 @@ rconfig logical sfc_full_init namelist,fire max_domains
rconfig integer sfc_lu_index namelist,fire max_domains 28 - "sfc_lu_index" "USGS landuse index definig sfc record from LANDUSE.TBL" ""
rconfig real sfc_tsk namelist,fire max_domains 285.0 - "sfc_tsk" "surface skin temperature (TSK)" "K"
rconfig real sfc_tmn namelist,fire max_domains 285.0 - "sfc_tmn" "soil temperature at lower boundary (TMN)" "K"
# landuse data from files - overwrite constants
rconfig logical fire_read_lu namelist,fire max_domains .false. - "fire_read_lu" "read land use data from file input_lu" ""
rconfig logical fire_read_tsk namelist,fire max_domains .false. - "fire_read_tsk" "read file input_tsk" ""
rconfig logical fire_read_tmn namelist,fire max_domains .false. - "fire_read_tmn" "read file input_tmn" ""
# topography data from files
rconfig logical fire_read_atm_ht namelist,fire max_domains .false. - "fire_read_atm_ht" "read terrain height on atm mesh from file" ""
rconfig logical fire_read_fire_ht namelist,fire max_domains .false. - "fire_read_fire_ht" "read terrain height on fire mesh from file" ""
Expand Down
28 changes: 19 additions & 9 deletions wrfv2_fire/dyn_em/module_initialize_fire.F
Expand Up @@ -27,7 +27,8 @@ MODULE module_initialize_ideal
#ifdef DM_PARALLEL
USE module_dm
#endif
USE module_fr_sfire_util, ONLY: continue_at_boundary,crash,read_array_2d,interpolate_2d
USE module_fr_sfire_util, ONLY: continue_at_boundary,crash,read_array_2d_real, &
read_array_2d_integer,interpolate_2d

CONTAINS

Expand Down Expand Up @@ -250,6 +251,13 @@ SUBROUTINE init_domain_rk ( grid &
grid%tmn(i,j) = config_flags%sfc_tmn !AK/ak soil temperature at lower boundary [K] (285)
END DO
END DO
! read land use data from files, overwriting the constant
if(config_flags%fire_read_lu) &
call read_array_2d_integer('input_lu',grid%lu_index,ids,ide,jds,jde,ims,ime,jms,jme)
if(config_flags%fire_read_tsk) &
call read_array_2d_real ('input_tsk',grid%tsk, ids,ide,jds,jde,ims,ime,jms,jme)
if(config_flags%fire_read_tmn) &
call read_array_2d_real ('input_tmn',grid%tmn, ids,ide,jds,jde,ims,ime,jms,jme)

! for Noah LSM, additional variables need to be initializedi !AK/ak |

Expand Down Expand Up @@ -293,10 +301,11 @@ SUBROUTINE init_domain_rk ( grid &
grid%step_number = 0

IF (sfc_init) THEN

write(6,*) ' full surface initialization activated '
write(6,*) ' land use index =', config_flags%sfc_lu_index
write(6,*) ' skin temperature=',grid%tsk(10,10),&
'[K] soil temperature=', grid%tmn(10,10),'[K]'
! write(6,*) ' land use index =', config_flags%sfc_lu_index
! write(6,*) ' skin temperature=',grid%tsk(10,10),&
! '[K] soil temperature=', grid%tmn(10,10),'[K]'
! Process the soil; note that there are some things hard-wired into share/module_soil_pre.F
CALL process_soil_ideal(grid%xland,grid%xice,grid%vegfra,grid%snow,grid%canwat, &
grid%ivgtyp,grid%isltyp,grid%tslb,grid%smois, &
Expand All @@ -306,6 +315,7 @@ SUBROUTINE init_domain_rk ( grid &
ims,ime, jms,jme, kms,kme,&
its,ite, jts,jte, kts,kte )


ELSE
write(6,*) 'full surface initialization is turned off!! '
ENDIF !end of surface initialization
Expand Down Expand Up @@ -418,7 +428,7 @@ SUBROUTINE init_domain_rk ( grid &
ENDDO

if(config_flags%fire_fuel_read.eq.2) &
call read_array_2d('input_fc',grid%nfuel_cat,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)
call read_array_2d_real('input_fc',grid%nfuel_cat,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)


have_fire_grad=.false.
Expand Down Expand Up @@ -501,12 +511,12 @@ SUBROUTINE init_domain_rk ( grid &
ELSE ! mtn_type

if(config_flags%fire_read_atm_ht)then !
call read_array_2d('input_ht',grid%ht,ids,ide,jds,jde,ims,ime,jms,jme)
call read_array_2d_real('input_ht',grid%ht,ids,ide,jds,jde,ims,ime,jms,jme)
! no flag - we always have the terrain height on atm mesh, zero if not set
endif

if(config_flags%fire_read_fire_ht)then !
call read_array_2d('input_zsf',grid%zsf,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)
call read_array_2d_real('input_zsf',grid%zsf,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)
have_fire_ht=.true.
endif

Expand All @@ -516,8 +526,8 @@ SUBROUTINE init_domain_rk ( grid &
endif

if(config_flags%fire_read_fire_grad)then !
call read_array_2d('input_dzdxf',grid%dzdxf,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)
call read_array_2d('input_dzdyf',grid%dzdyf,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)
call read_array_2d_real('input_dzdxf',grid%dzdxf,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)
call read_array_2d_real('input_dzdyf',grid%dzdyf,ifds,ifde,jfds,jfde,ifms,ifme,jfms,jfme)
have_fire_grad=.true.
endif
ENDIF ! mtn_type
Expand Down
34 changes: 32 additions & 2 deletions wrfv2_fire/phys/module_fr_sfire_util.F
Expand Up @@ -1160,7 +1160,37 @@ end subroutine write_array_m3
!
!***
!
subroutine read_array_2d(filename,a,its,ite,jts,jte,ims,ime,jms,jme)
subroutine read_array_2d_integer(filename,ia,its,ite,jts,jte,ims,ime,jms,jme)
!*** arguments
integer, intent(in)::its,ite,jts,jte,ims,ime,jms,jme
integer, intent(out), dimension(ims:ime,jms:jme):: ia
character(len=*),intent(in)::filename
!*** local
real, allocatable, dimension(:,:)::a
integer::i,j
real::r
character(len=256)msg
!*** executable
allocate(a(ims:ime,jms:jme))
call read_array_2d_real(filename,a,its,ite,jts,jte,ims,ime,jms,jme)
do j=jts,jte
do i=its,ite
ia(i,j)=a(i,j)
r=ia(i,j)
if(r.ne.a(i,j))then
write(6,*)'Reading file ',trim(filename)
write(6,*)'value at position ',i,j,' cannot be converted to integer'
write(6,*)'read ',a(i,j),' converted as',k,' converted as ',r
msg=trim(filename)//' is not integer file'
call crash(msg)
endif
enddo
enddo
end subroutine read_array_2d_integer



subroutine read_array_2d_real(filename,a,its,ite,jts,jte,ims,ime,jms,jme)
use module_dm
#ifdef _OPENMP
use OMP_LIB
Expand Down Expand Up @@ -1228,7 +1258,7 @@ subroutine read_array_2d(filename,a,its,ite,jts,jte,ims,ime,jms,jme)
call crash(msg)
11 msg='Error closing file '//trim(filename)
call crash(msg)
end subroutine read_array_2d
end subroutine read_array_2d_real
!
!***
!
Expand Down

0 comments on commit d15ece1

Please sign in to comment.