@@ -842,11 +842,19 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
842
842
val, gparam2(6 ), gparam_hres(8 )
843
843
real (kind= real32) :: llparam(6 ) = [1.0 , 1.0 , 1.0 , 1.0 , 0.0 , 0.0 ]
844
844
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
850
858
851
859
call check(nf90_def_var(iunit, " projection" , &
852
860
NF90_SHORT, varid= proj_varid))
@@ -863,8 +871,12 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
863
871
case (2 ) ! ..geographic
864
872
call check(nf90_put_att(iunit,x_varid, " units" , &
865
873
TRIM (" degrees_east" )))
874
+ call check(nf90_put_att(iunit,x_varid, " standard_name" , &
875
+ TRIM (" longitude" )))
866
876
call check(nf90_put_att(iunit,y_varid, " units" , &
867
877
TRIM (" degrees_north" )))
878
+ call check(nf90_put_att(iunit,y_varid, " standard_name" , &
879
+ TRIM (" latitude" )))
868
880
call check(nf90_put_att(iunit,proj_varid, &
869
881
" grid_mapping_name" , TRIM (" latitude_longitude" )))
870
882
gparam_hres(3 ) = gparam(3 )/ output_resolution_factor
@@ -991,6 +1003,7 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
991
1003
call check(nf90_put_var(iunit, y_varid, yvals))
992
1004
call check(nf90_sync(iunit))
993
1005
1006
+ ! .... create latitude/longitude variable-values
994
1007
call check(nf90_def_var(iunit, " longitude" , &
995
1008
NF90_FLOAT, dimids, lon_varid))
996
1009
call check(NF90_DEF_VAR_DEFLATE(iunit, lon_varid, 1 ,1 ,1 ))
@@ -1002,11 +1015,9 @@ subroutine nc_set_projection(iunit, xdimid, ydimid, &
1002
1015
TRIM (" degrees_east" )))
1003
1016
call check(nf90_put_att(iunit,lat_varid, " units" , &
1004
1017
TRIM (" degrees_north" )))
1005
-
1006
1018
call check(nf90_sync(iunit))
1007
1019
1008
- ! .... create latitude/longitude variable-values
1009
- if (igtype .eq. 2 ) then
1020
+ if (igtype == 2 ) then
1010
1021
! exact
1011
1022
do j= 1 ,ny* output_resolution_factor
1012
1023
do i= 1 ,nx* output_resolution_factor
@@ -1113,8 +1124,13 @@ subroutine initialize_output(filename, itime, ierror)
1113
1124
call check(nf90_create(filename, ior (NF90_NETCDF4, NF90_CLOBBER), iunit), filename)
1114
1125
call check(nf90_def_dim(iunit, " time" , NF90_UNLIMITED, dimid% t), &
1115
1126
" 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
1118
1134
call check(nf90_def_dim(iunit, " k" , nk-1 , dimid% k), " k-dim" )
1119
1135
call check(nf90_def_dim(iunit, " nocomp" , nocomp, dimid% nocomp), " nocomp-dim" )
1120
1136
call check(nf90_def_dim(iunit, " compnamelenmax" , len (def_comp(1 )% compname), dimid% maxcompname), " maxcompname-dim" )
0 commit comments