humidity in Bulk flux.F

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
User avatar
susonic
Posts: 160
Joined: Tue Aug 21, 2007 5:44 pm
Location: Jeju National University
Contact:

humidity in Bulk flux.F

#1 Post by susonic » Sun Dec 14, 2014 5:00 pm

ROMS can get either specific or relative humidity as a forcing input.
And ROMS has three ways to calculate longwave radiation.
When we calculate net longwave radiation internally (with LONGWAVE defined)
ROMS requests humidity(RH, 412 line in bulk_flux.F) and this time ROMS does not know wheather this humidity is a relative or specific one. So there is a need to add if condition. I saw below code in Kate Version.
IF(RH.lt.2.0_r8) THEN
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
ELSE
vap_p=0.001_r8*PairM*RH/(1.0_r8+0.000378_r8*RH)
ENDIF
cff2=TairK(i)*TairK(i)*TairK(i)
cff1=cff2*TairK(i)
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)))

lanerolle
Posts: 157
Joined: Mon Apr 28, 2003 5:12 pm
Location: NOAA

Re: humidity in Bulk flux.F

#2 Post by lanerolle » Mon Dec 15, 2014 3:33 pm

In my simulations, I provide ROMS with Relative Humidity (RH) as a percentage (%). To avoid running into the Specific Humidity (SH) issue, I clip my RH values at a minimum of 2.1% and to avoid any potential problems with the mathematical formulation of the Bulk Fluxes, I also clip RH at 99% and do not go above it. Hence, in my simulations, all of my spatio-temporal RH values are such that: 2.1% <= RH <= 99.0% and I avoid going outside these ranges.

Lyon.

User avatar
susonic
Posts: 160
Joined: Tue Aug 21, 2007 5:44 pm
Location: Jeju National University
Contact:

Re: humidity in Bulk flux.F

#3 Post by susonic » Mon Dec 15, 2014 4:21 pm

Yes. It looks reasonable kludge. Thank you for your post, Dr.Lanerolle.

The original ROMS code in bulk_flux.F
cff=(0.7859_r8+0.03477_r8*TairC(i))/ &
& (1.0_r8+0.00412_r8*TairC(i))
e_sat=10.0_r8**cff ! saturation vapor pressure (hPa or mbar)
vap_p=e_sat*RH ! water vapor pressure (hPa or mbar)
cff2=TairK(i)*TairK(i)*TairK(i)
cff1=cff2*TairK(i)
LRad(i,j)=-emmiss*StefBo* &
& (cff1*(0.39_r8-0.05_r8*SQRT(vap_p))* &
& (1.0_r8-0.6823_r8*cloud(i,j)*cloud(i,j))+ &
& cff2*4.0_r8*(TseaK(i)-TairK(i)))
There is a need to be adding IF condition like below (below code is from Kate code).
IF(RH.lt.2.0_r8) THEN
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
ELSE
vap_p=0.001_r8*PairM*RH/(1.0_r8+0.000378_r8*RH)
ENDIF
cff2=TairK(i)*TairK(i)*TairK(i)
cff1=cff2*TairK(i)
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)))
As Lanerolle pointed out,
we need to add more specific range to avoid potential problems getting humidity data.

User avatar
kate
Posts: 3782
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: humidity in Bulk flux.F

#4 Post by kate » Mon Dec 15, 2014 5:26 pm

I don't remember where the "IF" code came from - actually, the comments point to Paul Budgell.
I have since added a cpp flag for it in addition, for those of us using specific humidity in kg/kg. Be sure to set your varinfo.dat accordingly!

Post Reply