WRF stop in upward_rad in module_sf_bep.F; roof too cold??

Any issues with the actual running of the WRF.

WRF stop in upward_rad in module_sf_bep.F; roof too cold??

Postby hmacintyre » Tue Dec 01, 2015 6:42 am

Hi,

I'm having an issue where WRF stops in upward_rad in phys/module_sf_bep.F as it's having an issue with the calculated roof temperature.

I've run successfully before using BEP+NoahLSM for other time periods, but for some reason it now stops for this specific run. It looks like an element of the 'tr' (roof temperature) array is reaching less than 100 K, which is not allowed (according to the code) and so the run stops. I'm not overly familiar witht his routine so I'm not sure what the issue could be, or why tr can't be less than 100. Here's the relevant snippet from the module it stops in.

Code: Select all
      real tw(2*ndm,nz_um,nwr_u)  ! Temperature in each layer of the wall [K]
      real tr(ndm,nz_um,nwr_u)  ! Temperature in each layer of the roof [K]
      real tg(ndm,ng_u)          ! Temperature in each layer of the ground [K]
      integer id ! street direction
      integer ndu ! number of street directions
!OUTPUT/INPUT
      real rs_abs  ! absrobed solar radiationfor this street direction
      real rl_up   ! upward longwave radiation for this street direction
      real emiss ! mean emissivity
      real grdflx_urb ! ground heat flux
!LOCAL
      integer iz,iw
      real rl_inc,rl_emit
      real gfl
      integer ix,iy,iwrong

      iwrong=1
      do iz=1,nzu+1
      do id=1,ndu
      do iw=1,nwr_u
        if(tr(id,iz,iw).lt.100.)then
              write(*,*)'in upward_rad ',iz,id,iw,tr(id,iz,iw)
              iwrong=0
        endif
        if(tw(2*id-1,iz,iw).lt.100.) then
           write(*,*)'in upward_rad ',iz,id,iw,tw(2*id-1,iz,iw)
           iwrong=0
        endif
        if(tw(2*id,iz,iw).lt.100.) then
           write(*,*)'in upward_rad ',iz,id,iw,tw(2*id,iz,iw)
           iwrong=0
        endif
      enddo
      enddo
      enddo
      do id=1,ndu
      do iw=1,ng_u
          if(tg(id,iw).lt.100.) then
            write(*,*)'in upward_rad ',id,iw,tg(id,iw)
            iwrong=0
          endif
      enddo
      enddo
           if(iwrong.eq.0)stop



I'm running for a period in the summer in the UK, so I wouldn't expect the temperature to be less than 100K(!), but the error file shows that this has happened in some of the roof layers:

Code: Select all
 in upward_rad            6           1          10   97.5907135
 in upward_rad            6           2          10   97.5907135
 in upward_rad            7           1          10   97.5907135
 in upward_rad            7           2          10   97.5907135
 in upward_rad            8           1          10   97.5907135
 in upward_rad            8           2          10   97.5907135


I have run this with no issues for other summer periods, so I'm very confused about what's going on. Any advice on how to track down the issue would be very helpful.

Best,
Helen
hmacintyre
 
Posts: 12
Joined: Thu Dec 04, 2014 4:31 pm

Re: WRF stop in upward_rad in module_sf_bep.F; roof too cold

Postby hmacintyre » Mon May 16, 2016 9:42 am

FYI the problem was that the surface roughness was way off for the urban parameter table.
Changing this has fixed the problem.
hmacintyre
 
Posts: 12
Joined: Thu Dec 04, 2014 4:31 pm


Return to Runtime Problems

Who is online

Users browsing this forum: No registered users and 8 guests