File: C:\NOAA\NEMS_11731\src\atmos\gfs\phys\d3d_def.f
1 module d3d_def
2 use machine
3 implicit none
4
5 REAL(KIND=KIND_RAD) ,ALLOCATABLE :: DT3DT(:,:,:,:,:)
6 REAL(KIND=KIND_RAD) ,ALLOCATABLE :: DQ3DT(:,:,:,:,:)
7 REAL(KIND=KIND_RAD) ,ALLOCATABLE :: DU3DT(:,:,:,:,:)
8 REAL(KIND=KIND_RAD) ,ALLOCATABLE :: DV3DT(:,:,:,:,:)
9 REAL(KIND=KIND_RAD) ,ALLOCATABLE :: upd_mf(:,:,:,:)
10 &, dwn_mf(:,:,:,:)
11 &, det_mf(:,:,:,:)
12 &, dkh(:,:,:,:)
13 &, rnp(:,:,:,:)
14 REAL(KIND=KIND_RAD) ,ALLOCATABLE :: CLDCOV(:,:,:)
15
16 contains
17
18 subroutine d3d_init(ngptc,nblck,lonr,lats_node_r,levs,pl_coeff,
19 & ldiag3d,lggfs3d)
20 implicit none
21 integer ngptc,nblck,lonr,lats_node_r,levs,pl_coeff
22 logical ldiag3d, lggfs3d
23
24 if (ldiag3d) then
25 allocate (DT3DT(NGPTC,LEVS,6,NBLCK,lats_node_r))
26 allocate (DU3DT(NGPTC,LEVS,4,NBLCK,lats_node_r))
27 allocate (DV3DT(NGPTC,LEVS,4,NBLCK,lats_node_r))
28
29
30
31
32 endif
33 if (ldiag3d .or. lggfs3d) then
34 allocate (DQ3DT(NGPTC,LEVS,5+pl_coeff,NBLCK,lats_node_r))
35 allocate (CLDCOV(LEVS,LONR,lats_node_r))
36 allocate (upd_mf(NGPTC,LEVS,NBLCK,lats_node_r))
37 allocate (dwn_mf(NGPTC,LEVS,NBLCK,lats_node_r))
38 allocate (det_mf(NGPTC,LEVS,NBLCK,lats_node_r))
39
40
41
42
43
44
45 endif
46 if (lggfs3d) then
47 allocate (dkh(NGPTC,LEVS,NBLCK,lats_node_r))
48 allocate (rnp(NGPTC,LEVS,NBLCK,lats_node_r))
49
50
51
52 endif
53
54
55 end subroutine d3d_init
56
57 subroutine d3d_zero(ldiag3d,lggfs3d)
58 implicit none
59 logical ldiag3d, lggfs3d
60 real, parameter :: zero=0.0
61
62 if (ldiag3d) then
63 DT3DT = zero
64 DU3DT = zero
65 DV3DT = zero
66 endif
67 if (ldiag3d .or. lggfs3d) then
68 DQ3DT = zero
69 CLDCOV = zero
70 upd_mf = zero
71 dwn_mf = zero
72 det_mf = zero
73 endif
74 if (lggfs3d) then
75 dkh = zero
76 rnp = zero
77 endif
78
79 end subroutine d3d_zero
80 end module d3d_def
81