31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| 
								 | 
							
								subroutine deg2grid(dlong0,dlat,grid)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  real dlong                        !West longitude (deg)
							 | 
						||
| 
								 | 
							
								  real dlat                         !Latitude (deg)
							 | 
						||
| 
								 | 
							
								  character grid*6
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  dlong=dlong0
							 | 
						||
| 
								 | 
							
								  if(dlong.lt.-180.0) dlong=dlong+360.0
							 | 
						||
| 
								 | 
							
								  if(dlong.gt.180.0) dlong=dlong-360.0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								! Convert to units of 5 min of longitude, working east from 180 deg.
							 | 
						||
| 
								 | 
							
								  nlong=int(60.0*(180.0-dlong)/5.0)
							 | 
						||
| 
								 | 
							
								  n1=nlong/240                      !20-degree field
							 | 
						||
| 
								 | 
							
								  n2=(nlong-240*n1)/24              !2 degree square
							 | 
						||
| 
								 | 
							
								  n3=nlong-240*n1-24*n2             !5 minute subsquare
							 | 
						||
| 
								 | 
							
								  grid(1:1)=char(ichar('A')+n1)
							 | 
						||
| 
								 | 
							
								  grid(3:3)=char(ichar('0')+n2)
							 | 
						||
| 
								 | 
							
								  grid(5:5)=char(ichar('a')+n3)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								! Convert to units of 2.5 min of latitude, working north from -90 deg.
							 | 
						||
| 
								 | 
							
								  nlat=int(60.0*(dlat+90)/2.5)
							 | 
						||
| 
								 | 
							
								  n1=nlat/240                       !10-degree field
							 | 
						||
| 
								 | 
							
								  n2=(nlat-240*n1)/24               !1 degree square
							 | 
						||
| 
								 | 
							
								  n3=nlat-240*n1-24*n2              !2.5 minuts subsquare
							 | 
						||
| 
								 | 
							
								  grid(2:2)=char(ichar('A')+n1)
							 | 
						||
| 
								 | 
							
								  grid(4:4)=char(ichar('0')+n2)
							 | 
						||
| 
								 | 
							
								  grid(6:6)=char(ichar('a')+n3)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								end subroutine deg2grid
							 |