1 | module comm_wrf |
---|
2 | |
---|
3 | !! |
---|
4 | !! This module is useful to output fields in WRF style |
---|
5 | !! |
---|
6 | !USE only for the mescoscale (comm_HR_SW, comm_HR_LW). OUTPUT |
---|
7 | REAL,SAVE,ALLOCATABLE :: comm_HR_SW(:,:) |
---|
8 | REAL,SAVE,ALLOCATABLE :: comm_HR_LW(:,:) |
---|
9 | REAL,SAVE,ALLOCATABLE :: comm_HR_DYN(:,:) |
---|
10 | REAL,SAVE,ALLOCATABLE :: comm_SWDOWNZ(:) |
---|
11 | REAL,SAVE,ALLOCATABLE :: comm_TAU_DUST(:) |
---|
12 | REAL,SAVE,ALLOCATABLE :: comm_RDUST(:,:) |
---|
13 | REAL,SAVE,ALLOCATABLE :: comm_QSURFDUST(:) |
---|
14 | REAL,SAVE,ALLOCATABLE :: comm_MTOT(:) |
---|
15 | REAL,SAVE,ALLOCATABLE :: comm_ICETOT(:) |
---|
16 | REAL,SAVE,ALLOCATABLE :: comm_VMR_ICE(:,:) |
---|
17 | REAL,SAVE,ALLOCATABLE :: comm_TAU_ICE(:) |
---|
18 | REAL,SAVE,ALLOCATABLE :: comm_RICE(:,:) |
---|
19 | REAL,SAVE,ALLOCATABLE :: comm_GEOP(:,:) |
---|
20 | REAL,SAVE,ALLOCATABLE :: comm_CLOUDFRAC(:,:) |
---|
21 | REAL,SAVE,ALLOCATABLE :: comm_TOTCLOUDFRAC(:) |
---|
22 | REAL,SAVE,ALLOCATABLE :: comm_RAIN(:,:) |
---|
23 | REAL,SAVE,ALLOCATABLE :: comm_SNOW(:,:) |
---|
24 | REAL,SAVE,ALLOCATABLE :: comm_ALBEQ(:) |
---|
25 | REAL,SAVE,ALLOCATABLE :: comm_FLUXTOP_DN(:) |
---|
26 | REAL,SAVE,ALLOCATABLE :: comm_FLUXABS_SW(:) |
---|
27 | REAL,SAVE,ALLOCATABLE :: comm_FLUXTOP_LW(:) |
---|
28 | REAL,SAVE,ALLOCATABLE :: comm_FLUXSURF_SW(:) |
---|
29 | REAL,SAVE,ALLOCATABLE :: comm_FLUXSURF_LW(:) |
---|
30 | REAL,SAVE,ALLOCATABLE :: comm_FLXGRD(:) |
---|
31 | REAL,SAVE,ALLOCATABLE :: comm_LSCEZ(:,:) |
---|
32 | REAL,SAVE,ALLOCATABLE :: comm_H2OICE_REFF(:,:) |
---|
33 | REAL,SAVE,ALLOCATABLE :: comm_LATENT_HF(:) |
---|
34 | REAL,SAVE,ALLOCATABLE :: comm_REEVAP(:) |
---|
35 | REAL,SAVE,ALLOCATABLE :: comm_SURFRAIN(:) |
---|
36 | |
---|
37 | contains |
---|
38 | |
---|
39 | subroutine allocate_comm_wrf(ngrid,nlayer) |
---|
40 | implicit none |
---|
41 | integer,intent(in) :: ngrid ! number of atmospheric columns |
---|
42 | integer,intent(in) :: nlayer ! number of atmospheric layers |
---|
43 | allocate(comm_HR_SW(ngrid,nlayer)) |
---|
44 | allocate(comm_HR_LW(ngrid,nlayer)) |
---|
45 | allocate(comm_HR_DYN(ngrid,nlayer)) |
---|
46 | allocate(comm_SWDOWNZ(ngrid)) |
---|
47 | allocate(comm_TAU_DUST(ngrid)) |
---|
48 | allocate(comm_RDUST(ngrid,nlayer)) |
---|
49 | allocate(comm_QSURFDUST(ngrid)) |
---|
50 | allocate(comm_MTOT(ngrid)) |
---|
51 | allocate(comm_ICETOT(ngrid)) |
---|
52 | allocate(comm_VMR_ICE(ngrid,nlayer)) |
---|
53 | allocate(comm_TAU_ICE(ngrid)) |
---|
54 | allocate(comm_RICE(ngrid,nlayer)) |
---|
55 | allocate(comm_GEOP(ngrid,nlayer)) |
---|
56 | allocate(comm_CLOUDFRAC(ngrid,nlayer)) |
---|
57 | allocate(comm_TOTCLOUDFRAC(ngrid)) |
---|
58 | allocate(comm_RAIN(ngrid,nlayer)) |
---|
59 | allocate(comm_SNOW(ngrid,nlayer)) |
---|
60 | allocate(comm_ALBEQ(ngrid)) |
---|
61 | allocate(comm_FLUXTOP_DN(ngrid)) |
---|
62 | allocate(comm_FLUXABS_SW(ngrid)) |
---|
63 | allocate(comm_FLUXTOP_LW(ngrid)) |
---|
64 | allocate(comm_FLUXSURF_SW(ngrid)) |
---|
65 | allocate(comm_FLUXSURF_LW(ngrid)) |
---|
66 | allocate(comm_FLXGRD(ngrid)) |
---|
67 | allocate(comm_LSCEZ(ngrid,nlayer)) |
---|
68 | allocate(comm_H2OICE_REFF(ngrid,nlayer)) |
---|
69 | allocate(comm_LATENT_HF(ngrid)) |
---|
70 | allocate(comm_REEVAP(ngrid)) |
---|
71 | allocate(comm_SURFRAIN(ngrid)) |
---|
72 | |
---|
73 | end subroutine allocate_comm_wrf |
---|
74 | |
---|
75 | subroutine deallocate_comm_wrf |
---|
76 | implicit none |
---|
77 | deallocate(comm_HR_SW) |
---|
78 | deallocate(comm_HR_LW) |
---|
79 | deallocate(comm_HR_DYN) |
---|
80 | deallocate(comm_SWDOWNZ) |
---|
81 | deallocate(comm_TAU_DUST) |
---|
82 | deallocate(comm_RDUST) |
---|
83 | deallocate(comm_QSURFDUST) |
---|
84 | deallocate(comm_MTOT) |
---|
85 | deallocate(comm_ICETOT) |
---|
86 | deallocate(comm_VMR_ICE) |
---|
87 | deallocate(comm_TAU_ICE) |
---|
88 | deallocate(comm_RICE) |
---|
89 | deallocate(comm_GEOP) |
---|
90 | deallocate(comm_CLOUDFRAC) |
---|
91 | deallocate(comm_TOTCLOUDFRAC) |
---|
92 | deallocate(comm_RAIN) |
---|
93 | deallocate(comm_SNOW) |
---|
94 | deallocate(comm_ALBEQ) |
---|
95 | deallocate(comm_FLUXTOP_DN) |
---|
96 | deallocate(comm_FLUXABS_SW) |
---|
97 | deallocate(comm_FLUXTOP_LW) |
---|
98 | deallocate(comm_FLUXSURF_SW) |
---|
99 | deallocate(comm_FLUXSURF_LW) |
---|
100 | deallocate(comm_FLXGRD) |
---|
101 | deallocate(comm_LSCEZ) |
---|
102 | deallocate(comm_H2OICE_REFF) |
---|
103 | deallocate(comm_LATENT_HF) |
---|
104 | deallocate(comm_REEVAP) |
---|
105 | deallocate(comm_SURFRAIN) |
---|
106 | |
---|
107 | end subroutine deallocate_comm_wrf |
---|
108 | |
---|
109 | end module comm_wrf |
---|
110 | |
---|