11 subroutine gwdc_pre_run ( &
12 & im, cgwf, dx, work1, work2, dlength, cldf, &
13 & levs, kbot, ktop, dtp, gt0, gt0_init, del, cumabs, &
16 use machine,
only : kind_phys
19 integer,
intent(in) :: im, levs
20 integer,
intent(in) :: kbot(:), ktop(:)
21 real(kind=kind_phys),
intent(in) :: dtp
22 real(kind=kind_phys),
intent(in) :: cgwf(:)
23 real(kind=kind_phys),
intent(in) :: dx(:), work1(:), work2(:)
24 real(kind=kind_phys),
intent(in) :: &
25 & gt0(:,:), gt0_init(:,:), del(:,:)
27 real(kind=kind_phys),
intent(out) :: &
28 & dlength(:), cldf(:), cumabs(:)
30 character(len=*),
intent(out) :: errmsg
31 integer,
intent(out) :: errflg
34 real(kind=kind_phys) :: tem1, tem2
35 real(kind=kind_phys) :: work3(im)
44 dlength(i) = sqrt( tem1*tem1+tem2*tem2 )
45 cldf(i) = cgwf(1)*work1(i) + cgwf(2)*work2(i)
55 if (k >= kbot(i) .and. k <= ktop(i))
then
57 & = cumabs(i) + (gt0(i,k) - gt0_init(i,k)) * del(i,k)
58 work3(i) = work3(i) + del(i,k)
63 if (work3(i) > 0.0) cumabs(i) = cumabs(i) / (dtp*work3(i))