Changes in / [df96ea65:6d73c4b] in flexpart.git
- Location:
- src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/get_wetscav.f90
r79e0349 rc7e771d 298 298 else !parameterize cloudwater m2/m3 299 299 !ZHG updated parameterization of cloud water to better reproduce the values coming from ECMWF 300 ! sec test 301 ! cl=1E6*1E-7*prec(1)**0.3 !Sec GFS new 302 cl=1E6*2E-7*prec(1)**0.36 !Sec ECMWF new 303 ! cl=2E-7*prec(1)**0.36 !Andreas 304 ! cl=1.6E-6*prec(1)**0.36 !Henrik 300 cl=1.6E-6*prec(1)**0.36 305 301 endif 306 302 … … 322 318 if (dquer(ks).gt.0.) then 323 319 S_i= frac_act/cl 324 ! write(*,*) 'Si: ',S_i325 320 326 321 ! GAS … … 339 334 wetscav=incloud_ratio*S_i*(prec(1)/3.6E6) 340 335 else 341 !SEC wetscav fix 342 wetscav=incloud_ratio*S_i*(prec(1)/3.6E6) 343 ! wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)/clouds_h 336 wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)/clouds_h 344 337 endif 345 338 endif ! positive in-cloud scavenging parameters given in Species file -
src/par_mod.f90
r79e0349 rd944d39 148 148 ! ECMWF 149 149 ! integer,parameter :: nxmax=361,nymax=181,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=359 ! 1.0 degree 92 level 150 ! integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0 ! 1.0 degree 138 level 151 ! integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 1.0 degree 138 level 150 integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0 ! 1.0 degree 138 level 152 151 ! integer,parameter :: nxmax=721,nymax=361,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 0.5 degree 138 level 153 152 ! integer,parameter :: nxmax=181,nymax=91,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=0 ! CERA 2.0 degree 92 level 154 153 155 154 ! GFS 156 integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138 157 integer :: nxshift=0 155 ! integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0 158 156 159 157 -
src/readwind_gfs.f90
rdb91eb7 r6ecb30a 1 1 !********************************************************************** 2 2 ! Copyright 1998,1999,2000,2001,2002,2005,2007,2008,2009,2010 * 3 3 ! Andreas Stohl, Petra Seibert, A. Frank, Gerhard Wotawa, * … … 108 108 character(len=24) :: gribErrorMsg = 'Error reading grib file' 109 109 character(len=20) :: gribFunction = 'readwind_gfs' 110 character(len=20) :: shortname111 110 112 111 … … 121 120 122 121 !HSO 123 call grib_open_file(ifile,path(3)(1:length(3)) &122 5 call grib_open_file(ifile,path(3)(1:length(3)) & 124 123 //trim(wfname(indj)),'r',iret) 125 124 if (iret.ne.GRIB_SUCCESS) then … … 163 162 164 163 !read the grib2 identifiers 165 call grib_get_string(igrib,'shortName',shortname,iret)166 167 164 call grib_get_int(igrib,'discipline',discipl,iret) 168 165 ! call grib_check(iret,gribFunction,gribErrorMsg) … … 176 173 valSurf,iret) 177 174 ! call grib_check(iret,gribFunction,gribErrorMsg) 178 179 ! write(*,*) 'Field: ',ifield,parCat,parNum,typSurf,shortname 175 180 176 !convert to grib1 identifiers 181 177 isec1(6)=-1 … … 218 214 isec1(7)=105 ! indicatorOfTypeOfLevel 219 215 isec1(8)=10 220 elseif ((parCat.eq.1).and.(parNum.eq.22).and.(typSurf.eq.100)) then ! CLWMR Cloud Mixing Ratio [kg/kg]:221 isec1(6)=153 ! indicatorOfParameter222 isec1(7)=100 ! indicatorOfTypeOfLevel223 isec1(8)=valSurf/100 ! level, convert to hPa224 216 elseif ((parCat.eq.3).and.(parNum.eq.1).and.(typSurf.eq.101)) then ! SLP 225 217 isec1(6)=2 ! indicatorOfParameter … … 556 548 endif 557 549 endif 558 ! SEC & IP 12/2018 read GFS clouds559 if(isec1(6).eq.153) then !! CLWCR Cloud liquid water content [kg/kg]560 clwch(i,j,nlev_ec-k+2,n)=zsec4(nxfield*(ny-j-1)+i+1)561 readclouds=.true.562 sumclouds=.true.563 endif564 565 550 566 551 end do … … 690 675 call shift_field(vvh,nxfield,ny,nuvzmax,nuvz,1,1) 691 676 call shift_field(wwh,nxfield,ny,nwzmax,nwz,1,1) 692 ! IP & SEC adding GFS Clouds 20181205693 call shift_field(clwch,nxfield,ny,nuvzmax,nuvz,2,n)694 677 endif 695 678 -
src/verttransform_ecmwf.f90
r79e0349 r47f96e5 108 108 ! real :: rcw(0:nxmax-1,0:nymax-1) 109 109 ! real :: rpc(0:nxmax-1,0:nymax-1) 110 character(len=60) :: zhgpath='/xnilu_wrk/users/sec/kleinprojekte/hertlfit/' 111 character(len=60) :: fnameH,fnameI,fnameJ 110 ! character(len=60) :: zhgpath='/xnilu_wrk/flex_wrk/zhg/' 112 111 ! character(len=60) :: fnameA,fnameB,fnameC,fnameD,fnameE,fnameF,fnameG,fnameH 113 CHARACTER(LEN=3) :: aspec114 integer :: virr=0112 ! CHARACTER(LEN=3) :: aspec 113 ! integer :: virr=0 115 114 !real :: tot_cloud_h 116 115 !real :: dbg_height(nzmax) … … 733 732 !********* TEST ************'** 734 733 !teller(:)=0 735 virr=virr+1736 WRITE(aspec, '(i3.3)'), virr734 !virr=virr+1 735 !WRITE(aspec, '(i3.3)'), virr 737 736 738 737 !if (readclouds) then … … 771 770 !fnameF=trim(zhgpath)//trim(aspec)//'lsp.txt' 772 771 !fnameG=trim(zhgpath)//trim(aspec)//'convp.txt' 773 if (1.eq.2) then774 fnameH=trim(zhgpath)//trim(aspec)//'tcwc.txt'775 fnameI=trim(zhgpath)//trim(aspec)//'prec.txt'776 fnameJ=trim(zhgpath)//trim(aspec)//'cloudsh.txt'777 write(*,*) 'Writing data to file: ',fnameH778 772 !if (readclouds) then 779 773 !OPEN(UNIT=111, FILE=fnameA,FORM='FORMATTED',STATUS = 'UNKNOWN') … … 782 776 !OPEN(UNIT=114, FILE=fnameD,FORM='FORMATTED',STATUS = 'UNKNOWN') 783 777 !else 784 OPEN(UNIT=115, FILE=fnameH,FORM='FORMATTED',STATUS = 'UNKNOWN')785 OPEN(UNIT=116, FILE=fnameI,FORM='FORMATTED',STATUS = 'UNKNOWN')786 OPEN(UNIT=117, FILE=fnameJ,FORM='FORMATTED',STATUS = 'UNKNOWN')778 !OPEN(UNIT=115, FILE=fnameE,FORM='FORMATTED',STATUS = 'UNKNOWN') 779 !OPEN(UNIT=116, FILE=fnameF,FORM='FORMATTED',STATUS = 'UNKNOWN') 780 !OPEN(UNIT=117, FILE=fnameG,FORM='FORMATTED',STATUS = 'UNKNOWN') 787 781 !endif 788 782 ! 789 do ix=0,nxmin1783 !do ix=0,nxmin1 790 784 !if (readclouds) then 791 785 !write(111,*) (icloud_stats(ix,jy,1,n),jy=0,nymin1) … … 794 788 !write(114,*) (icloud_stats(ix,jy,4,n),jy=0,nymin1) 795 789 !else 796 write(115,*) (ctwc(ix,jy,n),jy=0,nymin1) 797 write(116,*) (lsprec(ix,jy,1,n)+convprec(ix,jy,1,n),jy=0,nymin1)798 write(117,*) (cloudsh(ix,jy,n),jy=0,nymin1) 790 !write(115,*) (cloudsh(ix,jy,n),jy=0,nymin1) !integer 791 !write(116,*) (lsprec(ix,jy,1,n),jy=0,nymin1) !7.83691406E-02 792 !write(117,*) (convprec(ix,jy,1,n),jy=0,nymin1) !5.38330078E-02 799 793 !endif 800 end do794 !end do 801 795 ! 802 796 !if (readclouds) then … … 806 800 !CLOSE(114) 807 801 !else 808 CLOSE(115) 809 CLOSE(116) 810 CLOSE(117) 811 endif 802 !CLOSE(115) 803 !CLOSE(116) 804 !CLOSE(117) 812 805 !endif 813 806 ! -
src/verttransform_gfs.f90
rdb91eb7 r6ecb30a 75 75 integer :: rain_cloud_above,kz_inv 76 76 real :: f_qvsat,pressure 77 real :: rh,lsp,c loudh_min,convp,prec77 real :: rh,lsp,convp 78 78 real :: rhoh(nuvzmax),pinmconv(nzmax) 79 79 real :: ew,pint,tv,tvold,pold,dz1,dz2,dz,ui,vi … … 224 224 tt(ix,jy,1,n)=tth(ix,jy,llev,n) 225 225 qv(ix,jy,1,n)=qvh(ix,jy,llev,n) 226 ! IP & SEC, 201812 add clouds227 if (readclouds) then228 clwc(ix,jy,1,n)=clwch(ix,jy,llev,n)229 endif230 226 pv(ix,jy,1,n)=pvh(ix,jy,llev) 231 227 rho(ix,jy,1,n)=rhoh(llev) … … 235 231 tt(ix,jy,nz,n)=tth(ix,jy,nuvz,n) 236 232 qv(ix,jy,nz,n)=qvh(ix,jy,nuvz,n) 237 ! IP & SEC, 201812 add clouds238 if (readclouds) then239 clwc(ix,jy,nz,n)=clwch(ix,jy,nuvz,n)240 endif241 233 pv(ix,jy,nz,n)=pvh(ix,jy,nuvz) 242 234 rho(ix,jy,nz,n)=rhoh(nuvz) … … 250 242 tt(ix,jy,iz,n)=tt(ix,jy,nz,n) 251 243 qv(ix,jy,iz,n)=qv(ix,jy,nz,n) 252 ! IP & SEC, 201812 add clouds253 if (readclouds) then254 clwc(ix,jy,iz,n)=clwc(ix,jy,nz,n)255 endif256 244 pv(ix,jy,iz,n)=pv(ix,jy,nz,n) 257 245 rho(ix,jy,iz,n)=rho(ix,jy,nz,n) … … 270 258 qv(ix,jy,iz,n)=(qvh(ix,jy,kz-1,n)*dz2 & 271 259 +qvh(ix,jy,kz,n)*dz1)/dz 272 ! IP & SEC, 201812 add clouds273 if (readclouds) then274 clwc(ix,jy,iz,n)=(clwch(ix,jy,kz-1,n)*dz2 &275 +clwch(ix,jy,kz,n)*dz1)/dz276 endif277 260 pv(ix,jy,iz,n)=(pvh(ix,jy,kz-1)*dz2+pvh(ix,jy,kz)*dz1)/dz 278 261 rho(ix,jy,iz,n)=(rhoh(kz-1)*dz2+rhoh(kz)*dz1)/dz … … 513 496 514 497 515 516 !***********************************************************************************517 ! IP & SEC, 201812 GFS clouds read518 if (readclouds) then519 ! The method is loops all grids vertically and constructs the 3D matrix for clouds520 ! Cloud top and cloud bottom gid cells are assigned as well as the total column521 ! cloud water. For precipitating grids, the type and whether it is in or below522 ! cloud scavenging are assigned with numbers 2-5 (following the old metod).523 ! Distinction is done for lsp and convp though they are treated the same in regards524 ! to scavenging. Also clouds that are not precipitating are defined which may be525 ! to include future cloud processing by non-precipitating-clouds.526 !***********************************************************************************527 write(*,*) 'Global NCEP fields: using cloud water'528 clw(:,:,:,n)=0.0529 ctwc(:,:,n)=0.0530 clouds(:,:,:,n)=0531 ! If water/ice are read separately into clwc and ciwc, store sum in clwc532 do jy=0,nymin1533 do ix=0,nxmin1534 lsp=lsprec(ix,jy,1,n)535 convp=convprec(ix,jy,1,n)536 prec=lsp+convp537 ! Find clouds in the vertical538 do kz=1, nz-1 !go from top to bottom539 if (clwc(ix,jy,kz,n).gt.0) then540 ! assuming rho is in kg/m3 and hz in m gives: kg/kg * kg/m3 *m3/kg /m = m2/m3541 clw(ix,jy,kz,n)=(clwc(ix,jy,kz,n)*rho(ix,jy,kz,n))*(height(kz+1)-height(kz))542 ctwc(ix,jy,n) = ctwc(ix,jy,n)+clw(ix,jy,kz,n)543 cloudh_min=min(height(kz+1),height(kz))544 endif545 end do546 547 ! If Precipitation. Define removal type in the vertical548 if ((lsp.gt.0.01).or.(convp.gt.0.01)) then ! cloud and precipitation549 550 do kz=nz,1,-1 !go Bottom up!551 if (clw(ix,jy,kz,n).gt. 0) then ! is in cloud552 cloudsh(ix,jy,n)=cloudsh(ix,jy,n)+height(kz)-height(kz-1)553 clouds(ix,jy,kz,n)=1 ! is a cloud554 if (lsp.ge.convp) then555 clouds(ix,jy,kz,n)=3 ! lsp in-cloud556 else557 clouds(ix,jy,kz,n)=2 ! convp in-cloud558 endif ! convective or large scale559 elseif((clw(ix,jy,kz,n).le.0) .and. (cloudh_min.ge.height(kz))) then ! is below cloud560 if (lsp.ge.convp) then561 clouds(ix,jy,kz,n)=5 ! lsp dominated washout562 else563 clouds(ix,jy,kz,n)=4 ! convp dominated washout564 endif ! convective or large scale565 endif566 567 if (height(kz).ge. 19000) then ! set a max height for removal568 clouds(ix,jy,kz,n)=0569 endif !clw>0570 end do !nz571 endif ! precipitation572 end do573 end do574 else575 write(*,*) 'Global NCEP fields: using cloud water from Parameterization'576 498 ! write (*,*) 'initializing clouds, n:',n,nymin1,nxmin1,nz 577 499 ! create a cloud and rainout/washout field, clouds occur where rh>80% … … 612 534 end do 613 535 end do 614 endif ! IP & SEC 201812, GFS clouds read615 536 616 537
Note: See TracChangeset
for help on using the changeset viewer.