-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrnload.F90
73 lines (56 loc) · 2.24 KB
/
rnload.F90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
!==============SUBROUTINE RNLOAD========================
subroutine rnload(sib)
use kinds
use sibtype
implicit none
!---------------------------------------------------------------
type(sib_t), intent(inout) :: sib
!---------------------------------------------------------------
!
!====================================================
!
! calculation of absorption of radiation by surface. Note that
! output from this calculation (radc3) only accounts for the
! absorption of incident longwave and shortwave fluxes. The
! total net radiation calculation is performed in subroutine
! netrad.
!
!====================================================
!
!+++++++++++++++++++++++++OUTPUT+++++++++++++++++++++
!
! RADN(2,3) INCIDENT RADIATION FLUXES (W M-2)
! RADC3(2) SUM OF ABSORBED RADIATIVE FLUXES (W M-2)
!
!+++++++++++++++++++++++++++++++++++++++++++++++++++
integer(kind=int_kind) :: iveg, iwave, irad
real(kind=dbl_kind) :: radn(2,2)
!-------------------------------------------------------------
! CALCULATION OF SOIL MOISTURE STRESS FACTOR.
! AVERAGE SOIL MOISTURE POTENTIAL IN ROOT ZONE (LAYER-2) USED AS
! SOURCE FOR TRANSPIRATION.
!
! RADN (F(IW,IMU,O)) : EQUATION (19-22) , SE-86
! RADC3 (FC,FGS) : EQUATION (21,22) , SE-86
!--------------------------------------------------------------
sib%diag%radc3(1) = 0.
sib%diag%radc3(2) = 0.
radn(1,1) = sib%prog%radvbc
radn(1,2) = sib%prog%radvdc
radn(2,1) = sib%prog%radnbc
radn(2,2) = sib%prog%radndc
do iveg=1,2
do iwave=1,2
do irad=1,2
sib%diag%radc3(iveg) = sib%diag%radc3(iveg) + &
sib%diag%radfac(iveg,iwave,irad) * &
radn(iwave,irad)
enddo
enddo
enddo
!...absorb downwelling radiation
sib%diag%radc3(1) = sib%diag%radc3(1) + sib%prog%dlwbot * &
sib%param%vcover * (1.- sib%diag%thermk)
sib%diag%radc3(2) = sib%diag%radc3(2) + sib%prog%dlwbot * &
(1.-sib%param%vcover * (1.-sib%diag%thermk))
end subroutine rnload