14 subroutine m_micro_post_run( &
15 im, levs, fprcp, mg3_as_mg2, ncpr, ncps, ncgl, qrn, qsnw, qgl, &
16 gq0_ice, gq0_rain, gq0_snow, gq0_graupel, gq0_rain_nc, gq0_snow_nc, &
17 gq0_graupel_nc, ice, snow, graupel, dtp, errmsg, errflg)
22 integer,
intent(in) :: im, levs, fprcp
23 logical,
intent(in) :: mg3_as_mg2
25 real(kind=kind_phys),
intent(in ),
optional :: ncpr(:,:)
26 real(kind=kind_phys),
intent(in ),
optional :: ncps(:,:)
27 real(kind=kind_phys),
intent(in ),
optional :: ncgl(:,:)
28 real(kind=kind_phys),
intent(inout),
optional :: qrn(:,:)
29 real(kind=kind_phys),
intent(inout),
optional :: qsnw(:,:)
30 real(kind=kind_phys),
intent(inout),
optional :: qgl(:,:)
31 real(kind=kind_phys),
intent(in ) :: gq0_ice(:,:)
32 real(kind=kind_phys),
intent(out ) :: gq0_rain(:,:)
33 real(kind=kind_phys),
intent(out ) :: gq0_snow(:,:)
34 real(kind=kind_phys),
intent(out ) :: gq0_graupel(:,:)
35 real(kind=kind_phys),
intent(out ) :: gq0_rain_nc(:,:)
36 real(kind=kind_phys),
intent(out ) :: gq0_snow_nc(:,:)
37 real(kind=kind_phys),
intent(out ) :: gq0_graupel_nc(:,:)
38 real(kind=kind_phys),
intent( out) :: ice(:)
39 real(kind=kind_phys),
intent( out) :: snow(:)
40 real(kind=kind_phys),
intent( out) :: graupel(:)
41 real(kind=kind_phys),
intent(in ) :: dtp
43 character(len=*),
intent(out) :: errmsg
44 integer,
intent(out) :: errflg
47 real(kind=kind_phys),
parameter :: qsmall = 1.0d-20
48 real(kind=kind_phys),
parameter :: con_p001 = 0.001d0
49 real(kind=kind_phys),
parameter :: con_day = 86400.0d0
51 real(kind=kind_phys) :: tem
79 tem = dtp * con_p001 / con_day
80 if (abs(fprcp) == 1 .or. mg3_as_mg2)
then
83 if (abs(qrn(i,k)) < qsmall) qrn(i,k) = 0.0
84 if (abs(qsnw(i,k)) < qsmall) qsnw(i,k) = 0.0
85 gq0_rain(i,k) = qrn(i,k)
86 gq0_snow(i,k) = qsnw(i,k)
87 gq0_rain_nc(i,k) = ncpr(i,k)
88 gq0_snow_nc(i,k) = ncps(i,k)
92 ice(i) = tem * gq0_ice(i,1)
93 snow(i) = tem * qsnw(i,1)
95 elseif (fprcp > 1)
then
98 if (abs(qrn(i,k)) < qsmall) qrn(i,k) = 0.0
99 if (abs(qsnw(i,k)) < qsmall) qsnw(i,k) = 0.0
100 if (abs(qgl(i,k)) < qsmall) qgl(i,k) = 0.0
101 gq0_rain(i,k) = qrn(i,k)
102 gq0_snow(i,k) = qsnw(i,k)
103 gq0_graupel(i,k) = qgl(i,k)
104 gq0_rain_nc(i,k) = ncpr(i,k)
105 gq0_snow_nc(i,k) = ncps(i,k)
106 gq0_graupel_nc(i,k) = ncgl(i,k)
110 ice(i) = tem * gq0_ice(i,1)
111 snow(i) = tem * qsnw(i,1)
112 graupel(i) = tem * qgl(i,1)