-
Notifications
You must be signed in to change notification settings - Fork 0
/
My_Pollen_mod.f90
69 lines (61 loc) · 2.4 KB
/
My_Pollen_mod.f90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
!-----------------------------------------------------------------------!
! Empty Pollen rountines for "standrd" model compilation
!-----------------------------------------------------------------------!
! Birch pollen emission calculation based on
! M. Sofiev et al. 2006, doi:10.1007/s00484-006-0027-x
!
! Pollen emission based upon meteorology paparameters, and heatsum.
! Pollen particles are assumed of 22 um diameter and 800 kg/m3 density.
!-----------------------------------------------------------------------!
module Pollen_const_mod
use Config_module, only: USES
use Debug_module, only: DEBUG ! -> DEBUG%POLLEN
use ChemDims_mod, only: NSPEC_ADV
use CheckStop_mod, only: CheckStop
implicit none
public
real, parameter :: &
N_TOT(3)=1.0 ! avoid div0
contains
subroutine pollen_check(igrp,uconv_adv)
integer, intent(out), optional :: igrp
real, dimension(NSPEC_ADV), intent(inout), optional :: uconv_adv
logical,save :: first_call=.true.
if(present(igrp))igrp=-1
if(.not.first_call)return
first_call=.false.
call CheckStop(USES%POLLEN.or.DEBUG%POLLEN,&
"USES%POLLEN/DEBUG%POLLEN on model compiled without pollen modules")
endsubroutine pollen_check
endmodule Pollen_const_mod
!-----------------------------------------------------------------------!
! Empty Pollen rountines for "standrd" model compilation
!-----------------------------------------------------------------------!
! Birch pollen emission calculation based on
! M. Sofiev et al. 2006, doi:10.1007/s00484-006-0027-x
!
! Pollen emission based upon meteorology paparameters, and heatsum.
! Pollen particles are assumed of 22 um diameter and 800 kg/m3 density.
!-----------------------------------------------------------------------!
module Pollen_mod
use Pollen_const_mod
implicit none
public:: pollen_flux,pollen_dump,pollen_read,pollen_check
real,public,save, allocatable,dimension(:,:,:) :: &
heatsum, & ! heatsum, needs to be remembered for forecast
AreaPOLL, & ! emission of pollen
R ! pollen released so far
contains
subroutine pollen_flux(i,j,debug_flag)
implicit none
integer, intent(in) :: i,j ! coordinates of column
logical, intent(in) :: debug_flag
call pollen_check()
endsubroutine pollen_flux
subroutine pollen_read()
call pollen_check()
endsubroutine pollen_read
subroutine pollen_dump()
call pollen_check()
endsubroutine pollen_dump
endmodule Pollen_mod