Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Huge rsl files due to "refi is larger than lookup table" warnings

ramousta

New member
Hi everybody!
When using WRF-Chem with aerosol optical properties aer_op_opt= 1 (volume) option , huge rsl files (exceeds 20 Gb in size) are generated due to the fact that the model is writing repeatedly the following messages:
....
Warning: refi is larger than lookup table range and reset to maximum bound at SW band 1
Warning: refi is larger than lookup table range and reset to maximum bound at SW band 2
....
Warning: refi is larger than lookup table range and reset to maximum bound at LW band 1
Warning: refi is larger than lookup table range and reset to maximum bound at LW band 2
....
If I use aer_op_opt=3 (complex volume-mixin), I don't get these warning.

In the module_optical_averaging.F file, I can see that there is a check for refr and refi outside of lookup table range to prevent unstable extrapolation 'binterp'.

My question: is it safe to use aer_op_opt= 1, even if I have these warnings since the simulation never stops? Do these warnings affect the simulation results.
In this case, I can make the followings changes in module_optical_averaging.F file, so the warning printings should only be showed for debugging.:
!! Disable printing
IF ( 100 .LE. debug_level ) THEN
....
if (refi > refitabsw(prefi,ns)) then
refi = refitabsw(prefi,ns)
write(*,*), 'Warning: refi is larger than lookup table range and reset to maximum bound at SW band ', ns
endif
ENDIF
...
IF ( 100 .LE. debug_level ) THEN
....
if (refi > refitablw(prefi,ns)) then
refi = refitablw(prefi,ns)
write(*,*), 'Warning: refi is larger than lookup table range and reset to maximum bound at LW band ', ns
endif

ENDIF
...
Thank you so much for your help.
Rachid
 
Last edited:
Hi Rachid,

I agree these warnings should be suppressed and your suggestion is good. As for your question, it's hard to say exactly, but I would assume that aer_op_opt=1 will be fine if aer_op_opt=3.

Jordan
 
Thank you Jordan, I will disable the warnings and see if aer_op_opt=1 gives different results with respect to aer_op_opt=3.
 
Last edited:
I will recommend to modify like this in order to reset the refi and refr vars
add in line 4328:
INTEGER :: debug_level=0


CALL set_wrf_debug_level (debug_level)

...
if (refr < refrtabsw(1,ns)) then
refr = refrtabsw(1,ns)
IF ( 100 .LE. debug_level ) write(*,*), 'Warning: refr is smaller than lookup table range and reset to minimum bound at SW band ', ns
endif
if (refr > refrtabsw(prefr,ns)) then
refr = refrtabsw(prefr,ns)
IF ( 100 .LE. debug_level ) write(*,*), 'Warning: refr is larger than lookup table range and reset to maximum bound at SW band ', ns
endif
if (refi < refitabsw(1,ns)) then
refi = refitabsw(1,ns)
IF ( 100 .LE. debug_level ) write(*,*), 'Warning: refi is smaller than lookup table range and reset to minimum bound at SW band ', ns
endif
if (refi > refitabsw(prefi,ns)) then
refi = refitabsw(prefi,ns)
IF ( 100 .LE. debug_level ) write(*,*), 'Warning: refi is larger than lookup table range and reset to maximum bound at SW band ', ns
endif
...

! check for refr and refi outside of lookup table range to prevent unstable extrapolation 'binterp' below
if (refr < refrtablw(1,ns)) then
refr = refrtablw(1,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refr is smaller than lookup table range and reset to minimum bound at LW band ', ns
endif
if (refr > refrtablw(prefr,ns)) then
refr = refrtablw(prefr,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refr is larger than lookup table range and reset to maximum bound at LW band ', ns
endif
if (refi < refitablw(1,ns)) then
refi = refitablw(1,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refi is smaller than lookup table range and reset to minimum bound at LW band ', ns
endif
if (refi > refitablw(prefi,ns)) then
refi = refitablw(prefi,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refi is larger than lookup table range and reset to maximum bound at LW band ', ns
endif
 
Hi Jose,
I have got the same problem, ( receiving this warning :Warning: refi is larger than lookup table range and reset to maximum bound at SW band and this one: Warning: refi is larger than lookup table range and reset to maximum bound at LW band). But I did not use "aer_op_opt". I just wonder why this happened. Would you please kindly help me in this regard? I tried to modify the module_optical_averaging.F according to your suggestion, but it did not work. So how can I modify it, please? (my name list has been attached)
Many thanks in advance.
Kind regards,
 

Attachments

  • namelist.input
    7.5 KB · Views: 16
Hi Jose,
I have got the same problem, ( receiving this warning :Warning: refi is larger than lookup table range and reset to maximum bound at SW band and this one: Warning: refi is larger than lookup table range and reset to maximum bound at LW band). But I did not use "aer_op_opt". I just wonder why this happened. Would you please kindly help me in this regard? I tried to modify the module_optical_averaging.F according to your suggestion, but it did not work. So how can I modify it, please? (my name list has been attached)
Many thanks in advance.
Kind regards,
Hello Seti,

Could you solve this issue modifying the module_optical_averaging.F and recompiling the model?
I'm currently having the same problem.

Thank you in advance.

-Stephanie
 
Hi
I modified the module_optical_averaging.F, but still receiving the same warning.
Which chem_opt are you using?
 
Hi,

I am looking back at your modifcation, and I don't think it is appropriate to reset the debug level within module_optical_averaging.F (If this is not what you've done, please attach a differenced file). Why don't you just reduce your debug level in your namelist to < 100. Or just comment out those lines altogether.

Jordan
 
Hi,

I am looking back at your modifcation, and I don't think it is appropriate to reset the debug level within module_optical_averaging.F (If this is not what you've done, please attach a differenced file). Why don't you just reduce your debug level in your namelist to < 100. Or just comment out those lines altogether.

Jordan
Hi Jordan,
debug level was set to zero, but recived the error. Do you mean to comment of these lines in the Registry:
! check for refr and refi outside of lookup table range to prevent unstable extrapolation 'binterp' below
if (refr < refrtablw(1,ns)) then
refr = refrtablw(1,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refr is smaller than lookup table range and reset to minimum bound at LW band ', ns
endif
if (refr > refrtablw(prefr,ns)) then
refr = refrtablw(prefr,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refr is larger than lookup table range and reset to maximum bound at LW band ', ns
endif
if (refi < refitablw(1,ns)) then
refi = refitablw(1,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refi is smaller than lookup table range and reset to minimum bound at LW band ', ns
endif
if (refi > refitablw(prefi,ns)) then
refi = refitablw(prefi,ns)
IF (100.le.debug_level) write(*,*), 'Warning: refi is larger than lookup table range and reset to maximum bound at LW band ', ns
endif

Like Quote Reply
 
Top