NCAR / DART

Data Assimilation Research Testbed
https://dart.ucar.edu/
Apache License 2.0
189 stars 142 forks source link

bug: obs_rttov13_mod converting an interger to a logical #537

Closed hkershaw-brown closed 12 months ago

hkershaw-brown commented 1 year ago

:ant:

Describe the bug

  1. ./quickbuild.sh mpas_atm with rttov13 with Cray Fortran : Version 15.0.1
  2. What was the expected outcome? Successful compilation
  3. What actually happened?

Compilation error (non standard Fortran)

ftn-356 ftn: ERROR GET_RTTOV_OPTION_LOGICAL, File = ../../../DART/observations/forward_operators/obs_def_mod.f90, Line = 5261, Column = 12 
  Assignment of a INTEGER expression to a LOGICAL variable is not allowed.

ftn-855 ftn: ERROR OBS_DEF_MOD, File = ../../../DART/observations/forward_operators/obs_def_mod.f90, Line = 5469, Column = 8 
  The compiler has detected errors in module "OBS_DEF_MOD".  No module information file will be created for this module.

The error is in get_rttov_option_logical

https://github.com/NCAR/DART/blob/70e6af803a52d14b9f77f872c94b1fe11d5dc2d9/observations/forward_operators/obs_def_rttov13_mod.f90#L4242

cloud_overlap = 1 or 2 so logical does not seem to be the best choice.

Screen Shot 2023-09-01 at 12 36 00 PM

get_rttov_option_logical is not called with 'cloud_overlap' so I don' think this bug is causing science problems anywhere, and we can just remove cloud_overlap from the case statement.

hkershaw@derecho2:/glade/derecho/scratch/hkershaw/DART(main)$ grep -rni get_rttov_option_logical .
./observations/obs_converters/AIRS/amsua_netCDF_support_mod.f90:46:                              get_rttov_option_logical
./observations/obs_converters/AIRS/amsua_netCDF_support_mod.f90:846:         if (get_rttov_option_logical('use_zeeman')) then
./observations/obs_converters/GOES/goes_ABI_L1b_mod.f90:30:                              get_rttov_option_logical
./observations/obs_converters/GOES/goes_ABI_L1b_mod.f90:453:      if (get_rttov_option_logical('do_lambertian')) then
./observations/obs_converters/GOES/goes_ABI_L1b_mod.f90:456:      else if (get_rttov_option_logical('addsolar')) then
./observations/obs_converters/GMI/gmi_L1_mod.f90:27:                              get_rttov_option_logical
./observations/obs_converters/GMI/gmi_L1_mod.f90:458:         if (get_rttov_option_logical('use_zeeman')) then
./observations/forward_operators/obs_def_mod.f90:1419:            get_rttov_option_logical
./observations/forward_operators/obs_def_mod.f90:5156:function get_rttov_option_logical(field_name) result(p)
./observations/forward_operators/obs_def_mod.f90:5274:         call error_handler(E_ERR, 'get_rttov_option_logical', string1, source, revision, revdate)
./observations/forward_operators/obs_def_mod.f90:5277:end function get_rttov_option_logical
./observations/forward_operators/obs_def_rttov_mod.f90:400:            get_rttov_option_logical, &
./observations/forward_operators/obs_def_rttov_mod.f90:4154:function get_rttov_option_logical(field_name) result(p)
./observations/forward_operators/obs_def_rttov_mod.f90:4274:         call error_handler(E_ERR, 'get_rttov_option_logical', string1, source, revision, revdate)
./observations/forward_operators/obs_def_rttov_mod.f90:4277:end function get_rttov_option_logical
./observations/forward_operators/obs_def_rttov_mod.rst:79:\                               get_rttov_option_logical
./observations/forward_operators/obs_def_rttov_mod.rst:218:   *p = get_rttov_option_logical(field_name)*
./observations/forward_operators/obs_def_rttov13_mod.f90:400:            get_rttov_option_logical
./observations/forward_operators/obs_def_rttov13_mod.f90:4137:function get_rttov_option_logical(field_name) result(p)
./observations/forward_operators/obs_def_rttov13_mod.f90:4255:         call error_handler(E_ERR, 'get_rttov_option_logical', string1, source, revision, revdate)
./observations/forward_operators/obs_def_rttov13_mod.f90:4258:end function get_rttov_option_logical

Which model(s) are you working with?

mpas_atm, but this would apply to any model using rttov13 forward operator or observation converters using rttov13

Version of DART

Which version of DART are you using? v10.8.3

Have you modified the DART code?

No

Build information

Please describe:

  1. Derecho
  2. cce (Cray Fortran 15.0.01)