40 integer,
allocatable :: aero_idx(:,:,:,:)
41 integer :: n_kap_max, n_siz_max, ncat_max
42 integer :: nasiz(3), nakap(3)
43 character(len=H_SHORT) :: attribute, catego, aunit
45 namelist / param_tracer_kajino13 / &
50 integer :: m, ierr, ik, ic, ia0, is0
52 if( io_l )
write(io_fid_log,*)
53 if( io_l )
write(io_fid_log,*)
'+++ READ NUMBER of TRACER for Aerosol' 55 ncat_max = max( ic_mix, ic_sea, ic_dus )
61 read(io_fid_conf,nml=param_tracer_kajino13,iostat=ierr)
64 if( io_l )
write(io_fid_log,*)
'*** Not found namelist. Default used.' 65 elseif( ierr > 0 )
then 66 write(*,*)
'xxx Not appropriate names in namelist PARAM_TRACER_KAJINO13, Check!' 70 if( io_l )
write(io_fid_log,nml=param_tracer_kajino13)
72 if( ae_ctg > ncat_max )
then 73 write(*,*)
'xxx AE_CTG should be smaller than', ncat_max+1,
'stop' 77 allocate( nsiz(ae_ctg) )
78 allocate( nkap(ae_ctg) )
80 nkap(1:ae_ctg) = nakap(1:ae_ctg)
81 nsiz(1:ae_ctg) = nasiz(1:ae_ctg)
83 if( maxval( nkap ) /= 1 .OR. minval( nkap ) /= 1 )
then 84 write(*,*)
'xxx NKAP(:) /= 1 is not supported now, Stop!' 99 qa_ae = qa_ae + gas_ctg
100 allocate( aq_ae_name(qa_ae) )
101 allocate( aq_ae_desc(qa_ae) )
102 allocate( aq_ae_unit(qa_ae) )
107 n_siz_max = max(n_siz_max, nsiz(ic))
108 n_kap_max = max(n_kap_max, nkap(ic))
111 allocate( aero_idx(n_atr,ae_ctg,n_kap_max,n_siz_max) )
119 aero_idx(ia0,ic,ik,is0) = m
130 ic = qa_ae-gas_ctg+ig_h2so4
131 write(aq_ae_unit(ic),
'(a)')
'kg/kg' 132 ic = qa_ae-gas_ctg+ig_cgas
133 write(aq_ae_unit(ic),
'(a)')
'kg/kg' 157 write(attribute,
'(a)')
"Number" 158 write(aunit,
'(a)')
"num/kg" 159 elseif( ia0 == 2 )
then 160 write(attribute,
'(a)')
"Section" 161 write(aunit,
'(a)')
"m2/kg" 162 elseif( ia0 == 3 )
then 163 write(attribute,
'(a)')
"Volume" 164 write(aunit,
'(a)')
"m3/kg" 165 elseif( ia0 == 4 )
then 166 write(attribute,
'(a)')
"Mass" 167 write(aunit,
'(a)')
"kg/kg" 168 elseif( ia0 == 5 )
then 169 write(attribute,
'(a)')
"kXm" 170 write(aunit,
'(a)')
"kg/kg" 172 if( ic == ic_mix )
then 173 write(catego,
'(a)')
"Sulf_" 174 elseif( ic == ic_sea )
then 175 write(catego,
'(a)')
"Salt_" 176 elseif( ic == ic_dus )
then 177 write(catego,
'(a)')
"Dust_" 179 write(aq_ae_unit(aero_idx(ia0,ic,ik,is0)),
'(a)') trim(aunit)
180 write(aq_ae_name(aero_idx(ia0,ic,ik,is0)),
'(a,a,i0)') trim(catego), trim(attribute), is0
181 write(aq_ae_desc(aero_idx(ia0,ic,ik,is0)),
'(a,a,a,i0)') trim(attribute),
' mixing radio of ', trim(catego), is0
186 ic = qa_ae-gas_ctg+ig_h2so4
187 write(aq_ae_name(ic),
'(a)')
'H2SO4_Gas' 188 ic = qa_ae-gas_ctg+ig_cgas
189 write(aq_ae_name(ic),
'(a)')
'Condensable_GAS' 191 ic = qa_ae-gas_ctg+ig_h2so4
192 write(aq_ae_desc(ic),
'(a)')
'Mixing ratio of H2SO4 Gas' 193 ic = qa_ae-gas_ctg+ig_cgas
194 write(aq_ae_desc(ic),
'(a)')
'Mixing ratio of Condensable GAS' subroutine, public prc_mpistop
Abort MPI.