[1833] | 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(:) |
---|
[2865] | 22 | REAL,SAVE,ALLOCATABLE :: comm_RH(:,:) |
---|
| 23 | REAL,SAVE,ALLOCATABLE :: comm_DQICE(:,:) |
---|
| 24 | REAL,SAVE,ALLOCATABLE :: comm_DQVAP(:,:) |
---|
[1833] | 25 | REAL,SAVE,ALLOCATABLE :: comm_ALBEQ(:) |
---|
| 26 | REAL,SAVE,ALLOCATABLE :: comm_FLUXTOP_DN(:) |
---|
| 27 | REAL,SAVE,ALLOCATABLE :: comm_FLUXABS_SW(:) |
---|
| 28 | REAL,SAVE,ALLOCATABLE :: comm_FLUXTOP_LW(:) |
---|
| 29 | REAL,SAVE,ALLOCATABLE :: comm_FLUXSURF_SW(:) |
---|
| 30 | REAL,SAVE,ALLOCATABLE :: comm_FLUXSURF_LW(:) |
---|
| 31 | REAL,SAVE,ALLOCATABLE :: comm_FLXGRD(:) |
---|
[2865] | 32 | REAL,SAVE,ALLOCATABLE :: comm_DTRAIN(:,:) |
---|
| 33 | REAL,SAVE,ALLOCATABLE :: comm_DTLSC(:,:) |
---|
[1833] | 34 | REAL,SAVE,ALLOCATABLE :: comm_H2OICE_REFF(:,:) |
---|
| 35 | REAL,SAVE,ALLOCATABLE :: comm_LATENT_HF(:) |
---|
[2019] | 36 | REAL,SAVE,ALLOCATABLE :: comm_REEVAP(:) |
---|
| 37 | REAL,SAVE,ALLOCATABLE :: comm_SURFRAIN(:) |
---|
[1833] | 38 | |
---|
| 39 | contains |
---|
| 40 | |
---|
| 41 | subroutine allocate_comm_wrf(ngrid,nlayer) |
---|
| 42 | implicit none |
---|
| 43 | integer,intent(in) :: ngrid ! number of atmospheric columns |
---|
| 44 | integer,intent(in) :: nlayer ! number of atmospheric layers |
---|
| 45 | allocate(comm_HR_SW(ngrid,nlayer)) |
---|
| 46 | allocate(comm_HR_LW(ngrid,nlayer)) |
---|
| 47 | allocate(comm_HR_DYN(ngrid,nlayer)) |
---|
| 48 | allocate(comm_SWDOWNZ(ngrid)) |
---|
| 49 | allocate(comm_TAU_DUST(ngrid)) |
---|
| 50 | allocate(comm_RDUST(ngrid,nlayer)) |
---|
| 51 | allocate(comm_QSURFDUST(ngrid)) |
---|
| 52 | allocate(comm_MTOT(ngrid)) |
---|
| 53 | allocate(comm_ICETOT(ngrid)) |
---|
| 54 | allocate(comm_VMR_ICE(ngrid,nlayer)) |
---|
| 55 | allocate(comm_TAU_ICE(ngrid)) |
---|
| 56 | allocate(comm_RICE(ngrid,nlayer)) |
---|
| 57 | allocate(comm_GEOP(ngrid,nlayer)) |
---|
| 58 | allocate(comm_CLOUDFRAC(ngrid,nlayer)) |
---|
| 59 | allocate(comm_TOTCLOUDFRAC(ngrid)) |
---|
[2865] | 60 | allocate(comm_RH(ngrid,nlayer)) |
---|
| 61 | allocate(comm_DQICE(ngrid,nlayer)) |
---|
| 62 | allocate(comm_DQVAP(ngrid,nlayer)) |
---|
[1833] | 63 | allocate(comm_ALBEQ(ngrid)) |
---|
| 64 | allocate(comm_FLUXTOP_DN(ngrid)) |
---|
| 65 | allocate(comm_FLUXABS_SW(ngrid)) |
---|
| 66 | allocate(comm_FLUXTOP_LW(ngrid)) |
---|
| 67 | allocate(comm_FLUXSURF_SW(ngrid)) |
---|
| 68 | allocate(comm_FLUXSURF_LW(ngrid)) |
---|
| 69 | allocate(comm_FLXGRD(ngrid)) |
---|
[2865] | 70 | allocate(comm_DTRAIN(ngrid,nlayer)) |
---|
| 71 | allocate(comm_DTLSC(ngrid,nlayer)) |
---|
[1833] | 72 | allocate(comm_H2OICE_REFF(ngrid,nlayer)) |
---|
| 73 | allocate(comm_LATENT_HF(ngrid)) |
---|
[2019] | 74 | allocate(comm_REEVAP(ngrid)) |
---|
[2025] | 75 | allocate(comm_SURFRAIN(ngrid)) |
---|
[1833] | 76 | |
---|
| 77 | end subroutine allocate_comm_wrf |
---|
| 78 | |
---|
| 79 | subroutine deallocate_comm_wrf |
---|
| 80 | implicit none |
---|
| 81 | deallocate(comm_HR_SW) |
---|
| 82 | deallocate(comm_HR_LW) |
---|
| 83 | deallocate(comm_HR_DYN) |
---|
| 84 | deallocate(comm_SWDOWNZ) |
---|
| 85 | deallocate(comm_TAU_DUST) |
---|
| 86 | deallocate(comm_RDUST) |
---|
| 87 | deallocate(comm_QSURFDUST) |
---|
| 88 | deallocate(comm_MTOT) |
---|
| 89 | deallocate(comm_ICETOT) |
---|
| 90 | deallocate(comm_VMR_ICE) |
---|
| 91 | deallocate(comm_TAU_ICE) |
---|
| 92 | deallocate(comm_RICE) |
---|
| 93 | deallocate(comm_GEOP) |
---|
| 94 | deallocate(comm_CLOUDFRAC) |
---|
| 95 | deallocate(comm_TOTCLOUDFRAC) |
---|
[2865] | 96 | deallocate(comm_RH) |
---|
| 97 | deallocate(comm_DQICE) |
---|
| 98 | deallocate(comm_DQVAP) |
---|
[1833] | 99 | deallocate(comm_ALBEQ) |
---|
| 100 | deallocate(comm_FLUXTOP_DN) |
---|
| 101 | deallocate(comm_FLUXABS_SW) |
---|
| 102 | deallocate(comm_FLUXTOP_LW) |
---|
| 103 | deallocate(comm_FLUXSURF_SW) |
---|
| 104 | deallocate(comm_FLUXSURF_LW) |
---|
| 105 | deallocate(comm_FLXGRD) |
---|
[2865] | 106 | deallocate(comm_DTRAIN) |
---|
| 107 | deallocate(comm_DTLSC) |
---|
[1833] | 108 | deallocate(comm_H2OICE_REFF) |
---|
| 109 | deallocate(comm_LATENT_HF) |
---|
[2019] | 110 | deallocate(comm_REEVAP) |
---|
| 111 | deallocate(comm_SURFRAIN) |
---|
[1833] | 112 | |
---|
| 113 | end subroutine deallocate_comm_wrf |
---|
| 114 | |
---|
| 115 | end module comm_wrf |
---|
| 116 | |
---|