Changeset 6ecb30a in flexpart.git for src/richardson.f90
- Timestamp:
- Aug 17, 2017, 4:39:17 PM (7 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- 5b34509
- Parents:
- 61e07ba
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/richardson.f90
rc2162ce r6ecb30a 21 21 22 22 subroutine richardson(psurf,ust,ttlev,qvlev,ulev,vlev,nuvz, & 23 akz,bkz,hf,tt2,td2,h,wst,hmixplus )23 akz,bkz,hf,tt2,td2,h,wst,hmixplus,metdata_format) 24 24 ! i i i i i i i 25 25 ! i i i i i o o o … … 41 41 ! Meteor. 81, 245-269. * 42 42 ! * 43 !**************************************************************************** 44 ! * 43 45 ! Update: 1999-02-01 by G. Wotawa * 44 46 ! * … … 46 48 ! instead of first model level. * 47 49 ! New input variables tt2, td2 introduced. * 50 ! * 51 ! CHANGE: 17/11/2005 Caroline Forster NCEP GFS version * 52 ! * 53 ! Unified ECMWF and GFS builds * 54 ! Marian Harustak, 12.5.2017 * 55 ! - Merged richardson and richardson_gfs into one routine using * 56 ! if-then for meteo-type dependent code * 48 57 ! * 49 58 !**************************************************************************** … … 55 64 ! tv virtual temperature * 56 65 ! wst convective velocity scale * 66 ! metdata_format format of metdata (ecmwf/gfs) * 57 67 ! * 58 68 ! Constants: * … … 62 72 63 73 use par_mod 74 use class_gribfile 64 75 65 76 implicit none 66 77 67 integer :: i,k,nuvz,iter 78 integer :: metdata_format 79 integer :: i,k,nuvz,iter,llev,loop_start 68 80 real :: tv,tvold,zref,z,zold,pint,pold,theta,thetaref,ri 69 81 real :: akz(nuvz),bkz(nuvz),ulev(nuvz),vlev(nuvz),hf,wst,tt2,td2,ew … … 77 89 iter=0 78 90 91 if (metdata_format.eq.GRIBFILE_CENTRE_NCEP) then 92 ! NCEP version: find first model level above ground 93 !************************************************** 94 95 llev = 0 96 do i=1,nuvz 97 if (psurf.lt.akz(i)) llev=i 98 end do 99 llev = llev+1 100 ! sec llev should not be 1! 101 if (llev.eq.1) llev = 2 102 if (llev.gt.nuvz) llev = nuvz-1 103 ! NCEP version 104 end if 105 106 79 107 ! Compute virtual temperature and virtual potential temperature at 80 108 ! reference level (2 m) … … 95 123 ! Integrate z up to one level above zt 96 124 !************************************* 97 98 do k=2,nuvz 125 if (metdata_format.eq.GRIBFILE_CENTRE_ECMWF) then 126 loop_start=2 127 else 128 loop_start=llev 129 end if 130 do k=loop_start,nuvz 99 131 pint=akz(k)+bkz(k)*psurf ! pressure on model layers 100 132 tv=ttlev(k)*(1.+0.608*qvlev(k))
Note: See TracChangeset
for help on using the changeset viewer.