1 SUBROUTINE microinit(imp_physics)
30 use params_mod,
only: tfrz, pi
31 use cmassi_mod,
only: dmrmax, t_ice, nlimax, flarge2, xmrmax, &
32 mdrmax, mdrmin, trad_ice, massi, &
33 rqr_drmin, n0r0, rqr_drmax, cn0r0, &
34 cn0r_dmrmin, cn0r_dmrmax, dmrmin
35 use gridspec_mod,
only : gridtype
36 use rhgrd_mod,
only: rhgrd
37 use ctlblk_mod,
only: me
41 REAL,
PARAMETER :: RHOL=1000.
44 integer,
intent(in):: imp_physics
45 real,
allocatable:: MASSR(:)
52 if(imp_physics==5 .or. imp_physics==15)
then
57 else if(imp_physics==85)
then
62 else if(imp_physics==95)
then
65 if(gridtype==
"B")
then
76 if (dmrmax<=0.45e-3)
then
77 filename =
"nam_micro_lookup.dat"
79 filename =
"hires_micro_lookup.dat"
83 filename =
"eta_micro_lookup.dat"
89 allocate(massr(mdrmin:mdrmax))
90 trad_ice=0.5*t_ice+tfrz
92 OPEN (unit=1,file=filename,convert=
'big_endian',form=
"UNFORMATTED")
102 rqr_drmin=n0r0*massr(mdrmin)
103 rqr_drmax=n0r0*massr(mdrmax)
106 cn0r0=1.e6/sqrt(sqrt(c_n0r0))
107 cn0r_dmrmin=1./(pi*rhol*dmrmin*dmrmin*dmrmin*dmrmin)
108 cn0r_dmrmax=1./(pi*rhol*dmrmax*dmrmax*dmrmax*dmrmax)
109 if(me==0)print *,
'MICROINIT: MDRmin, MASSR(MDRmin)=',mdrmin,massr(mdrmin)
110 if(me==0)print *,
'MICROINIT: MDRmax, MASSR(MDRmax)=',mdrmax,massr(mdrmax)
subroutine gpvs
gpvs computes saturation vapor pressure table as a function of temperature for the table lookup funct...