Bug in vector/barb direction

Takashi Kagimoto kagimoto at JAMSTEC.GO.JP
Thu Oct 13 02:49:32 EDT 2005


Hello Masatake,

   The problem that you have, as you explained, happens
because two internal parameters, adjtyp and lonref, are
not set to be correct values for a 2-D plot. As you may
know, these parameters can be changed only if you make
a longitude-latitude plot. (see line 1912-1914 in gagx.c
of GrADS v1.8.sl10). As far as I understand, there is no
way without modifying the code.

   An easy remedy is to

    (1) create a function to re-initialize the above
      two parameters,
    (2) and call the function in gas2d() if 2-D plot does
      not require the map level scaling.

I created the patch file for the above modification,
which is attached below. How to apply it is as follows,

  % cd src180
  % patch -p0 < patch-mproj

After that what you need to do is re-build executable
files with do_all.sh. I'm sure that the problem that
you have is solved with the modification using the test
suite that you provided in the previous message. However
I'm not sure whether or not this modification IS harmless
even in other functions. Thus please apply it with your
own risk.

Best regard
----
Takashi Kagimoto
Frontier Research Center for Global Change/JAMSTEC
3173-25 Showamachi, Kanazawa-ku, Yokohama, Kanagawa 236-0001, JAPAN
(tel) +81-45-778-5516 (fax) +81-45-778-5707
----
-------------- next part --------------
--- gagx.c.orig 2001-10-18 12:00:50.000000000 +0900
+++ gagx.c      2005-10-13 15:14:07.000000000 +0900
@@ -1914,6 +1914,7 @@
     if (imap) gawmap(pcm, 1);   /* Draw map if requested */
   }
   else {
+    init_gxwmap();              /* Initialize internal parameters (2005/10/13 T.Kagimoto) */
     if (pcm->paflg) {
       pcm->xsiz1 = pcm->pxmin;
       pcm->xsiz2 = pcm->pxmax;
--- gxwmap.c.orig       2001-10-18 12:00:56.000000000 +0900
+++ gxwmap.c    2005-10-13 15:10:30.000000000 +0900
@@ -19,6 +19,14 @@
 static int adjtyp = 0;  /* Direction adjustment class */
 static float lonref;    /* Reference longitude for adjustment */

+/* Initialize internal parameters, adjtyp and lonref
+ *                                                     (2005/10/13 T.Kagimoto)
+ */
+void init_gxwmap() {
+  adjtyp = 0;
+  lonref = 0.0;
+}
+
 void gxdmap (struct mapopt *mopt) {
 float lon[255],lat[255],xx,yy,lnmin,lnmax,ltmin,ltmax,lnfact;
 int num,i,ipen,rc,type,ilon,ilat,rnum,flag;


More information about the gradsusr mailing list