Hello, everyone.
I was trying to use SA to generate the OCEAN file for CMAQ. But I ran into this error. I think maybe there is something wrong with reading polar stereographic projection in the SA.
Here is part of my log file:
WARNING: Using from definition: argc=9
WARNING: +proj=stere
WARNING: +a=6370000.0
WARNING: +b=6370000.0
WARNING: +lat_ts=1.000000
WARNING: +lat_0=90
WARNING: +lon_0=60.000000
WARNING: +k_0=-156.795000
WARNING: +x_0=-156.795000
WARNING: +y_0=70.000000
WARNING: projection initialization failure: k <= 0
WARNING: ERROR: in setting projection pj_init
ERROR in ./allocator.exe: Error setting PROJ.4 output projection. Exiting…
And this is my GRIDDESC:
’ ’
‘Pol_71N_BRW’
6 1.000 60.000 -156.795 -156.795 70.000
’ ’
‘2019_BRW’
‘Pol_71N_BRW’ -328500.000 -2507101.750 3000.000 3000.000 219 180 1
’ ’
I found there may be some mistakes in Spatial-Allocator/src/vector_32bits/mims_spatl_proj.c (from line 213 to line 228). Here is what I thought the right code, and what are in the comment are original code:
sprintf(mesg,“setting polar stereographic parameters”);
MESG(mesg);
sprintf(args[0],“%s”,“+proj=stere”);
sprintf(args[i++],“%s=%lf”,“+lat_ts”,map->p_bet); //p_alp
if (map->p_alp > 0.0)
{ //north
sprintf(args[i++],“%s=%s”,“+lat_0”, “90”);
}
if (map->p_alp < 0.0)
{ //south
sprintf(args[i++],“%s=%s”,“+lat_0”, “-90”);
}
sprintf(args[i++],“%s=%lf”,“+lon_0”,map->p_gam; //p_bet
sprintf(args[i++],“%s=%lf”,“+k_0”,map->p_alp); //p_gam, should be normally 1.0
sprintf(args[i++],“%s=%lf”,“+x_0”, map->xcent);
sprintf(args[i++],“%s=%lf”,“+y_0”, map->ycent);
I tried to change the code and recompile it, but I had trouble to generate the *.exe in the ${BIN}.
I am not sure if what I modified is correct. If so, could anyone update it to the new version of SA?
Thank you in advance.