photolysis_driver.F
References to this file elsewhere.
1 !WRF:MODEL_LAYER:CHEMISTRY
2 !
3 SUBROUTINE photolysis_driver (id,ktau,dtstep, config_flags,haveaer,&
4 gmt,julday,t_phy,moist,aerwrf,p8w,t8w,p_phy, &
5 chem,rho_phy,dz8w,xlat,xlong,z_at_w,gd_cloud,gd_cloud2, &
6 ph_macr,ph_o31d,ph_o33p,ph_no2,ph_no3o2,ph_no3o,ph_hno2, &
7 ph_hno3,ph_hno4,ph_h2o2,ph_ch2or,ph_ch2om,ph_ch3cho, &
8 ph_ch3coch3,ph_ch3coc2h5,ph_hcocho,ph_ch3cocho, &
9 ph_hcochest,ph_ch3o2h,ph_ch3coo2h,ph_ch3ono2,ph_hcochob, &
10 ph_n2o5,ph_o2, &
11 tauaer1,tauaer2,tauaer3,tauaer4, &
12 gaer1,gaer2,gaer3,gaer4, &
13 waer1,waer2,waer3,waer4, &
14 pm2_5_dry,pm2_5_water,uvrad, &
15 ids,ide, jds,jde, kds,kde, &
16 ims,ime, jms,jme, kms,kme, &
17 its,ite, jts,jte, kts,kte )
18
19 !------------------------------------------------------------------------
20 USE module_configure
21 USE module_state_description
22 USE module_model_constants
23 USE module_phot_mad
24 USE module_phot_fastj
25 INTEGER, INTENT(IN ) :: id,julday, &
26 ids,ide, jds,jde, kds,kde, &
27 ims,ime, jms,jme, kms,kme, &
28 its,ite, jts,jte, kts,kte
29 INTEGER, INTENT(IN ) :: &
30 ktau
31 REAL, INTENT(IN ) :: &
32 dtstep,gmt
33 !
34 ! advected moisture variables
35 !
36 REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_moist ), &
37 INTENT(IN ) :: moist
38 !
39 ! aerosol interaction
40 !
41 REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), &
42 INTENT(INOUT ) :: &
43 pm2_5_dry,pm2_5_water, aerwrf
44 !
45 ! arrays that hold the photolysis rates
46 !
47
48 REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), &
49 INTENT(INOUT ) :: &
50 ph_macr,ph_o31d,ph_o33p,ph_no2,ph_no3o2,ph_no3o,ph_hno2, &
51 ph_hno3,ph_hno4,ph_h2o2,ph_ch2or,ph_ch2om,ph_ch3cho, &
52 ph_ch3coch3,ph_ch3coc2h5,ph_hcocho,ph_ch3cocho, &
53 ph_hcochest,ph_ch3o2h,ph_ch3coo2h,ph_ch3ono2,ph_hcochob, &
54 ph_n2o5,ph_o2
55 REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), &
56 INTENT(INOUT ) :: &
57 gd_cloud,gd_cloud2
58 !
59 ! arrays that hold the aerosol optical properties
60 !
61 REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), &
62 INTENT(INOUT ) :: &
63 tauaer1,tauaer2,tauaer3,tauaer4, &
64 gaer1,gaer2,gaer3,gaer4, &
65 waer1,waer2,waer3,waer4
66 !
67 ! array that holds all advected chemical species
68 !
69 REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_chem ), &
70 INTENT(INOUT ) :: chem
71 !
72 ! on input from meteorological part of model
73 !
74 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , &
75 INTENT(IN ) :: &
76 t_phy, &
77 p_phy, &
78 dz8w, &
79 t8w,p8w,z_at_w , &
80 rho_phy
81 REAL, DIMENSION( ims:ime , jms:jme ) , &
82 INTENT(INOUT ) :: uvrad
83 REAL, DIMENSION( ims:ime , jms:jme ) , &
84 INTENT(IN ) :: &
85 xlat, &
86 xlong
87 TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags
88
89 LOGICAL, INTENT(IN) :: haveaer
90 !
91 !
92 ! LOCAL VAR
93
94
95 !-----------------------------------------------------------------
96
97 IF (config_flags%phot_opt .eq. 0) return
98 !
99 ! select photolysis option
100 !
101 chem_phot_select: SELECT CASE(config_flags%phot_opt)
102
103 CASE (PHOTMAD)
104 CALL wrf_debug(15,'calling madronich1_driver')
105 call madronich1_driver(id,ktau,dtstep,config_flags,haveaer, &
106 gmt,julday,t_phy,moist,aerwrf,p8w,t8w,p_phy, &
107 chem,rho_phy,dz8w,xlat,xlong,z_at_w,gd_cloud,gd_cloud2, &
108 ph_macr,ph_o31d,ph_o33p,ph_no2,ph_no3o2,ph_no3o,ph_hno2,&
109 ph_hno3,ph_hno4,ph_h2o2,ph_ch2or,ph_ch2om,ph_ch3cho, &
110 ph_ch3coch3,ph_ch3coc2h5,ph_hcocho,ph_ch3cocho, &
111 ph_hcochest,ph_ch3o2h,ph_ch3coo2h,ph_ch3ono2,ph_hcochob,&
112 pm2_5_dry,pm2_5_water,uvrad, &
113 ids,ide, jds,jde, kds,kde, &
114 ims,ime, jms,jme, kms,kme, &
115 its,ite, jts,jte, kts,kte )
116 CASE (PHOTFASTJ)
117 call wrf_debug(15,'calling fastj_driver')
118 call fastj_driver(id,ktau,dtstep,config_flags, &
119 gmt,julday,t_phy,moist,p8w,p_phy, &
120 chem,rho_phy,dz8w,xlat,xlong,z_at_w, &
121 ph_o2,ph_o31d,ph_o33p,ph_no2,ph_no3o2,ph_no3o,ph_hno2, &
122 ph_hno3,ph_hno4,ph_h2o2,ph_ch2or,ph_ch2om,ph_ch3cho, &
123 ph_ch3coch3,ph_ch3coc2h5,ph_hcocho,ph_ch3cocho, &
124 ph_hcochest,ph_ch3o2h,ph_ch3coo2h,ph_ch3ono2,ph_hcochob,&
125 ph_n2o5, &
126 tauaer1,tauaer2,tauaer3,tauaer4, &
127 gaer1,gaer2,gaer3,gaer4, &
128 waer1,waer2,waer3,waer4, &
129 ids,ide, jds,jde, kds,kde, &
130 ims,ime, jms,jme, kms,kme, &
131 its,ite, jts,jte, kts,kte )
132 CASE DEFAULT
133
134 END SELECT chem_phot_select
135
136 END SUBROUTINE photolysis_driver