Skip to content

Commit

Permalink
Includes codes to read in the new SAI data sets
Browse files Browse the repository at this point in the history
  • Loading branch information
sanatcumar committed Jan 10, 2025
1 parent 6c74f46 commit 562ee6a
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 5 deletions.
12 changes: 12 additions & 0 deletions sorc/sfc_climo_gen.fd/driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,18 @@ program driver
call source_grid_cleanup
endif


! Stem Area Index

if (trim(input_stem_area_index_file) /= "NULL") then
call define_source_grid(localpet, npets, input_stem_area_index_file)
method=ESMF_REGRIDMETHOD_BILINEAR
if (trim(stem_area_index_method)=="conserve") method=ESMF_REGRIDMETHOD_CONSERVE
call interp(localpet, method, input_stem_area_index_file)
call source_grid_cleanup
endif


call model_grid_cleanup

print*,"- CALL ESMF_finalize"
Expand Down
15 changes: 12 additions & 3 deletions sorc/sfc_climo_gen.fd/interp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ subroutine interp(localpet, method, input_file)

if (.not. fract_vegsoil_type) then
select case (trim(field_names(n)))
case ('substrate_temperature','vegetation_greenness','leaf_area_index','slope_type','soil_type','soil_color')
case ('substrate_temperature','vegetation_greenness','leaf_area_index','slope_type','soil_type','soil_color','stem_area_index')
if (localpet == 0) then
allocate(vegt_mdl_one_tile(i_mdl,j_mdl))
else
Expand Down Expand Up @@ -233,7 +233,7 @@ subroutine interp(localpet, method, input_file)

