Skip to content

Commit b0e29bd

Browse files
committed
x->lon,y->lat for latlon grids
1 parent 70c7399 commit b0e29bd

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

src/common/fldout_nc.f90

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -842,11 +842,19 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
842842
val, gparam2(6), gparam_hres(8)
843843
real(kind=real32) :: llparam(6) = [1.0, 1.0, 1.0, 1.0, 0.0, 0.0]
844844

845-
call check(nf90_def_var(iunit, "x", &
846-
NF90_FLOAT, xdimid, x_varid))
847-
call check(nf90_def_var(iunit, "y", &
848-
NF90_FLOAT, ydimid, y_varid))
849-
dimids = [xdimid, ydimid]
845+
if (igtype == 2) then
846+
call check(nf90_def_var(iunit, "lon", &
847+
NF90_FLOAT, xdimid, x_varid))
848+
call check(nf90_def_var(iunit, "lat", &
849+
NF90_FLOAT, ydimid, y_varid))
850+
dimids = [xdimid, ydimid]
851+
else
852+
call check(nf90_def_var(iunit, "x", &
853+
NF90_FLOAT, xdimid, x_varid))
854+
call check(nf90_def_var(iunit, "y", &
855+
NF90_FLOAT, ydimid, y_varid))
856+
dimids = [xdimid, ydimid]
857+
endif
850858

851859
call check(nf90_def_var(iunit, "projection", &
852860
NF90_SHORT, varid=proj_varid))
@@ -863,8 +871,12 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
863871
case(2) !..geographic
864872
call check(nf90_put_att(iunit,x_varid, "units", &
865873
TRIM("degrees_east")))
874+
call check(nf90_put_att(iunit,x_varid, "standard_name", &
875+
TRIM("longitude")))
866876
call check(nf90_put_att(iunit,y_varid, "units", &
867877
TRIM("degrees_north")))
878+
call check(nf90_put_att(iunit,y_varid, "standard_name", &
879+
TRIM("latitude")))
868880
call check(nf90_put_att(iunit,proj_varid, &
869881
"grid_mapping_name", TRIM("latitude_longitude")))
870882
gparam_hres(3) = gparam(3)/output_resolution_factor
@@ -991,6 +1003,7 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
9911003
call check(nf90_put_var(iunit, y_varid, yvals))
9921004
call check(nf90_sync(iunit))
9931005

1006+
!.... create latitude/longitude variable-values
9941007
call check(nf90_def_var(iunit, "longitude", &
9951008
NF90_FLOAT, dimids, lon_varid))
9961009
call check(NF90_DEF_VAR_DEFLATE(iunit, lon_varid, 1,1,1))
@@ -1002,11 +1015,9 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
10021015
TRIM("degrees_east")))
10031016
call check(nf90_put_att(iunit,lat_varid, "units", &
10041017
TRIM("degrees_north")))
1005-
10061018
call check(nf90_sync(iunit))
10071019

1008-
!.... create latitude/longitude variable-values
1009-
if (igtype .eq. 2) then
1020+
if (igtype == 2) then
10101021
! exact
10111022
do j=1,ny*output_resolution_factor
10121023
do i=1,nx*output_resolution_factor
@@ -1113,8 +1124,13 @@ subroutine initialize_output(filename, itime, ierror)
11131124
call check(nf90_create(filename, ior(NF90_NETCDF4, NF90_CLOBBER), iunit), filename)
11141125
call check(nf90_def_dim(iunit, "time", NF90_UNLIMITED, dimid%t), &
11151126
"t-dim")
1116-
call check(nf90_def_dim(iunit, "x", nx*output_resolution_factor, dimid%x), "x-dim")
1117-
call check(nf90_def_dim(iunit, "y", ny*output_resolution_factor, dimid%y), "y-dim")
1127+
if (igtype == 2) then
1128+
call check(nf90_def_dim(iunit, "lon", nx*output_resolution_factor, dimid%x), "x-dim")
1129+
call check(nf90_def_dim(iunit, "lat", ny*output_resolution_factor, dimid%y), "y-dim")
1130+
else
1131+
call check(nf90_def_dim(iunit, "x", nx*output_resolution_factor, dimid%x), "x-dim")
1132+
call check(nf90_def_dim(iunit, "y", ny*output_resolution_factor, dimid%y), "y-dim")
1133+
endif
11181134
call check(nf90_def_dim(iunit, "k", nk-1, dimid%k), "k-dim")
11191135
call check(nf90_def_dim(iunit, "nocomp", nocomp, dimid%nocomp), "nocomp-dim")
11201136
call check(nf90_def_dim(iunit, "compnamelenmax", len(def_comp(1)%compname), dimid%maxcompname), "maxcompname-dim")

0 commit comments

Comments
 (0)