Wrong array type passed to NetCDF OISST file read routine
The three fields read from the NetCDF-format OISST file ('sst', 'err', 'ice') are all 2-byte integer ("short") fields in the files. However, in "main_src/oisst_analysis.f90", a 4-byte integer array (and thus a 4-byte integer NetCDF routine) is currently used to read each of those fields. This is not a good thing to do in general, causes a segfault when using the Intel Fortran compiler, and may be silently causing memory and/or other issues when using the gfortran compiler.
The simple solution is to modify "main_src/oisst_analysis.f90", change (near line 137) the name of "temp_i4_buffer" to "temp_i2_buffer", declare it to be a 2-byte integer array, and then near line 283, change all instances of "temp_i4_buffer" to "temp_i2_buffer". I have already made these changes in the new-build-system branch of clavrx-dev, but wanted to bring your attention to this. See the below already-modified lines:
integer(kind=int2), dimension(num_lon_sst_anal,num_lat_sst_anal,1,1) :: & temp_i2_buffer
....
call READ_NETCDF(ncid, sds_start_4d, sds_stride_4d, sds_edge_4d, 'sst', & temp_i2_buffer) oisst_anal_map = float(temp_i2_buffer(:,:,1,1)) * 0.01
call READ_NETCDF(ncid, sds_start_4d, sds_stride_4d, sds_edge_4d, 'err', & temp_i2_buffer) oisst_err_map = float(temp_i2_buffer(:,:,1,1)) * 0.01
call READ_NETCDF(ncid, sds_start_4d, sds_stride_4d, sds_edge_4d, 'ice', & temp_i2_buffer) oisst_cice_map = float(temp_i2_buffer(:,:,1,1)) * 0.01