bug in computation of net longwave flux

Bug reports, work arounds and fixes

Moderators: arango, robertson

Post Reply
Message
Author
nageswararao

bug in computation of net longwave flux

#1 Unread post by nageswararao »

Hi,
While I am going through the code. I found one bug in bulk_fluxes.F. I had noticed that in computation of net longwave flux using Berliand formula there is 0.5 instead of 0.05. I am talking about ROMS-2.2 and I dont know whether it was rectified in ROMS-3.0 or not. I mean that

Code: Select all

          LRad(i,j)=-emmiss*StefBo*                                     &
     &              (cff1*(0.39_r8-0.5_r8*SQRT(0.01_r8*vap_p))*         &
     &                    (1.0_r8-0.6823_r8*cloud(i,j)*cloud(i,j))+     &
     &               cff2*4.0_r8*(TseaK(i)-TairK(i)))
it should be,

Code: Select all

          LRad(i,j)=-emmiss*StefBo*                                     &
     &              (cff1*(0.39_r8-0.05_r8*SQRT(0.01_r8*vap_p))*        &
     &                    (1.0_r8-0.6823_r8*cloud(i,j)*cloud(i,j))+     &
     &               cff2*4.0_r8*(TseaK(i)-TairK(i)))
I think I am right.

With regards,
G.NageswaraRao.

User avatar
arango
Site Admin
Posts: 1350
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#2 Unread post by arango »

Yes, you may be correct but we need to check. I rarely use this option. I know of several users that use LONGWAVE_OUT instead. This formula is also known as the Oberhuber formula. It was originally formulated for cloudless sky. The one implemented in bulk_flux.F has a cloud correction. I don't recall where the cloud correction term comes from. This formula assumes that the vapour pressure (vap_p) is in mb. If not, then that factor can change. So the issue here is to investigate what are the units for vap_p and then see if the longwave radiation as coded is correct or not:

Code: Select all

          cff=(0.7859_r8+0.03477_r8*TairC(i))/                          &
     &        (1.0_r8+0.00412_r8*TairC(i))
          e_sat=10.0_r8**cff
          vap_p=e_sat*RH
For example if vap_p is in Pascals (1 mb = 100 Pa), then the 0.5 factor is correct. Also notice that relative humidity (RH) units are also important here.

User avatar
arango
Site Admin
Posts: 1350
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#3 Unread post by arango »

The above equation for longwave is coded correctly in bulk_fluxes.F. Both the saturation vapor pressure (e_sat) and water vapor pressure (vap_p) are in millibars (or hPa). The equation for e_sat is from Gill's book (Atmosphere-Ocean Dynamics, pp 606).

Notice that coefficient is the same:

Code: Select all

0.05_r8 = 0.5_r8 * SQRT (0.01_r8)
I changed that coefficient to 0.05_r8 to reduce the number operations. Also notice that the coefficient in the cloud term is assumed constant here. However, this coefficient has a latitudinal dependency varying from 1.0 at the poles to 0.5 at the Equator.

Post Reply