@@ -31,13 +31,13 @@ module aoa_tracers
31
31
integer , parameter :: ncnst= 3 ! number of constituents implemented by this module
32
32
33
33
! constituent names
34
- character (len= 6 ), parameter :: c_names(ncnst) = (/ ' AOAMF ' , ' HORZ ' , ' VERT ' / )
34
+ character (len= 4 ), parameter :: c_names(ncnst) = (/ ' AOA1 ' , ' HORZ' , ' VERT' / )
35
35
36
36
! constituent source/sink names
37
- character (len= 8 ), parameter :: src_names(ncnst) = (/ ' AOAMFSRC ' , ' HORZSRC ' , ' VERTSRC ' / )
37
+ character (len= 7 ), parameter :: src_names(ncnst) = (/ ' AOA1SRC ' , ' HORZSRC' , ' VERTSRC' / )
38
38
39
39
integer :: ifirst = - 1 ! global index of first constituent
40
- integer :: ixaoa = - 1 ! global index for AOAMFSRC tracer
40
+ integer :: ixaoa = - 1 ! global index for AOA1SRC tracer
41
41
integer :: ixht = - 1 ! global index for HORZ tracer
42
42
integer :: ixvt = - 1 ! global index for VERT tracer
43
43
@@ -132,12 +132,12 @@ subroutine aoa_tracers_register
132
132
if (.not. aoa_tracers_flag) return
133
133
134
134
call cnst_add(c_names(1 ), mwdry, cpair, 0._r8 , ixaoa, readiv= aoa_read_from_ic_file, &
135
- longname= ' mixing ratio LB tracer' )
135
+ longname= ' mixing ratio LB tracer' , cam_outfld = .false. )
136
136
137
137
call cnst_add(c_names(2 ), mwdry, cpair, 1._r8 , ixht, readiv= aoa_read_from_ic_file, &
138
- longname= ' horizontal tracer' )
138
+ longname= ' horizontal tracer' , cam_outfld = .false. )
139
139
call cnst_add(c_names(3 ), mwdry, cpair, 0._r8 , ixvt, readiv= aoa_read_from_ic_file, &
140
- longname= ' vertical tracer' )
140
+ longname= ' vertical tracer' , cam_outfld = .false. )
141
141
142
142
ifirst = ixaoa
143
143
@@ -324,6 +324,8 @@ subroutine aoa_tracers_timestep_tend(state, ptend, dt)
324
324
real (r8 ), parameter :: mmr0 = 1.0e-6_r8 ! initial lower boundary mmr
325
325
real (r8 ), parameter :: per_yr = 0.02_r8 ! fractional increase per year
326
326
327
+ real (r8 ) :: mmr_out(pcols,pver,ncnst)
328
+
327
329
!- -----------------------------------------------------------------
328
330
329
331
teul = .5_r8 * dt/ (86400._r8 * treldays) ! 1/2 for the semi-implicit scheme if dt=time step
@@ -345,7 +347,7 @@ subroutine aoa_tracers_timestep_tend(state, ptend, dt)
345
347
lchnk = state% lchnk
346
348
ncol = state% ncol
347
349
348
- ! AOAMF
350
+ ! AOA1
349
351
xmmr = mmr0* (1._r8 + per_yr* years)
350
352
ptend% q(1 :ncol,pver,ixaoa) = (xmmr - state% q(1 :ncol,pver,ixaoa)) / dt
351
353
@@ -371,6 +373,15 @@ subroutine aoa_tracers_timestep_tend(state, ptend, dt)
371
373
call outfld (src_names(2 ), ptend% q(:,:,ixht), pcols, lchnk)
372
374
call outfld (src_names(3 ), ptend% q(:,:,ixvt), pcols, lchnk)
373
375
376
+ ! output mixing ratios to history
377
+ mmr_out(:ncol,:,1 ) = state% q(:ncol,:,ixaoa) + dt* ptend% q(1 :ncol,:,ixaoa)
378
+ mmr_out(:ncol,:,2 ) = state% q(:ncol,:,ixht) + dt* ptend% q(1 :ncol,:,ixht)
379
+ mmr_out(:ncol,:,3 ) = state% q(:ncol,:,ixvt) + dt* ptend% q(1 :ncol,:,ixvt)
380
+
381
+ call outfld (c_names(1 ), mmr_out(:,:,1 ), pcols, lchnk)
382
+ call outfld (c_names(2 ), mmr_out(:,:,2 ), pcols, lchnk)
383
+ call outfld (c_names(3 ), mmr_out(:,:,3 ), pcols, lchnk)
384
+
374
385
end subroutine aoa_tracers_timestep_tend
375
386
376
387
! ===========================================================================
@@ -392,7 +403,7 @@ subroutine init_cnst_3d(m, latvals, lonvals, mask, q)
392
403
393
404
if (m == ixaoa) then
394
405
395
- ! AOAMF
406
+ ! AOA1
396
407
q(:,:) = 0.0_r8
397
408
398
409
else if (m == ixht) then
0 commit comments