1 module modal_aero_initialize_data_phys
3 !This module is created so that WRF Microphysics can be run without using WRFCHEM-Balwinder.Singh@pnnl.gov
7 public :: modal_aero_initialize_phys
12 !==============================================================
13 subroutine modal_aero_initialize_phys
17 !--------------------------------------------------------------
19 !--------------------------------------------------------------
20 ! pjj/cray - correct type
21 ! real n, pi, tmpsg(ntot_amode)
22 real pi, tmpsg(ntot_amode)
28 ! initialize needed variables in module modal_aero_data
35 ! setting portions of these arrays that should not be used
36 ! to -999888777 should cause a seg-fault if they get use
37 nspec_amode(:) = -999888777
38 lspectype_amode(:,:) = -999888777
39 lmassptr_amode(:,:) = -999888777
40 numptr_amode(:) = -999888777
41 lptr_dust_a_amode(:) = -999888777
42 lptr_nacl_a_amode(:) = -999888777
46 lspectype_amode(1,n) = 1 ! sulfate
47 lmassptr_amode(1,n) = 6 ! species 6 in state%q
48 numptr_amode(n) = 7 ! species 7 in state%q
52 lspectype_amode(1,n) = 1 ! sulfate
53 lmassptr_amode(1,n) = 8 ! species 8 in state%q
54 numptr_amode(n) = 9 ! species 9 in state%q
58 lspectype_amode(1,n) = 2 ! dust
59 lspectype_amode(2,n) = 3 ! seasalt
60 lmassptr_amode(1,n) = 10 ! species 10 in state%q
61 lmassptr_amode(2,n) = 11 ! species 11 in state%q
62 numptr_amode(n) = 12 ! species 12 in state%q
63 lptr_dust_a_amode(n) = lmassptr_amode(1,n)
64 lptr_nacl_a_amode(n) = lmassptr_amode(2,n)
66 lmassptrcw_amode = lmassptr_amode
67 numptrcw_amode = numptr_amode
70 alnsg_amode(:) = log( sigmag_amode(:) )
71 tmpsg = exp( 4.5 * (alnsg_amode(:)**2) )
73 voltonumb_amode( :) = 1.0/( (pi/6.0) * (dgnum_amode( :)**3) * tmpsg )
74 voltonumblo_amode(:) = 1.0/( (pi/6.0) * (dgnumlo_amode(:)**3) * tmpsg )
75 voltonumbhi_amode(:) = 1.0/( (pi/6.0) * (dgnumhi_amode(:)**3) * tmpsg )
77 specdens_amode(:) = 1.0e3 ! match precribe_aerosol_mixactivate, but units change
78 specmw_amode(:) = 132.0 ! match precribe_aerosol_mixactivate
79 spechygro(:) = 0.5 ! match precribe_aerosol_mixactivate
82 !For assisting decoupled microphysics (MP) CAM MAM simulations (simulations, where MAM package is coupled with
83 !radiation but decoupled with MP - i.e. MP runs with 'prescribed' aerosols) following variables are defined.
84 !Following variablesn will only be used in the CAMMGMP driver and its supporting modules (ndrop and microp_aero)
86 cnst_name_cw_mp(:) = cnst_name_cw(:)
88 msectional_mp = msectional
89 modeptr_accum_mp = modeptr_accum
90 modeptr_coarse_mp = modeptr_coarse
91 modeptr_aitken_mp = modeptr_aitken
92 ntot_amode_mp = ntot_amode
94 numptrcw_amode_mp(:) = numptrcw_amode(:)
95 lptr_dust_a_amode_mp(:) = lptr_dust_a_amode(:)
96 lptr_nacl_a_amode_mp(:) = lptr_nacl_a_amode(:)
97 numptr_amode_mp(:) = numptr_amode(:)
99 nspec_amode_mp(:) = nspec_amode(:)
102 lmassptr_amode_mp(:,:) = lmassptr_amode(:,:)
103 lspectype_amode_mp(:,:) = lspectype_amode(:,:)
104 lmassptrcw_amode_mp(:,:) = lmassptrcw_amode(:,:)
106 voltonumb_amode_mp(:) = voltonumb_amode(:)
107 alnsg_amode_mp(:) = alnsg_amode(:)
108 voltonumbhi_amode_mp(:) = voltonumbhi_amode(:)
109 voltonumblo_amode_mp(:) = voltonumblo_amode(:)
110 sigmag_amode_mp(:) = sigmag_amode(:)
111 dgnum_amode_mp(:) = dgnum_amode(:)
112 dgnumlo_amode_mp(:) = dgnumlo_amode(:)
113 dgnumhi_amode_mp(:) = dgnumhi_amode(:)
114 specdens_amode_mp(:) = specdens_amode(:)
115 specmw_amode_mp(:) = specmw_amode(:)
116 spechygro_mp(:) = spechygro(:)
120 end subroutine modal_aero_initialize_phys
122 !==============================================================
123 end module modal_aero_initialize_data_phys