NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
In the latest gempak 6.10 release, dcmsfc fails to complete and write gempak output files. I've tracked the issue down to a change in the gemprm.h file that was not made in the GEMPRM.PRM file. In gemprm.h, the defined constant LLMXTM was changed to 25000 from 2000. This same change was not made in GEMPRM.PRM where the value of LLMXTM is still set to 2000. This is causing the following IF statement in dmcret.f to trigger: IF ( ( nrow .lt. 1 ) .or. ( ncol .lt. 1 ) .or. + ( (nrow + ncol) .gt. MMHDRS ) .or. + ( nprt .lt. 1 ) .or. ( nprt .gt. MMPRT ) .or. + ( MAXPRM .gt. MMPARM ) .or. ( nfhdrs .gt. MMFHDR ) .or. + ( nrkeys .gt. MMKEY ) .or. ( nckeys .gt. MMKEY ) ) + THEN iret = -5 RETURN END IF (nrow + ncol) always ends up being > MMHDRS ncol is set from maxrpt via maxtim in dcgopt.c via MMHDRS from gemprm.h MMHDRS = LLMXTM + LLSTFL, or 55000 = 25000+30000 and ncol = 54999 The MMHDRS set in dmcret.f using GEMPRM.PRM is MMHDRS = LLMXTM + LLSTFL, or 32000 = 2000+30000 Since ncol is set in a c source code file, it ends up always being larger then the MMHDRS reference in the fortran code. Changing the value of LLMXTM in GEMPRM.PRM fixes this issue though I am not sure if that is the correct solution to this issue. Gene
gembud
archives: