AAPP - Known Bugs and Problems
Last updated: 03/12/2014
Questions for other users and developers
can be posted on the AAPP Forum.
The reported bugs and problems do not always cause harm. Especially the
portability problems depend on the hardware platform, compiler version,
option settings used. It is generally not necessary to implement all such
modifications into your system. It is recommended to follow just the instructions
of the Installation Guide and to consult this list only in case of problems.
Nevertheless, programming bugs and algorithm improvements should be implemented.
If a module requires more than one modification the modifications are
listed from the end of the module to its start so that the line numbers
remain valid when editing the module in the given sequence.
For convenience reasons, the character ~ has been used to refer to <your
destination directory> where you installed AAPP into. Directory paths
mentioned in the List of Known Bugs and Problems are not to be typed
in as ~/AAPP/..., which the shell would interpret as ${HOME}/AAPP/...,
but as <your destination directory>/AAPP/... .
|
List of Known Bugs and Problems of
AAPP V7 |
|
- Orbit numbers derived from TLEs from EUMETSAT are not always consistent with orbit numbers from NOAA
TLEs. Fixed in update 7.2.
- Bad ATMS BTs (>330K) can be included in the spatial filtering process, corrupting the good BTs. Fixed
in update 7.2.
- In v7.2, the scripts atovin and atovin_antcorr can fail if there is a file in the working directory
whose name is a single character long, e.g. "a", "b", etc. To fix the problem, insert single
quotes round the [a-z] and [A-Z] at line 48 of atovin.ksh (and line 52 of atovin_antcorr.ksh),
i.e. '[a-z]' '[A-Z]'. Fixed in update 7.3.
- In v7.3, the mwts_sdr and mwhs_sdr utilities fail for FY-3B. Fixed in update 7.4.
- For level 1c CrIS BUFR encode/decode, the scaling factors for surface height and satellite height are
incorrect. Fixed in update 7.4. But note that the surface height is currently the ellipsoid-geoid
separation, not the land surface height. This will be addressed at a later date.
- in v7.1-7.3, compilation of lec_previ_grib_api.F fails for g77, as the "trim" function is not supported. Fixed in 7.4.
- MAIA2.1 threshold files are not correctly extracted under Cygwin, since Windows does not
permit use of the ":" character in a file name. Fixed in update 7.5.
- Metop-B AVHRR channel 4 and 5 radiance calibration is wrong, due to formatting error in
avhcal.txt. Fixed in update 7.5.
- Metop-B AMSU-A channel 3, 4, 5 and 8 calibration differs from EUMETSAT calibration by ~0.1K.
Fixed in update 7.5.
- When using tool noaa_class_to_aapp to ingest AVHRR data from satellites that were operating before the year 2000, the year is not decoded correctly.
Fixed in 7.7.
- When decoding EUMETSAT's global stream of BUFR data for AMSU-A, MHS and HIRS, the first scan after
crossing the equator (northbound) does not get included in the output. See Forum posting for
more details. Fixed in 7.7
- On some 64-bit systems the size of the default integer in Fortran is 8 bytes; AAPP requires 4 bytes. The behaviour can
be different for different compilers. For example, a system has been reported in which g95 gives 8 byte integers but
gfortran and gcc give 4-byte integers. gfortran is preferred in this case, but if you want to use g95 then we recommend
the use of the "-i4" compiler flag - set this in
Makefile.ARCH, and also use the flag if you are building the GMT example executables (which don't use Makefile.ARCH).
This issue also affects the C to Fortran calls in OPS-LRS and can cause run-time errors: the solution is to set the appropriate flag in
ARCH_FFLAGS_BASE in Makefile.ARCH. If the build fails, try optimisation level 0 (work-around for a g95 compiler problem).
- In v7.7, the iras_sdr tool for decoding FY-3 IRAS data works for FY-3C but not for FY-3B. The problem was related to string comparisons. Fixed in v7.8.
- The mapping of MWTS2 to IRAS (introduced in v7.7) needs optimising, e.g. the angle tolerances. Fixed in v7.8.
|
List of Known Bugs and Problems of
AAPP V6 |
|
- Some "noisy" NOAA passes are not processed in AAPP v6.1, but were processed in
v5.3. This is because the time checking is too stringent, and AMSU "fill" lines sometimes
had the wrong time stamps. Problem fixed in update 6.2
- Antenna correction version numbers are missing in level 1c and 1d products. They
have been missing in all previous versions of AAPP.
Fixed in update 6.2
- Various modifications are required to process METOP L0 data. These modifications
are implemented in update 6.2.
- On some linux systems, when using the Intel f90 compiler (ifort) the "-i-static"
compiler flag (in config/ifort) can cause a problem in which the executables do
not run. The flag may be omitted provided the Fortran run-time libraries are present on the
system that is to run AAPP.
- In the level 1c BUFR encoding routine
the AMSU-B, MHS and HIRS channel numbers are incorrect. Fixed for AMSU-B
and MHS in v6.5 (aapp_put_1c.F). Fixed for HIRS in v6.6.
- In the level 1c BUFR encoding and decoding routines (aapp_get_1c.F and aapp_put_1c.F for
AAPP v6.7 and earlier) there is a typo causing wrong dates in September 2008. See DATA
statement defining "LEAP" and change "243" to "244". Fixed in v6.8.
- In the convert_iasi1c utility (part of iasi-tools), day number in the 1c output file is
wrong in leap years, for AAPP v6.7 and earlier. Fixed in v6.8.
- In AAPP v6.8, if the correct NOAA-19 "tip telemetry numbers" (15,0) are inserted in the
satid.txt file then there is a conflict with FY-1D. Fixed in v6.9.
- On 5th June 2009 EUMETSAT supplied updated NOAA-19 MHS antenna corrections. Issued with update 6.10.
- The bilinear interpolation function used in atovpp when mapping AMSU to HIRS is not completely smooth
across the scan.
This can result in system/compiler differences in the mapped AMSU BTs, notably for NOAA-17 HIRS
spot 47. Scientifically, the differences are not significant.
- In AAPP v6.12, the tbusing.exe program can enter an infinite loop for the last satellite
in the bulletin (currently NOAA-18). Fixed in v6.13.
- In AAPP v6.12, if some spots for AMSU-B channels 18-20 have missing BTs but some
have valid BTs then the missing ones can be included in the averaging, resulting in large errors. Fixed
in v6.13.
- In AAPP v6.12 and earlier, there is a problem in the decommutation module when using gfortran compiler
on Ubuntu, in which a line is missing from the HIRS 1b file, and hence atovin fails.
A work-around for this suspected compiler bug is implemented in v6.13.
- AAPP v6.13 (and earlier) gives incorrect IASI PC scores when used with version 103 of the EUMETSAT IASI
eigenvector files (dated 20100629, available on the AAPP ftp server). Fixed in v6.14.
- Combine_1c tool fails if boundary between files is at exactly midnight. Fixed in v6.14.
- AAPP_RUN_NOAA fails for AMSU-A if MHS is in fault mode, even if MHS is not in the list of instruments.
Fixed in v6.14.
- decom-avhrr-metop enters infinite loop if OBT-UTC step is zero (occasionally happens with EARS-AVHRR).
Fixed in 6.14.
- On some platforms, IASI OPS-LRS time stamps are inconsistent with global IASI. Fixed in v6.14.
- From late December 2010, NOAA-15 AMSU-A has developed a fault in the
telemetry that reports the antenna position of channels 6, 7 and 9-15. To restore the
calibration of these channels by amsuacl, edit file amsua_clparams.dat and
change the values in line 57 from "1.3 0.33" to "7.0 7.0". Fixed in v6.15.
- When processing EARS-AVHRR data, if there is a 3A/3B transition during a data gap
(which can happen when using FDES data) the navigation after the gap is incorrect. Fixed in v6.15.
- When building AAPP under Cygwin, the AAPP scripts are not installed correctly. A solution has been
prepared for AAPP v7.
- As of 09/11/2011, NOAA-19 AMSU-A channel 8 space counts are dropping below the limit of 10000 counts in
amsua_clparams.dat. Users need to modify line 1199 (change the 6th number to 8000).
|
List of Known Bugs and Problems of
AAPP V5 |
|
- In AAPP v5.1 there is a bug in tle_satpos.F that sometimes
introduces a one orbit difference in the file names when using 2-line elements,
compared with TBUS. This is not systematic. Problem is corrected in
update release 5.2 (09/9/2005).
- With AAPP v5.1, the time stamps of MHS data are 2.667 seconds out causing a
mis-navigation by 1 scan line (16km). The problem is due to
data buffering on the spacecraft. Update release 5.2 (09/9/2005) applies a correction
in the decommutation program.
- In MHS level 1b files from NESDIS, the instrument I/D for MHS on NOAA-N is set to 0.
AAPP sets the I/D to 1. This normally causes no problems, but if any users want to
re-calibrate the NESDIS 1b data (using mhscl) they will need to modify mhssetu.F. At
line 140 insert:
if (mhs_h_instid.eq.0) mhs_h_instid=1 !NOAA 1b files have ID=0 for NOAA-N
Fixed in update release 5.3 (31/1/2006).
- In amb_smpmn.F there should be a line "do ichan=1,5" inserted before
"sampok(ichan,iscan)=.false." (lines 107 and 130), and an "enddo" inserted afterwards.
Fixed in update release 5.3 (31/1/2006).
- The AVHRR calibration parameters file contains a formatting error in the
space radiances for NOAA-18. This applies to avhcal.txt version 14, distributed with AAPP
v5.1. Line 834 should have an extra space inserted before the "-5.53" (compare the NOAA-17
entry at line 719). The file is found in directories ~/AAPP/sources/calibration/avhrcl and
~/AAPP/data/calibration/coef/avhcl. Fixed in update release 5.3 (31/1/2006).
- Linux users who use the Intel ifort compiler are advised to set the optimisation level in
to 1, since the default level 2 can cause problems in the decommutation task. To do this, add a flag
-O1 (capital O) to the FortranFlags in linux.cf. Then use INST_5 to
clean, adjust makefiles and re-compile. Implemented in update release 5.3 (31/1/2006).
- mhscl can give a divide by zero error when there is missing MHS housekeeping data. To fix, edit
mhs_iwttmp.F in directory ~/AAPP/sources/calibration/mhscl. Replace lines 107-108 with
if ( (3*scc - sc*sc) .EQ. 0 ) then
alpha = 0
beta = 0
else
alpha = (sr*scc - sc*scr)/(3*scc - sc*sc) !intercept
beta = (3*scr - sr*sc)/(3*scc - sc*sc) !slope
endif
Fixed in update release 5.3 (31/1/2006).
- mhscl writes incorrect values of "mhs_h_nonlin" to the 1b header and can give an array
overflow error. The incorrect header values do not affect the calibrated radiances. To fix, edit
mhs_updt.F in directory ~/AAPP/sources/calibration/mhscl and change "(j+i+16)" to "(j+i+15)" at line
83. Fixed in update release 5.3 (31/1/2006).
- There is an array indexing error in amb_cal.F in directory ~/AAPP/sources/calibration/amsubcl.
The order of the calok indices at line 170 should be reversed, i.e. change to:
if (.not.calok(ichan,iscan).and.iprint.ge.1)
Fixed in update release 5.3 (31/1/2006).
- Some compilers do not understand the multi-line /*....*/ comment at line 28 of amb_earthcorr.F in directory
~/AAPP/sources/preproc/atovin. Use conventional Fortran comments instead.
Fixed in update release 5.3 (31/1/2006).
- For extra robustness against corrupt data in cases where MHS is requested, add the following at line 167 of
amsget.F in directory ~/AAPP/sources/decommutation/decommutation:
IF (MHSPRESENT .AND. (MIUMF.LT.0.OR.MIUMF.GT.79)) THEN
FULLAM=.FALSE.
RETURN
ENDIF
Fixed in update release 5.3 (31/1/2006).
- On some systems (e.g. IBM AIX) the "ICHAR" intrinsic is signed. This causes errors in MHS processing,
affecting subroutines mhsdc.F, mhsst.F, mhs_iwttmp.F and inmhsget.F.
Fixed in update release 5.3 (31/1/2006).
- When processing HIRS on NOAA-15, 16 and 17 using hirscl_algoV4, the instrument name is
incorrectly set to "HIRS/4" in the level 1b file. Fixed in update release 5.3 (31/1/2006).
- The unix "sort" command is used in several AAPP scripts and can give unexpected behaviour if the
users locale settings are non-standard. To check it, type "locale". If you see either LC_ALL=C or
LANG=C (with LC_ALL undefined) then it's OK. If not, you are advised to insert
"export LC_ALL=C" into your environment setup.
- The "end orbit number" in the level 1c header for
AMSU-A, AMSU-B and MHS is incorrect. This problem is fixed in version 6.1.
|
List of Known Bugs and Problems of
AAPP V4.4 |
|
- The readme.v44 file states that update 4.4 incorporates updates
4.1, 4.2 and 4.3. In fact it only incorporates 4.1 and 4.2. Update 4.3
must be installed separately.
- Users of the 'alternate versions' of the software modules (in which
"BYTE" has been replaced by "INTEGER*1") should not use
include/hrs1b.h_vers2 but should instead edit
include/hrs1b.h, replacing "BYTE" with "INTEGER*1"
- Some compilers do not accept the use of "TYPE" in OPEN statements in
sources/tools/swabAtlas.F and sources/tools/atovsCompare.F.
Edit these and change "TYPE" to "STATUS".
- Some systems give a run-time error in decommutation when the data are
noisy. Edit
sources/decommutation/decommutation/cktime.F and substitute the following
for lines 133 to 138:
if (dijref.LE.0 .OR. dijref.GT.3000*dij_moy) then ! give up
goodtime=.FALSE.
flagref=.FALSE.
flagprev=.FALSE.
else
sinceref=nint(dijref/dij_moy) ! relative count
endif
- There is an occasional problem with AMSU time stamps in the decommutation step.
They can be 8 seconds in error if the TIP time stamp (which occurs every 32 seconds)
is received before the start of 'clean' AMSU data. A subsequent navigation error of
about 50km would then occur. The problem can be fixed in
sources/decommutation/decommutation/atovdc.F: change line 550
from
if (tipmf .eq. 0)then
to
if (tipmf .eq. 0 .and. amf .ne. -1)then
and change line 708 from
endif
to
else
amf = 0 !Dummy value for amf if AMSU not required
endif
- The satellite height field in HIRS level 1c is wrong when
ingesting big-endian HIRS level 1b files on a little-endian platform.
To fix, change line 140 of sources/libs/libf7nl1b/byteswap1b.F
from
DATA pos_hrs1bdt /1,9,13,29,37,77,157,663,1001,1461,4545,4549/
to
DATA pos_hrs1bdt /1,9,13,29,37,77,157,657,1001,1461,4545,4549/
then re-compile libf7nl1b and atovin.
- In the header record of the AVHRR level 1b files, the definition of the band correction
coefficients differs from that used by NOAA. NOAA supply the constant1 and
constant2
required to convert from radiance to brightness temperature (see section 7.1.2.3 of the
NOAA-KLM User's Guide). AAPP versions 1 to 4 supply the A and B coefficients to convert from temperature
to radiance. However, the application program gmt/avhrr_l1b_calib_plot.f always assumes the
NOAA definition.
For AAPP version 5, AAPP will adopt the NOAA convention for the AVHRR band coefficients.
To allow for past differences, user applications are advised to test the sign of the first coefficient: constant1 is always
negative for AVHRR, whereas A is always positive. To convert between the 2 definitions:
constant1 = -A/B; constant2 = 1/B. AAPP version 5 will also update the
numerical values of these constants, for consistency with NOAA.
|
List of Known Bugs and Problems of
AAPP V4.0 |
|
- Initialisation statements such as "INTEGER A/1/" are
not accepted by some compilers. Use DATA statement instead.
Applies to amb_earthcorr.F, inamooncorr.F, maia_lec_clim.F.
(There were many such instances in v3.0)
- DOS style line terminators (CR/LF) instead of Unix
style (LF) present in moon_amsu.F, moon_position.F, inamooncorr.F,
inamooninit.F, inamoontest.F. Use "dos2unix" to correct
this if needed.
- Some compilers don't accept "DATA MISSING/-2147483648" in
amsout.F, hirout.F, msuout.F. Instead, assign a value "missing=-2147483647-1" at
the start of each subroutine. (Delete the variable "missing" in
hirout.F as it's not used).
- Some F90 compilers don't recognise data type "byte".
Use "integer*1" instead, as provided in surfelev_vers2.F,
gp_wb8_vers2.F, gp_gb8_vers2.F and several HIRS 'include'
files. Note that some F77 compilers don't recognise integer*1.
- deglac.F (in libmaia_2.1) has a non-standard include
statement. Change to #include "maia.h" if this causes
compile problems.
- Some systems give run-time error when running tbusing
or hirscl. Use alternative subroutines ml_wtdp_vers2.F
and ml_wtr_vers2.F (in libs/libf7ml).
- Some systems give run-time error in driftephe.F (navigation/ephtrack).
In line 85, change "read(chdt,'(i)') dtsec" to "read(chdt,*)
dtsec"
- Some systems give run-time error in decommutation
when running the NOAA-14 test case. Fixed in update release
4.1.
|
List of Known Bugs and Problems of
AAPP V3.0 |
|
Note:
The known portability problems of AAPP are repeated here for version
V3.0 to make it easier for the users to find out what might be relevant
in their case when using AAPP V3.0.
- On DEC Alpha, the install command definition in ~/AAPP/config/Imake.tmpl
might need to be modified to
- #ifndef InstallCmd
- #if SystemV || SystemV4
- #define InstallCmd installbsd
- #else
- #define InstallCmd installbsd
- #endif
- #endif
or, instead, add to ~/AAPP/config/alpha.cf:
#define InstallCmd installbsd
- On some systems, the install command definition in
~/AAPP/config/Imake.tmpl might need to be modified to
- #ifndef InstallCmd
- #if SystemV || SystemV4
- #define InstallCmd install
- #else
- #define InstallCmd install
- #endif
- #endif
- On some systems, only the install command "install" was
available which was not compatible with several imake
configuration files. Following modifications had to be
made to get the installation running:
- Modified ~/AAPP/config/Imake.tmpl
- by replacing line 338 with
- #define InstallCmd install
- Modified in ~/AAPP/config/Imake.rules and ~/AAPP/config/pbeuk.rules
all lines containing
$(INSTALL) -c ... directory
to
$(INSTALL) -f directory ...
- On some systems, problems occurred with versions of
the install command file that did not support all the
functionality used in AAPP
Add at the beginning of the PATH variable in ATOVS_ENV the pathname
of the directory that contains a proper install command file
- Several modules contain lines going beyond character
72 causing on some systems compilation problems
- Modify FortranFlags in your platform specific configuration
file ~/AAPP/config/*.cf, e.g.
- sun.cf: #define FortranFlags -O3 -e
- hp.cf: #define FortranFlags +e +es
- alpha.cf #define FortranFlags -C -O5 -extend_source
- ibm.cf #define FortranFlags xlf -qfixed=120
- sgi.cf #define FortranFlags -col120 -NC200
- On IBM systems, the compiler might not understand
the instruction #include
- Replace in all source modules the instruction #include
.... with
include .... (starting in column 7)
- On some systems, problems occurred with the opening
of unnamed files.
- in the OPEN statements, STATUS=NEW (=OLD) need to
be modified to
- OPEN(...,STATUS=UNKNOWN,...) or
- insert in the OPEN statements for unnamed files
- FILE=fort.xx or FILE=ftnxx according to the conventions
of the Fortran compiler being used
with xx = unit number linked to the file on script level
- Some compilers do not understand the F77 extension
of applying .AND. and .OR. to integers for the effect
of masking
- Replacing arg1 .AND. arg2 by IAND(arg1,arg2) and
.OR. by IOR(.,.) might help
- Some systems do not know the routines idate, ltime,
hostnm, jmod
- Linking the appropriate library by modifying FortranFlags
in your platform specific configuration file ~/AAPP/config/*.cf
might help, e.g.
- hp.cf: #define FortranFlags +e +es +U77
- or replacing the routines by idate_ in ~/AAPP/sources/libs/libf7tp/gdg.F,
ltime_ in ~/AAPP/sources/libs/libf7tp/ghg.F, hostnm_ in
~/AAPP/sources/libs/libf7/ml_hd.F, mod in ~/AAPP/sources/calibration/amsuacl
respectively
- Certain systems have a problem with the Fortran statement "type",
e.g. in ~/AAPP/sources/decommutation/decommutation/amsout.F
and ~/AAPP/sources/calibration/amsubcl/ambseru.F
- Some systems do not understand intrinsic trigonometric
functions with input in degree, e.g. SIND
Write external functions that convert degree to radian and call then
the standard trigonometrical function, i.e. SIN
- On SGI, line 140 of ~/AAPP/sources/decommutation/decommutation/chk1btime.F
might cause an unrecoverable error and, additionally,
the variable filename might not be initialised
- Modify line 140 to
- write(txt,'("input file is ",a)') filename
- Insert before line 139
- Insert after line 118 (line number of the original
module)
- Insert after line 71
- character*1 char_init ! initial. string for
character variable
- Problems occurred in scripts with string operators
of the following kind: variable=${variable='default'} .
If variable did not already exist the default value was
not assigned to variable
Modify the command lines by removing the quotes to: variable=${variable=default}
- In a few cases the installation of the man pages did
not work
- Comment out the install commands "InstallfManpage(...)" of
the Imakefile files in the corresponding subdirectories
of the directory ~/AAPP/sources by bracketing them
with /* and */ and install the manpages manually (don't
forget to update MANPATH, see Installation Guide Chapter
3.5):
- Create manually following directories ~/AAPP/man/man1,
~/AAPP/man/man3, ~/AAPP/man/man5
Copy the man page files *.1, *.3, *.5 to the directories man1, man3,
man5 respectively, e.g. ~/AAPP/sources/navigation/navtool/libnavtool.3
to man3
- Forecast data files are not provided in AAPP V2.0.
Temperatures at 1000hPa and Geopotential at 1000hPa are
required by libmaia. Before using your own forecast data
check that their format is consistent with the format
expected by routine lec_previ.F in ~/AAPP/sources/libs/libmaia_2.1.
If required
- adapt lec_previ.F to your forecast data file format
or
map your forecast data onto the format expected by lec_previ.F
- Compilers may have a problem with non-standard code
in ~/AAPP/sources/calibration/amsuacl/amaclin.F
- Replace line 112 of amaclin.F with
- if (ama_clflg.eq.1 .or. ama_lflg.eq.1) then
|
List of Known Bugs and Problems of
AAPP V2.0 |
|
Note:
The known portability problems of AAPP are repeated here for version
V2.0 to make it easier for the users to find out what might be relevant
in their case when using AAPP V2.0.
- Several modules contain lines going beyond character
72 causing on some systems compilation problems
- Modify FortranFlags in your platform specific configuration
file ~/AAPP/config/*.cf, e.g.
- sun.cf: #define FortranFlags -O3 -e
- hp.cf: #define FortranFlags +e +es
- alpha.cf #define FortranFlags -C -O5 -extend_source
- ibm.cf #define FortranFlags xlf -qfixed=120
- sgi.cf #define FortranFlags -col120 -NC200
- In a few cases the installation of the man pages did
not work
- Comment out the install commands "InstallfManpage(...)" of
the Imakefile files in the corresponding subdirectories
of the directory ~/AAPP/sources by bracketing them
with /* and */ and install the manpages manually (don't
forget to update MANPATH, see Installation Guide Chapter
3.5):
- Create manually following directories ~/AAPP/man/man1,
~/AAPP/man/man3, ~/AAPP/man/man5
- Copy the man page files *.1, *.3, *.5 to the directories
man1, man3, man5 respectively, e.g. ~/AAPP/sources/navigation/navtool/libnavtool.3
to man3
- On SGI, line 129 of ~/AAPP/sources/decommutation/decommutation/chk1btime.F
might cause an unrecoverable error and, additionally,
the variable filename might not be initialised
- Modify line 129 to
- write(txt,'("input file is ",a)') filename
- Insert before line 128
- Insert after line 113 (line number of the original
module)
- Insert after line 69
- character*1 char_init ! initial. string for
character variable
- On DEC Alpha, the install command definition in ~/AAPP/config/Imake.tmpl
might need to be modified to
- #ifndef InstallCmd
- #if SystemV || SystemV4
- #define InstallCmd installbsd
- #else
- #define InstallCmd installbsd
- #endif
- #endif
or, instead, add to ~/AAPP/config/alpha.cf:
- #define InstallCmd installbsd
- On some systems, problems occurred with versions of
the install command file that did not support all the
functionality used in AAPP
- Add at the beginning of the PATH variable in ATOVS_ENV
the pathname of the directory that contains a proper
install command file
- On some systems, problems occurred with the opening
of unnamed files.
- in the OPEN statements, STATUS=NEW (=OLD) need to
be modified to
- OPEN(...,STATUS=UNKNOWN,...) or
- insert in the OPEN statements for unnamed files
- FILE=fort.xx or FILE=ftnxx according to the conventions
of the Fortran compiler being used
with xx = unit number linked to the file on script level
- Problems occurred in scripts with string operators
of the following kind: variable=${variable='default'} .
If variable did not already exist the default value was
not assigned to variable
- Modify the command lines by removing the quotes
to: variable=${variable=default}
- Some compilers do not understand the F77 extension
of applying .AND. and .OR. to integers for the effect
of masking
- Replacing arg1 .AND. arg2 by IAND(arg1,arg2) and
.OR. by IOR(.,.) might help
- Some systems do not know the routines idate, ltime,
hostnm, jmod
- Linking the appropriate library by modifying FortranFlags
in your platform specific configuration file ~/AAPP/config/*.cf
might help, e.g.
- hp.cf: #define FortranFlags +e +es +U77
- or replacing the routines by idate_ in ~/AAPP/sources/libs/libf7tp/gdg.F,
ltime_ in ~/AAPP/sources/libs/libf7tp/ghg.F, hostnm_ in
~/AAPP/sources/libs/libf7/ml_hd.F, mod in ~/AAPP/sources/calibration/amsuacl
respectively
- Certain systems have a problem with the Fortran statement "type",
e.g. in ~/AAPP/sources/decommutation/decommutation/amsout.F
and ~/AAPP/sources/calibration/amsubcl/ambseru.F
- Some systems do not understand the OPEN statement
parameter READONLY, e.g. in ~/AAPP/sources/preproc/avh2hirs/IOH1DM.F
and ~/AAPP/sources/preproc/avh2hirs_atovs/IOH1D.F
- Change READONLY to ACTION="READ"
- On a system with a version of make that does not have
a rule for dealing with Fortran files with the .F suffix
following modifications helped:
- Modified ~/AAPP/config/Imake.tmpl
- by adding *.f at the end of line 481 of ~/AAPP/config/Imake.tmpl
- by adding some flags in line 307
- #define FortranFlags -qintlog -qfixed=132 -g
/**/
- Modified ~/AAPP/config/pbeuk.rules
- by replacing the original line 50 and 61 with
- $(CPP) -C -P $(INCLUDES) $*.F>$*.f @@\
- $(FC) -c $(FCFLAGS) $*.f -o $@ @@\
- @@\
- .f.o: @@\
- $(FC) -c $(FCFLAGS) $*.f
- by replacing the original line 39 with
- $(CPP) -C -P $(INCLUDES) $*.F>$*.f @@\
- $(FC) -c $(FCFLAGS) $(BIGENDIANFL) $(@:.o=.f)
-o $@ @@\
- @@\
- .f.o: @@\
- $(FC) -c $(FCFLAGS) $*.f
- Some systems do not understand intrinsic trigonometric
functions with input in degree, e.g. SIND
- Write external functions that convert degree to
radian and call then the standard trigonometrical function,
i.e. SIN
- Forecast data files are not provided in AAPP V2.0.
Temperatures at 1000hPa and Geopotential at 1000hPa are
required by libmaia. Before using your own forecast data
check that their format is consistent with the format
expected by routine lec_previ.F in ~/AAPP/sources/preproc/avh2hirs
and avh2hirs_atovs. If required
- adapt lec_previ.F to your forecast data file format
or
- map your forecast data onto the format expected
by lec_previ.F
To select the forecast data closest to the satellite overpass
- replace line 49 of ~/AAPP/sources/preproc/avh2hirs/avh2hirs.ksh
by an algorithm that selects the forecast data closest
to the orbit time of the HRPT data and stores the date
and time value of the forecast data validity time in
the variables YYYY, MM, DD and HH
- On a HP machine, only the install command "install" was
available which was not compatible with several imake
configuration files. Following modifications had to be
made to get the installation running:
- Modified ~/AAPP/config/Imake.tmpl
- by replacing line 505 with
- by replacing line 338 with
- #define InstallCmd install
- Modified in ~/AAPP/config/Imake.rules and ~/AAPP/config/pbeuk.rules
all lines containing
$(INSTALL) -c ... directory
to
- $(INSTALL) -f directory ...
- Line 35 of ~/AAPP/sources/preproc/atovin/atovin.ksh
might cause problems on some systems:
- Replace line 35 in such a case with
- ln -s ${DIR_PREPROC}/stx1_mar99corr.dat ${FORT}9
- In routine testcg.F there is a type inconsistency
in the call of the intrinsic function max0:
- Replace line 66 of ~/AAPP/sources/preproc/avh2hirs/testcg.F
and of ~/AAPP/sources/preproc/avh2hirs_atovs/testcg.F
with
- irthrs = max0(cst_sstmin,int(t4max_el-1.5*cst_ir))
- On IBM systems, the compiler might not understand
the instruction #include
- Replace in all source modules the instruction #include
.... with
- include .... (starting in column 7)
- On some systems, the script ~/AAPP/bin/atovin might
fail at line 25 due to a different behaviour of the table
translation function tr.
- Replace line 25 there and in ~/AAPP/sources/preproc/atovin/atovin
and atovin.ksh with
- echo "read $*" > atovin.input
|
List of Known Bugs and Problems of
AAPP V1.0 - V1.3 |
|
Note:
Entries 11, 12, 22, and 28 have been updated on 18/08/1999
Entries 38 - 43 have been added on 18/08/1999
Entry 44 and 45 have been added on 14/10/1999
Entry 46 has been added on 26/10/1999
Entry 47 has been added on 09/11/1999
Note:
Some of the bugs in this list have been corrected with the update release
V1.3. It is intended to deliver all corrections in code form with the
next CD-ROM release V2.0.
- Installation script INST_1 is wrong in line 52: FORT='
'
- Typo in line 13 of ~/AAPP/sources/calibration/avhrcl/Imakefile
at avh_cpar.o avh_get.o avhsetu.o\
- Modify to: avh_cpar.o avh_get.o avhsetu.o \
- Several modules contain lines going beyond character
72 causing on some systems compilation problems
- Modify FortranFlags in your platform specific configuration
file ~/AAPP/config/*.cf, e.g.
- sun.cf: #define FortranFlags -O3 -e
- hp.cf: #define FortranFlags +e +es
- alpha.cf #define FortranFlags -C -O5 -extend_source
- In a few cases the installation of the man pages did
not work
- Comment out the install commands "InstallfManpage(...)" of
the Imakefile files in the corresponding subdirectories
of the directory ~/AAPP/sources by bracketing them
with /* and */ and install the manpages manually (don't
forget to update MANPATH, see Installation Guide Chapter
3.5):
- Create manually following directories ~/AAPP/man/man1,
~/AAPP/man/man3, ~/AAPP/man/man5
- Copy the man page files *.1, *.3, *.5 to the directories
man1, man3, man5 respectively, e.g. ~/AAPP/sources/navigation/navtool/libnavtool.3
to man3
- On SGI, line 129 of ~/AAPP/sources/decommutation/decommutation/chk1btime.F
might cause an unrecoverable error and, additionally,
the variable filename might not be initialised
- Modify line 129 to
- write(txt,'("input file is ",a)') filename
- Insert before line 128
- Insert after line 113 (line number of the original
module)
- Insert after line 69
- character*1 char_init ! initial. string for
character variable
- There is a minor bug in error reporting in chk1btime.F
- Modify line 219 of ~/AAPP/sources/decommutation/decommutation/chk1btime.F
to
- call ml_wti('error','unknown 1B data_type',data_type)
- In module ~/AAPP/sources/navigation/ephtrack/tracking.F
the variable dist is declared twice
- One of the declarations can be commented out
- On DEC Alpha, the install command definition in ~/AAPP/config/Imake.tmpl
might need to be modified to
- #ifndef InstallCmd
- #if SystemV || SystemV4
- #define InstallCmd installbsd
- #else
- #define InstallCmd installbsd
- #endif
- #endif
or, instead, add to ~/AAPP/config/alpha.cf:
- #define InstallCmd installbsd
- On SUN and DEC, touch commands might need to be added
in following scripts
- Insert in ~/AAPP/sources/preproc/atovin/atovin.ksh
before line 40:
- touch hrsn.l1c
- touch aman.l1c
- touch ambn.l1c
- touch msun.l1c
- Insert in ~/AAPP/sources/preproc/atovpp/atovpp.ksh
before line 18:
- The scripts can be activated by running INST_1,
option 2 or by copying them manually to ~/AAPP/bin
named atovin and atovpp
- On some systems, problems occurred with versions of
the install command file that did not support all the
functionality used in AAPP
- Add at the beginning of the PATH variable in ATOVS_ENV
the pathname of the directory that contains a proper
install command file
- On some systems, problems occurred with the opening
of unnamed files.
- Maybe the touch commands mentioned above help (to
be tested) or
- in the OPEN statements, STATUS=NEW (=OLD) need to
be modified to
- OPEN(...,STATUS=UNKNOWN,...) or
- insert in the OPEN statements for unnamed files
- FILE=fort.xx or FILE=ftnxx according to the conventions
of the Fortran compiler being used
with xx = unit number linked to the file on script level
- If the test case for NOAA-15 fails with an error message
from the satpost program saying that the time gap in
the TBUS data file is too large
- Ingest the TBUS message of 19980911 by running script
tbusing before starting the processing chain as described
in readme.1st and the Installation Guide, ch 5.1, step
ii)
- Problems occurred in scripts with string operators
of the following kind: variable=${variable='default'} .
If variable did not already exist the default value was
not assigned to variable
- Modify the command lines by removing the quotes
to: variable=${variable=default}
- Some compilers do not understand the F77 extension
of applying .AND. and .OR. to integers for the effect
of masking
- Replacing arg1 .AND. arg2 by IAND(arg1,arg2) and
.OR. by IOR(.,.) might help
- Some systems do not know the routines idate, ltime,
hostnm, jmod
- Linking the appropriate library by modifying FortranFlags
in your platform specific configuration file ~/AAPP/config/*.cf
might help, e.g.
- hp.cf: #define FortranFlags +e +es +U77
- or replacing the routines by idate_ in ~/AAPP/sources/libs/libf7tp/gdg.F,
ltime_ in ~/AAPP/sources/libs/libf7tp/ghg.F, hostnm_ in
~/AAPP/sources/libs/libf7/ml_hd.F, mod in ~/AAPP/sources/calibration/amsuacl
respectively
- There is a slight Year 2000 compliance problem: data
of the current millennium (19yy) can not be processed
in the coming millennium (20xx) since the construction
of the time stamp of the data to be processed makes use
of the UNIX date function to derive the two century digits
- A quick and dirty solution for this special problem
would be to replace for such runs line 78 of script
decommutation.ksh by:
A proper solution will be provided in time
- Module ~/AAPP/sources/calibration/avhrcl/avhsetu.F
contains CR, LF at the end of each line causing compilation
problems on some systems
- ASCII FTP transfer of the module from PC to UNIX
workstation replaces CR, LF with LF
- Certain systems have a problem with the Fortran statement "type",
e.g. in ~/AAPP/sources/decommutation/decommutation/amsout.F
and ~/AAPP/sources/calibration/amsubcl/ambseru.F
- Some systems do not understand the OPEN statement
parameter READONLY, e.g. in ~/AAPP/sources/preproc/avh2hirs/IOH1DM.F
and ~/AAPP/sources/preproc/avh2hirs_atovs/IOH1D.F
- Change READONLY to ACTION="READ"
- In several routines, there is an extra "," between
the write(...) and the list of variables, e.g. in ~/AAPP/sources/calibration/hirscl/h_calibcoeffile.F
line 102:
& I2,1X,I4,1X,I3)'),versnb,versyr,versday
- Modify line 102 to
- & I2,1X,I4,1X,I3)') versnb,versyr,versday
Other affected modules are ~/AAPP/sources/calibration/hirscl/h_interslop.F
+ h_linecount.F + h_scanpos.F + h_testcoeffile.F and ~/AAPP/sources/calibration/msucl/m_calibcoeffile.F
+ m_testcoeffile.F
- On a system with a version of make that does not have a rule for
dealing with Fortran files with the .F suffix following modifications
helped:
- Modified ~/AAPP/config/Imake.tmpl
- by adding *.f at the end of line 481 of ~/AAPP/config/Imake.tmpl
- by adding some flags in line 307
- #define FortranFlags -qintlog -qfixed=132 -g /**/
- Modified ~/AAPP/config/pbeuk.rules
- by replacing the original line 50 and 61 with
- $(CPP) -C -P $(INCLUDES) $*.F>$*.f @@\
- $(FC) -c $(FCFLAGS) $*.f -o $@ @@\
- @@\
- .f.o: @@\
- $(FC) -c $(FCFLAGS) $*.f
- by replacing the original line 39 with
- $(CPP) -C -P $(INCLUDES) $*.F>$*.f @@\
- $(FC) -c $(FCFLAGS) $(BIGENDIANFL) $(@:.o=.f) -o $@ @@\
- @@\
- .f.o: @@\
- $(FC) -c $(FCFLAGS) $*.f
- In ~/AAPP/sources/decommutation/decommutation/amsuqc.F the definition
of COMMON/gqc/ is not consistent with the definition in other routines
(contains additional variable timco)
- Modify line 87 of routine amsuqc.F to
- COMMON/gqc/timok,partip,err_frsync,nb_frsync,err_auxsync,
- The format specification in line 84 of ~/AAPP/sources/libs/libf7ml/ml_wti.F
caused a core dumped on one system
- It helped to modify line 84 to
- logform = "(a,1x,a,' : ',a,1x,i8)
- Some systems do not understand intrinsic trigonometric functions
with input in degree, e.g. SIND
- Write external functions that convert degree to radian and call
then the standard trigonometrical function, i.e. SIN
- In line 11 of module ~/AAPP/include/maia.h a latitude processing
area is specified by the parameters latmin=20N and latmax=90N (longitude
is not restricted and the parameters specified in line 12 are not used)
- Several parameters of ~/AAPP/include/maia.h need to be modified
if local HRPT readout data of a different area are to be processed
- line 11: parameter (latmin= xx., latmax= yy.)
- line 15: parameter (lonref = ll.) ! allowed values
are [-180. , 180.]
with ll = longitude of local HRPT station (rounded)
- line 27: parameter (max_nbl_alb=zz)
- line 32: parameter (max_nbl_sst=zz)
with zz = (yy - xx) / 0.15 rounded up
- Forecast data files are not provided in AAPP V1.0. Temperatures
at 1000hPa and Geopotential at 1000hPa are required by libmaia. Before
using your own forecast data check that their format is consistent
with the format expected by routine lec_previ.F in ~/AAPP/sources/preproc/avh2hirs
and avh2hirs_atovs. If required
- adapt lec_previ.F to your forecast data file format or
- map your forecast data onto the format expected by lec_previ.F
To select the forecast data closest to the satellite overpass
- replace line 49 of ~/AAPP/sources/preproc/avh2hirs/avh2hirs.ksh
by an algorithm that selects the forecast data closest to the orbit
time of the HRPT data and stores the date and time value of the forecast
data validity time in the variables YYYY, MM, DD and HH
- A scaling factor of 10^6 is applied to the lat/lon values in the
file MSUN.L1C rather than 10^4 like in the other L1C files
- Modify module ~/AAPP/sources/preproc/atovin/inmget.F
- by removing *100 from lines 164 and 165
- by removing line 163
- Apparently the determination of which endian type the machine is
does not always work properly
- Insert after line 38 of ~/AAPP/sources/det_endian.ksh
- ed -s ${HOME}/ATOVS_ENV << EOFF
- /FORM_TYPE=
- d
- i
- FORM_TYPE=BIG_ENDIAN
- .
- w
- EOFF
- else
- echo " Determination of endian type failed !!!"
- Replace line 37 with
- elif grep 825373492 det_endian.out > /dev/null
- then
- Modify line 26 to
- if grep 875770417 det_endian.out > /dev/null
- Modify line 9 to
Note that this check depends on ASCII code being used; no installation
of AAPP on EBCDIC machines (IBM mainframes) is known yet
- The array filling loop for hrs1c_filler in inhget.h is not consistent
with the array declaration in hrs1c.h
- Modify line 247 of ~/AAPP/sources/preproc/atovin/inhget.F to
- The definition of variable BYTW is not consistent in genqc.F + parity.F
- Modify module ~/AAPP/sources/decommutation/decommutation/genqc.F
to
- There is an array indexing error in avh_cal.F
- Modify lines 86 and 87 of ~/AAPP/sources/calibration/avhrcl/avh_cal.F
to
- sb_k2(i,sblock)=sb_k2(i,last_sblock)
- sb_k3(i,sblock)=sb_k3(i,last_sblock)
- Indexing of arrays a2_coldcal, ama2_coldcal, a2_warmcal, ama2_warmcal
in amasetu.F should be 6 instead of 30
- Modify lines 277 to 282 of ~/AAPP/sources/calibration/amsuacl/amasetu.F
to
- do 50 i=1,30
- a1_coldcal(i,scn) = jmod(ama1_coldcal(i)+65536,65536)
- a1_warmcal(i,scn) = jmod(ama1_warmcal(i)+65536,65536)
- 50 continue
- do 51 i=1,6
- a2_coldcal(i,scn) = jmod(ama2_coldcal(i)+65536,65536)
- a2_warmcal(i,scn) = jmod(ama2_warmcal(i)+65536,65536)
- 51 continue
- Indexing wrong of array spcorr in ama_updt.F
- Modify line 103 of ~/AAPP/sources/calibration/amsuacl/ama_updt.F
- & ispvw(instarr(i),ama_h_scnlin)+1)*1000)
- In ~/AAPP/sources/calibration/avhrcl/avh_cpar.F line 184 an attempt
is made to read real values into integer ir_centwa
- Modify line 36 of ~/AAPP/include/cavh_cpi.h to
- integer it1(4), it2(4)
- real ir_centwa(3,4)
- The record length of the HIRS l1d file is not correct
- Modify line 34 of ~/AAPP/include/hrs1dm.h to
- parameter (hrs_1drecl = 2818*4)! - number of bytes
- Missing brightness temperatures are not detected correctly in ~/AAPP/sources/preproc/atovpp/ppapcp.F
- Replace line 125 with
- IF (T1.GT.0 .AND. T2.GT.0 ) THEN
- Replace line 112 with
- IF (T1.GT.0 .AND. T15.GT.0 ) THEN
- Replace lines 94 and 95 with
- IF (T1.GT.0 .AND. T2.GT.0 .AND. T3.GT.0 .AND. T15.GT.0 ) THEN
- On a HP machine, only the install command "install" was available
which was not compatible with several imake configuration files. Following
modifications had to be made to get the installation running:
- Modified ~/AAPP/config/Imake.tmpl
- by replacing line 505 with
- by replacing line 338 with
- #define InstallCmd install
- Modified in ~/AAPP/config/Imake.rules and ~/AAPP/config/pbeuk.rules
all lines containing
$(INSTALL) -c ... directory
to
- $(INSTALL) -f directory ...
- If it happens (and it can happen in noisy parts of the data) that
the HIRS counts in a FOV are zero in all channels then routine ~/AAPP/sources/preproc/atovin/inhprc.F
produces erraneous, warm brightness temperatures from those zero counts:
- Modify line 265 of inhprc.F
- IF(ABS(counts).LT.9999. .AND. .NOT.allzero) THEN
- Modify line 227
- IF(ABS(counts).LT.9999. .AND. .NOT.allzero) THEN !
(check data)
- Insert before line 220
- allzero=.TRUE.
- DO i=1,20
- allzero=allzero.AND.(Hcounts(i,fov).EQ.0)
- ENDDO
- Insert before line 90
- INTEGER i
- LOGICAL allzero
- In the AAPP update release V1.1 there is an indexing error in routine
~/AAPP/decommutation/decommutation/anaget.F:
- Modify line 89 of V1.1/anaget.F to
- amvalid(62+stx_key(i)) = 0 ! Invalid data flag set
to zero
- The effective difference of the azimuth angles of sun and satellite
is incorrectly calculated when the absolute value of the difference
is greater than 180 degrees (pi):
- Modify line 230 of ~/AAPP/sources/navigation/navnoaa/nav_1blin.F
to
- if ( difazi.gt.pi ) difazi = 2*pi - difazi
- Routine ~/AAPP/sources/preproc/atovpp/surfelev.F does not properly
access the land/sea map file ~/AAPP/data/preproc/mapbitls.dat
- Modify line 272 of surfelev.F to
- sumbox = sumbox + 2*xbox + 1 ! count number of points
in box
- Replace line 252 with
- DO latbox = MAX(Lats(ispot) -ybox/6.,-90.) , MIN(Lats(ispot)
+ybox/6.,90.)
- jlat = NINT(latbox*6.)
- IF (jlat.LT.0) jlat = mlat - jlat
- jlat = MIN (jlat, nrec-1) ! 90S becomes 89.83S
- Replace line 241 with
- IF (ilat.LT.0) ilat = mlat - ilat
- Modify line 235 to
- & .AND. ABS(Lons(ispot)) .LE. 180. ) THEN ! check lat/lon
are ok
- Insert after line 226
- Insert after line 212
- Insert after line 126
- REAL latbox ! latitude of point within box
- On little endian machines, not only the HRPT input files need be
byte-swapped as described in the Installation Guide but also some other
files:
- the climatological data files atlas_albedo... and atlas_sst...
in ~/AAPP/data/preproc/atlas/:
Since the files are stored in the directory in zipped format after
the installation of AAPP they have to be manually unzipped before they
can be byte-swapped (can be done using the dd comment as described
for the HRPT input files)
- the land/sea bitmap file ~/AAPP/data/preproc/mapbitls.dat:
This file can not be swapped using the dd command since the 4 bytes
of each word (4 bytes) of the file have to be swapped.
Note: Setting the compiler option "BIGENDIANFL = -convert big_endian",
if the compiler allows this, makes the manual byte swaps unnecessary.
- Multiple missing or bad AMSU lines cause lines after the gap to
be misplaced due to bugs in routine ~/AAPP/sources/decommutation/decommutation/atovdc.F:
- Modify line 591 to
- Modify line 426 to
- amf=mod(exp_mis_amf+imf-1,80)
- Insert after line 286
- exp_mis_amf=mod(amf_start+(k-orbmf_amf_start)/3*5,80)
- Modify line 188 to
- integer orbmf_amf_start,amf_start,exp_amf,exp_mis_amf
- Line 35 of ~/AAPP/sources/preproc/atovin/atovin.ksh of update release
V1.3 might cause problems on some system:
- Replace line 35 in such a case with
- ln -s ${DIR_PREPROC}/stx1_mar99corr.dat ${FORT}9
- In module ~/AAPP/sources/calibration/avhrcl/avh_put.F of update
release V1.3 the initialisation of the array avh_filler2 is not well
placed:
- Move lines 117 to 119 after line 263
- In module ~/AAPP/sources/tools/hrpidf.F of update release V1.3 the
HRPT file is opened without taking into account whether the system
counts the record length in units of 1 or 4 bytes:
- Replace in line 108
- Insert before line 59
- In module ~/AAPP/sources/calibration/amsuacl/ama_updt.F wrong indexing
for array SPCORR leads to wrong assignment of space view corrections.
- Replace line 102 with
- ama_h_bias(4*(i-1)+4) = nint(spcorr(i,
|
|
|