added README_changes.txt
[wrffire.git] / wrfv2_fire / chem / module_racm.F
blob2d8addbb019dfb803605c9f34e7a0f42493e722f
1       MODULE module_racm
2       USE module_data_racm
3       USE module_data_sorgam
5       CONTAINS
7       subroutine racm_driver(id,ktau,dtstep,config_flags,              &
8                gmt,julday,t_phy,moist,p8w,t8w,                         &
9                p_phy,chem,rho_phy,dz8w,z,z_at_w,vdrog3,         &
10                ph_macr,ph_o31d,ph_o33p,ph_no2,ph_no3o2,ph_no3o,ph_hno2,&
11                ph_hno3,ph_hno4,ph_h2o2,ph_ch2or,ph_ch2om,ph_ch3cho,    &
12                ph_ch3coch3,ph_ch3coc2h5,ph_hcocho,ph_ch3cocho,         &
13                ph_hcochest,ph_ch3o2h,ph_ch3coo2h,ph_ch3ono2,ph_hcochob,&
14                addt,addx,addc,etep,oltp,olip,cslp,limp,hc5p,hc8p,tolp, &
15                xylp,apip,isop,hc3p,ethp,o3p,tco3,mo2,o1d,olnn,rpho,xo2,&
16                ketp,olnd,                                              &
17                ids,ide, jds,jde, kds,kde,                              &
18                ims,ime, jms,jme, kms,kme,                              &
19                its,ite, jts,jte, kts,kte                               )
22   USE module_configure
23   USE module_state_description
24   USE module_model_constants
25    IMPLICIT NONE
27    INTEGER,      INTENT(IN   ) :: id,julday,                           &
28                                   ids,ide, jds,jde, kds,kde,           &
29                                   ims,ime, jms,jme, kms,kme,           &
30                                   its,ite, jts,jte, kts,kte
31    INTEGER,      INTENT(IN   ) ::                                      &
32                                   ktau
33       REAL,      INTENT(IN   ) ::                                      &
34                              dtstep,gmt
36 ! advected moisture variables
38    REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_moist ),            &
39          INTENT(IN ) ::                                   moist
41 !  advected chemical tracers
43    REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_chem ),             &
44          INTENT(INOUT ) ::                                chem
47 ! arrays that hold photolysis rates
49    REAL, DIMENSION( ims:ime, kms:kme, jms:jme ),                       &
50          INTENT(INOUT ) ::                                             &
51            ph_macr,ph_o31d,ph_o33p,ph_no2,ph_no3o2,ph_no3o,ph_hno2,    &
52            ph_hno3,ph_hno4,ph_h2o2,ph_ch2or,ph_ch2om,ph_ch3cho,        &
53            ph_ch3coch3,ph_ch3coc2h5,ph_hcocho,ph_ch3cocho,             &
54            ph_hcochest,ph_ch3o2h,ph_ch3coo2h,ph_ch3ono2,ph_hcochob
56 ! arrays that hold the radicals
58    REAL, DIMENSION( ims:ime, kms:kme, jms:jme ),                       &
59          INTENT(INOUT ) ::                                             &
60                addt,addx,addc,etep,oltp,olip,cslp,limp,hc5p,hc8p,tolp, &
61                xylp,apip,isop,hc3p,ethp,o3p,tco3,mo2,o1d,olnn,rpho,xo2,&
62                ketp,olnd
64 ! on input from met model 
66    REAL,  DIMENSION( ims:ime , kms:kme , jms:jme )         ,           &
67           INTENT(IN   ) ::                                             &
68                                                       t_phy,           &
69                                                       p_phy,           &
70                                                       dz8w,            &
71                                                       z    ,           &
72                                               t8w,p8w,z_at_w ,         &
73                                                     rho_phy
75 ! for interaction with aerosols (really is output)
77       real ,      INTENT(INOUT) ::                                     &
78                       vdrog3(ims:ime,kms:kme-0,jms:jme,ldrog)
79       TYPE(grid_config_rec_type),  INTENT(IN   )    :: config_flags
81 ! ..
82 ! .. Local Scalars ..
83       REAL ::  clwchem,  dt60, dtcmax, dtcmin, xtime
84       INTEGER :: i,j,k,iprt, jce, jcs, n, nr, ipr,jpr,nvr
85 ! ..
86 ! .. Local Arrays ..
87       REAL :: p(kts:kte-1), rh(kts:kte-1),       &
88         t(kts:kte-1), vcinp(nspec),wlc(kts:kte-1),p1,wvap
89         REAL*8 :: t_in,t_end, rj(nphot)
90       real :: PRDROG(ldrog)
91         REAL*8 :: ATOL,rtol,temp
92 !     real *8 :: saverad(its:ite,kts:kte,jts:jte,50)
93       real *8 :: rxylho,rtolho,rcslho,rcslno3,rhc8ho,roliho,rolino3,      &
94                  rolio3,roltho,roltno3,rolto3,rapiho,rapino3,rapio3,      &
95                  rlimho,rlimno3,rlimo3
96 !     EXTERNAL arr
97 !     REAL*8 :: arr
101       INTEGER :: ixhour,iaerosol_sorgam
102       real :: xhour,xmin,xtimin
103       real :: const2,tinv,pot,pt2
104       END SUBROUTINE racm_driver
109       END MODULE module_racm