if (.not. fract_vegsoil_type) then
select case (trim(field_names(n)))
case ('substrate_temperature','vegetation_greenness','leaf_area_index','slope_type','soil_type','soil_color')
case('substrate_temperature','vegetation_greenness','leaf_area_index','slope_type','soil_type','soil_color','stem_area_index')
print*,"- CALL FieldGather FOR MODEL GRID VEG TYPE."
call ESMF_FieldGather(vegt_field_mdl, vegt_mdl_one_tile, rootPet=0, tile=tile, rc=rc)
if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) &
Expand All @@ -246,7 +246,7 @@ subroutine interp(localpet, method, input_file)
call search (data_mdl_one_tile, mask_mdl_one_tile, i_mdl, j_mdl, tile, field_names(n))
if (.not. fract_vegsoil_type) then
select case (field_names(n))
case ('substrate_temperature','vegetation_greenness','leaf_area_index','slope_type','soil_type','soil_color')
case('substrate_temperature','vegetation_greenness','leaf_area_index','slope_type','soil_type','soil_color','stem_area_index')
call adjust_for_landice (data_mdl_one_tile, vegt_mdl_one_tile, i_mdl, j_mdl, field_names(n))
end select
endif
Expand Down Expand Up @@ -343,6 +343,15 @@ subroutine adjust_for_landice(field, vegt, idim, jdim, field_ch)
endif
enddo
enddo
case ('stem_area_index') ! stem area index
landice_value = 0.0 ! bare ground
do j = 1, jdim
do i = 1, idim
if (nint(vegt(i,j)) == landice) then
field(i,j) = landice_value
endif
enddo
enddo
case ('slope_type') ! slope type
landice_value = 9.0
do j = 1, jdim
Expand Down
3 changes: 3 additions & 0 deletions sorc/sfc_climo_gen.fd/output.f90
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ subroutine output(data_one_tile, lat_one_tile, lon_one_tile, i_mdl, j_mdl, &
case ('leaf_area_index')
out_file = "./leaf_area_index." // grid_tiles(tile) // ".nc"
out_file_with_halo = "./leaf_area_index." // grid_tiles(tile) // ".halo.nc"
case ('stem_area_index')
out_file = "./stem_area_index." // grid_tiles(tile) // ".nc"
out_file_with_halo = "./stem_area_index." // grid_tiles(tile) // ".halo.nc"
case ('visible_black_sky_albedo', 'visible_white_sky_albedo', 'near_IR_black_sky_albedo', 'near_IR_white_sky_albedo')
out_file = "./snowfree_albedo." // grid_tiles(tile) // ".nc"
out_file_with_halo = "./snowfree_albedo." // grid_tiles(tile) // ".halo.nc"
Expand Down
7 changes: 6 additions & 1 deletion sorc/sfc_climo_gen.fd/program_setup.f90
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ module program_setup
private

character(len=500), public :: input_leaf_area_index_file = "NULL" !< File containing input leaf area index data.
character(len=500), public :: input_stem_area_index_file = "NULL" !< File containing input stem area index data.
character(len=500), public :: input_facsf_file = "NULL" !< File containing input fractional
!! coverage data for strong zenith angle
!! dependent albedo.
Expand All @@ -38,6 +39,8 @@ module program_setup

character(len=50), public :: leaf_area_index_method='bilinear' !< Interpolation method for leaf area index.
!! Conservative or bilinear (default).
character(len=50), public :: stem_area_index_method='bilinear' !< Interpolation method for stem area index.
!! Conservative or bilinear (default).
character(len=50), public :: maximum_snow_albedo_method='bilinear' !< Interpolation method for max snow albedo.
!! Conservative or bilinear (default).
character(len=50), public :: snowfree_albedo_method='bilinear' !< Interpolation method for snowfree albedo.
Expand Down Expand Up @@ -73,10 +76,12 @@ subroutine read_setup_namelist(localpet)
namelist /config/ input_facsf_file, input_substrate_temperature_file, &
input_maximum_snow_albedo_file, input_snowfree_albedo_file, &
input_slope_type_file, input_soil_type_file, input_soil_color_file,&
input_leaf_area_index_file, input_vegetation_type_file, &
input_leaf_area_index_file,input_stem_area_index_file,&
input_vegetation_type_file, &
input_vegetation_greenness_file, mosaic_file_mdl, &
orog_dir_mdl, orog_files_mdl, halo, &
vegetation_greenness_method, leaf_area_index_method, &
stem_area_index_method, &
maximum_snow_albedo_method, snowfree_albedo_method, &
fract_vegsoil_type

Expand Down
2 changes: 2 additions & 0 deletions sorc/sfc_climo_gen.fd/search.f90
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ subroutine search (field, mask, idim, jdim, tile, field_name)
default_value = 0.5
case ('leaf_area_index') ! leaf area index
default_value = 1.0
case ('stem_area_index') ! stem area index
default_value = 0.0
case ('visible_black_sky_albedo') ! visible black sky albedo
default_value = 0.1
case ('visible_white_sky_albedo') ! visible white sky albedo
Expand Down
2 changes: 2 additions & 0 deletions ush/fv3gfs_driver_grid.sh
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,8 @@ The following parameters were used
lake_data_srce=$lake_data_srce
binary_lake=$binary_lake
lake_cutoff=$lake_cutoff
input_leaf_area_index_file=$input_leaf_area_index_file
stem_leaf_area_index_file=$input_stem_area_index_file
EOF
elif [ $gtype = nest ] || [ $gtype = regional_gfdl ]; then

Expand Down
4 changes: 3 additions & 1 deletion ush/sfc_climo_gen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,16 @@ input_soil_color_file="${input_sfc_climo_dir}/soil_color.clm.0.05.nc"
input_vegetation_type_file="${VEG_TYPE_FILE}"
input_vegetation_greenness_file="${input_sfc_climo_dir}/vegetation_greenness.0.144.nc"
mosaic_file_mdl="$mosaic_file"
input_leaf_area_index_file="${input_sfc_climo_dir}/LAI_climo_pnnl.nc"
input_leaf_area_index_file="${input_leaf_area_index_file}"
input_stem_area_index_file="${input_stem_area_index_file}"
orog_dir_mdl="$FIX_FV3"
orog_files_mdl=$the_orog_files
halo=$HALO
maximum_snow_albedo_method="bilinear"
snowfree_albedo_method="bilinear"
vegetation_greenness_method="bilinear"
leaf_area_index_method="conserve"
stem_area_index_method="conserve"
fract_vegsoil_type=${vegsoilt_frac}
/
EOF
Expand Down

0 comments on commit 562ee6a

Please sign in to comment.