1 | ! radsurf_3d_vegetation.f90 - Compute radiative transfer in 3D vegetation canopy |
---|
2 | ! |
---|
3 | ! (C) Copyright 2018- ECMWF. |
---|
4 | ! |
---|
5 | ! This software is licensed under the terms of the Apache Licence Version 2.0 |
---|
6 | ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. |
---|
7 | ! |
---|
8 | ! In applying this licence, ECMWF does not waive the privileges and immunities |
---|
9 | ! granted to it by virtue of its status as an intergovernmental organisation |
---|
10 | ! nor does it submit to any jurisdiction. |
---|
11 | ! |
---|
12 | ! Author: Robin Hogan |
---|
13 | ! Email: r.j.hogan@ecmwf.int |
---|
14 | ! |
---|
15 | |
---|
16 | module radsurf_3d_vegetation |
---|
17 | |
---|
18 | contains |
---|
19 | subroutine calc_boundary_conditions_sw(config, n_albedo_bands, tile_fraction, & |
---|
20 | & canopy_depth, vegetation_optical_depth, vegetation_albedo, & |
---|
21 | & ground_albedo_diffuse, ground_albedo_direct, & |
---|
22 | & ref_dif, tra_dif, ref_dir, tra_dir_dif, tra_dir_dir, & |
---|
23 | & albedo_diffuse_reg, albedo_direct_reg, & |
---|
24 | & albedo_diffuse_out, albedo_direct_out, & |
---|
25 | & ext_air, ssa_air, g_air) |
---|
26 | |
---|
27 | use parkind, only : jprb |
---|
28 | use radiation_config, only : config_type |
---|
29 | |
---|
30 | implicit none |
---|
31 | |
---|
32 | ! Number of regions |
---|
33 | integer, parameter :: nreg = 2 |
---|
34 | |
---|
35 | type(config_type), intent(in) :: config |
---|
36 | |
---|
37 | integer, intent(in) :: n_albedo_bands |
---|
38 | |
---|
39 | ! Fraction of gridbox occupied by this tile |
---|
40 | real(kind=jprb), intent(in) :: tile_fraction |
---|
41 | |
---|
42 | ! Depth of vegetation canopy in metres |
---|
43 | real(kind=jprb), intent(in) :: canopy_depth |
---|
44 | |
---|
45 | ! Optical properties of vegetation |
---|
46 | real(kind=jprb), intent(in) :: vegetation_optical_depth |
---|
47 | real(kind=jprb), intent(in) :: vegetation_albedo(:) ! Spectral interval |
---|
48 | |
---|
49 | ! Optical properties of the ground (function of spectral interval) |
---|
50 | real(kind=jprb), intent(in) :: ground_albedo_diffuse(:) |
---|
51 | real(kind=jprb), intent(in) :: ground_albedo_direct(:) |
---|
52 | |
---|
53 | ! Geometric properties |
---|
54 | real(kind=jprb), intent(in) :: vegetation_fraction |
---|
55 | real(kind=jprb), intent(in) :: vegetation_normalized_perimeter ! m-1 |
---|
56 | |
---|
57 | |
---|
58 | ! Intermediate properties to store |
---|
59 | real(kind=jprb), intent(in), dimension(n_albedo_bands,nreg,nreg) :: ref_dif, tra_dif, tra_dir_dif, tra_dir_dir |
---|
60 | |
---|
61 | ! Outputs |
---|
62 | real(kind=jprb), intent(inout) :: albedo_diffuse_out, albedo_direct_out |
---|
63 | |
---|
64 | |
---|
65 | |
---|
66 | end subroutine calc_boundary_conditions_sw |
---|
67 | |
---|
68 | subroutine calc_boundary_conditions_lw |
---|
69 | |
---|
70 | end subroutine calc_boundary_conditions_lw |
---|
71 | |
---|
72 | |
---|
73 | end module radsurf_3d_vegetation |
---|