Changeset 94b3788 in flexpart.git


Ignore:
Timestamp:
Apr 8, 2021, 11:35:25 AM (3 years ago)
Author:
Espen Sollum <eso@…>
Branches:
dev
Children:
e2132cf, 8f3cc41
Parents:
b1f28c3
Message:

Fix for reading GFS v16 fields

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/gridcheck_gfs.f90

    r467460a r94b3788  
    7373  !HSO  end
    7474  integer :: ix,jy,i,ifn,ifield,j,k,iumax,iwmax,numskip
    75   real :: sizesouth,sizenorth,xauxa,pint
     75  real :: sizesouth,sizenorth,xauxa,pint,xsec18
    7676  real :: akm_usort(nwzmax)
    7777  real,parameter :: eps=spacing(2.0_4*360.0_4)
     
    149149  call grib_check(iret,gribFunction,gribErrorMsg)
    150150
     151  xsec18 = real(isec1(8))
     152
    151153  else ! GRIB Edition 2
    152154
     
    168170  isec1(7)=-1
    169171  isec1(8)=-1
     172  xsec18 = -1.0
    170173  if ((parCat.eq.2).and.(parNum.eq.2).and.(typSurf.eq.100)) then ! U
    171174    isec1(6)=33          ! indicatorOfParameter
    172175    isec1(7)=100         ! indicatorOfTypeOfLevel
    173     isec1(8)=valSurf/100 ! level, convert to hPa
     176    xsec18=valSurf/100.0 ! level, convert to hPa
    174177  elseif ((parCat.eq.3).and.(parNum.eq.5).and.(typSurf.eq.1)) then ! TOPO
    175178    isec1(6)=7           ! indicatorOfParameter
    176179    isec1(7)=1           ! indicatorOfTypeOfLevel
    177     isec1(8)=0
     180    xsec18=real(0)
    178181  elseif ((parCat.eq.0).and.(parNum.eq.0).and.(typSurf.eq.1) &
    179182       .and.(discipl.eq.2)) then ! LSM
    180183    isec1(6)=81          ! indicatorOfParameter
    181184    isec1(7)=1           ! indicatorOfTypeOfLevel
    182     isec1(8)=0
     185    xsec18=real(0)
    183186  endif
    184187
     
    301304  if((isec1(6).eq.33).and.(isec1(7).eq.100)) then ! check for U wind
    302305    iumax=iumax+1
    303     pres(iumax)=real(isec1(8))*100.0
     306    pres(iumax)=xsec18*100.0
    304307  endif
    305308
  • src/readwind_gfs.f90

    r9ca6e38 r94b3788  
    217217      isec1(7)=102         ! indicatorOfTypeOfLevel
    218218      xsec18=real(0)
    219     elseif ((parCat.eq.3).and.(parNum.eq.0).and.(typSurf.eq.1)) then ! SP
     219   elseif ((parCat.eq.3).and.(parNum.eq.0).and.(typSurf.eq.1).and. &
     220        (discipl.eq.0)) then ! SP
    220221      isec1(6)=1           ! indicatorOfParameter
    221222      isec1(7)=1           ! indicatorOfTypeOfLevel
     
    602603        if (temp .eq. 0.0) then
    603604          write (*, *) i, j, k, n
    604           temp = 273.0
     605!          temp = 273.0
     606          stop
    605607        endif
    606608        plev1=akm(k)+bkm(k)*ps(i,j,1,n)
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG