Welcome to the new DiscussCESM forum!
We are still working on the website migration, so you may experience downtime during this process.

Existing users, please reset your password before logging in here: https://xenforo.cgd.ucar.edu/cesm/index.php?lost-password/

urban net longwave radiation error when running deep time experiment

xjliu@uw_edu

New Member
Hi,  I am trying to do a deep time experiment. I have changed the land/sea geometry, domain files, mapping files, surface data files and atmosphere boundary files following the instruction of the paleoresources for CESM1.2. The model ran but stopped after timestep 1, and gave error message "urban net longwave radiation error: no convergence". I thought it was because I didn't change the aerosol accordingly. I then used the zonal mean aerosol (over land and ocean respectively), but still received the same error message. 
I googled the forum. One post suggested that "this error typically actually indicates an error coming from the atmosphere with some unrealistic downwelling longwave radiation.  It crashes in the urban model because that is the first part of CLM that uses the atmospheric longwave. So usually the fact it crashes in the urban model doesn't reflect anything is worng with the urban but bad values are passed to teh urban model ". But I have no idea how to pinpoint where the problem with atmosphere is. 
Does anyone have any idea how to fix this? This is urgent. Thank you very much. 
 

shields@ucar_edu

New Member
If you are running an old version of the model, there was a bug in the CAM5 radiation code that was tripped with very warm climates. This bug could lead to this error. To correct:

CAM5 high co2/warm world fix: diffusivity angle

currently using this:

do ibnd = 1,nbndlw
if (ibnd.eq.1 .or. ibnd.eq.4 .or. ibnd.ge.10) then
secdiff(ibnd) = 1.66_r8
else
secdiff(ibnd) = a0(ibnd) + a1(ibnd)*exp(a2(ibnd)*pwvcm)
endif
enddo
if (pwvcm.lt.1.0) secdiff(6) = 1.80_r8
if (pwvcm.gt.7.1) secdiff(7) = 1.50_r8

change to this (in rrtmg_lw_rtrnmr.f90 and rrtmg_lw_rtrnmc.f90):

do ibnd = 1,nbndlw
if (ibnd.eq.1 .or. ibnd.eq.4 .or. ibnd.ge.10) then
secdiff(ibnd) = 1.66_r8
else
secdiff(ibnd) = a0(ibnd) + a1(ibnd)*exp(a2(ibnd)*pwvcm)
if (secdiff(ibnd) .gt. 1.80_r8) secdiff(ibnd) = 1.80_r8
if (secdiff(ibnd) .lt. 1.50_r8) secdiff(ibnd) = 1.50_r8
endif
enddo
 
Top