Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
flexpart
flexpart
Commits
79e0349a
Commit
79e0349a
authored
Dec 05, 2018
by
Sabine
Browse files
Doing the fit for scavenging when using metfields with no clouds
parent
2bfec12f
Changes
3
Show whitespace changes
Inline
Side-by-side
src/get_wetscav.f90
View file @
79e0349a
...
...
@@ -297,7 +297,11 @@ subroutine get_wetscav(itime,ltsample,loutnext,jpart,ks,grfraction,inc_count,blc
cl
=
ctwc
(
ix
,
jy
,
n
)
*
(
grfraction
(
1
)/
cc
)
else
!parameterize cloudwater m2/m3
!ZHG updated parameterization of cloud water to better reproduce the values coming from ECMWF
cl
=
1.6E-6
*
prec
(
1
)
**
0.36
! sec test
! cl=1E6*1E-7*prec(1)**0.3 !Sec GFS new
cl
=
1E6
*
2E-7
*
prec
(
1
)
**
0.36
!Sec ECMWF new
! cl=2E-7*prec(1)**0.36 !Andreas
! cl=1.6E-6*prec(1)**0.36 !Henrik
endif
!ZHG: Calculate the partition between liquid and water phase water.
...
...
@@ -317,6 +321,7 @@ subroutine get_wetscav(itime,ltsample,loutnext,jpart,ks,grfraction,inc_count,blc
!********
if
(
dquer
(
ks
)
.gt.
0.
)
then
S_i
=
frac_act
/
cl
! write(*,*) 'Si: ',S_i
! GAS
!****
...
...
@@ -333,7 +338,9 @@ subroutine get_wetscav(itime,ltsample,loutnext,jpart,ks,grfraction,inc_count,blc
if
((
readclouds
.and.
ngrid
.eq.
0
)
.or.
(
readclouds_this_nest
.and.
ngrid
.gt.
0
))
then
wetscav
=
incloud_ratio
*
S_i
*
(
prec
(
1
)/
3.6E6
)
else
wetscav
=
incloud_ratio
*
S_i
*
(
prec
(
1
)/
3.6E6
)/
clouds_h
!SEC wetscav fix
wetscav
=
incloud_ratio
*
S_i
*
(
prec
(
1
)/
3.6E6
)
! wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)/clouds_h
endif
endif
! positive in-cloud scavenging parameters given in Species file
endif
!incloud
...
...
src/par_mod.f90
View file @
79e0349a
...
...
@@ -147,12 +147,12 @@ module par_mod
! ECMWF
! integer,parameter :: nxmax=361,nymax=181,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=359 ! 1.0 degree 92 level
integer
,
parameter
::
nxmax
=
361
,
nymax
=
181
,
nuvzmax
=
138
,
nwzmax
=
138
,
nzmax
=
138
,
nxshift
=
359
! 1.0 degree 138 level
!
integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 1.0 degree 138 level
! integer,parameter :: nxmax=721,nymax=361,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 0.5 degree 138 level
! integer,parameter :: nxmax=181,nymax=91,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=0 ! CERA 2.0 degree 92 level
! GFS
!
integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0
integer
,
parameter
::
nxmax
=
361
,
nymax
=
181
,
nuvzmax
=
138
,
nwzmax
=
138
,
nzmax
=
138
,
nxshift
=
0
!*********************************************
...
...
src/verttransform_ecmwf.f90
View file @
79e0349a
...
...
@@ -107,10 +107,11 @@ subroutine verttransform_ecmwf(n,uuh,vvh,wwh,pvh)
!ZHG 2015 temporary variables for testing
! real :: rcw(0:nxmax-1,0:nymax-1)
! real :: rpc(0:nxmax-1,0:nymax-1)
! character(len=60) :: zhgpath='/xnilu_wrk/flex_wrk/zhg/'
character
(
len
=
60
)
::
zhgpath
=
'/xnilu_wrk/users/sec/kleinprojekte/hertlfit/'
character
(
len
=
60
)
::
fnameH
,
fnameI
,
fnameJ
! character(len=60) :: fnameA,fnameB,fnameC,fnameD,fnameE,fnameF,fnameG,fnameH
!
CHARACTER(LEN=3) :: aspec
!
integer :: virr=0
CHARACTER
(
LEN
=
3
)
::
aspec
integer
::
virr
=
0
!real :: tot_cloud_h
!real :: dbg_height(nzmax)
!ZHG
...
...
@@ -731,8 +732,8 @@ subroutine verttransform_ecmwf(n,uuh,vvh,wwh,pvh)
! WRITE OUT SOME TEST VARIABLES
!********* TEST ************'**
!teller(:)=0
!
virr=virr+1
!
WRITE(aspec, '(i3.3)'), virr
virr
=
virr
+1
WRITE
(
aspec
,
'(i3.3)'
),
virr
!if (readclouds) then
!fnameH=trim(zhgpath)//trim(aspec)//'Vertical_placement.txt'
...
...
@@ -769,29 +770,34 @@ subroutine verttransform_ecmwf(n,uuh,vvh,wwh,pvh)
!fnameE=trim(zhgpath)//trim(aspec)//'old_cloudV.txt'
!fnameF=trim(zhgpath)//trim(aspec)//'lsp.txt'
!fnameG=trim(zhgpath)//trim(aspec)//'convp.txt'
if
(
1.
eq
.2
)
then
fnameH
=
trim
(
zhgpath
)//
trim
(
aspec
)//
'tcwc.txt'
fnameI
=
trim
(
zhgpath
)//
trim
(
aspec
)//
'prec.txt'
fnameJ
=
trim
(
zhgpath
)//
trim
(
aspec
)//
'cloudsh.txt'
write
(
*
,
*
)
'Writing data to file: '
,
fnameH
!if (readclouds) then
!OPEN(UNIT=111, FILE=fnameA,FORM='FORMATTED',STATUS = 'UNKNOWN')
!OPEN(UNIT=112, FILE=fnameB,FORM='FORMATTED',STATUS = 'UNKNOWN')
!OPEN(UNIT=113, FILE=fnameC,FORM='FORMATTED',STATUS = 'UNKNOWN')
!OPEN(UNIT=114, FILE=fnameD,FORM='FORMATTED',STATUS = 'UNKNOWN')
!else
!
OPEN(UNIT=115, FILE=fname
E
,FORM='FORMATTED',STATUS = 'UNKNOWN')
!
OPEN(UNIT=116, FILE=fname
F
,FORM='FORMATTED',STATUS = 'UNKNOWN')
!
OPEN(UNIT=117, FILE=fname
G
,FORM='FORMATTED',STATUS = 'UNKNOWN')
OPEN
(
UNIT
=
115
,
FILE
=
fname
H
,
FORM
=
'FORMATTED'
,
STATUS
=
'UNKNOWN'
)
OPEN
(
UNIT
=
116
,
FILE
=
fname
I
,
FORM
=
'FORMATTED'
,
STATUS
=
'UNKNOWN'
)
OPEN
(
UNIT
=
117
,
FILE
=
fname
J
,
FORM
=
'FORMATTED'
,
STATUS
=
'UNKNOWN'
)
!endif
!
!
do ix=0,nxmin1
do
ix
=
0
,
nxmin1
!if (readclouds) then
!write(111,*) (icloud_stats(ix,jy,1,n),jy=0,nymin1)
!write(112,*) (icloud_stats(ix,jy,2,n),jy=0,nymin1)
!write(113,*) (icloud_stats(ix,jy,3,n),jy=0,nymin1)
!write(114,*) (icloud_stats(ix,jy,4,n),jy=0,nymin1)
!else
!
write(115,*) (c
loudsh
(ix,jy,n),jy=0,nymin1)
!integer
!
write(116,*) (lsprec(ix,jy,1,n)
,jy=0,nymin1) !7.83691406E-02
!
write(117,*) (c
onvprec
(ix,jy,
1,
n),jy=0,nymin1)
!5.38330078E-02
write
(
115
,
*
)
(
c
twc
(
ix
,
jy
,
n
),
jy
=
0
,
nymin1
)
write
(
116
,
*
)
(
lsprec
(
ix
,
jy
,
1
,
n
)
+
convprec
(
ix
,
jy
,
1
,
n
),
jy
=
0
,
nymin1
)
write
(
117
,
*
)
(
c
loudsh
(
ix
,
jy
,
n
),
jy
=
0
,
nymin1
)
!endif
!
end do
end
do
!
!if (readclouds) then
!CLOSE(111)
...
...
@@ -799,9 +805,10 @@ subroutine verttransform_ecmwf(n,uuh,vvh,wwh,pvh)
!CLOSE(113)
!CLOSE(114)
!else
!CLOSE(115)
!CLOSE(116)
!CLOSE(117)
CLOSE
(
115
)
CLOSE
(
116
)
CLOSE
(
117
)
endif
!endif
!
!END ********* TEST *************** END
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment