10 use esmf,
only : esmf_logfounderror, esmf_logerr_passthru
11 use grdvars,
only : ni,nj,ipole,angle,anglet
12 use grdvars,
only : htn,latct,lonct,latcv,loncv,latcu,loncu,latbu,lonbu
13 use grdvars,
only : xlatct,xlonct,xlatcu,xloncu
14 use grdvars,
only : latbu_vert,lonbu_vert,latcv_vert,loncv_vert
15 use grdvars,
only : latct_vert,lonct_vert,latcu_vert,loncu_vert
20 public :: checkseam, checkxlatlon, checkpoint
33 i1 = ipole(1); i2 = ipole(2)+1
37 i1 = ipole(1); i2 = ipole(2)+1
38 print *,
'HTN across seam ' 39 print *,htn(i1-2,j),htn(i2+2,j)
40 print *,htn(i1-1,j),htn(i2+1,j)
41 print *,htn(i1, j),htn(i2, j)
42 print *,htn(i1+1,j),htn(i2-1,j)
43 print *,htn(i1+2,j),htn(i2-2,j)
45 print *,
'latCv across seam ' 46 print *,latcv(i1-2,j),latcv(i2+2,j)
47 print *,latcv(i1-1,j),latcv(i2+1,j)
48 print *,latcv(i1, j),latcv(i2, j)
49 print *,latcv(i1+1,j),latcv(i2-1,j)
50 print *,latcv(i1+2,j),latcv(i2-2,j)
52 print *,
'lonCv across seam ' 53 print *,loncv(i1-2,j),loncv(i2+2,j)
54 print *,loncv(i1-1,j),loncv(i2+1,j)
55 print *,loncv(i1, j),loncv(i2, j)
56 print *,loncv(i1+1,j),loncv(i2-1,j)
57 print *,loncv(i1+2,j),loncv(i2-2,j)
59 print *,
'angleT across seam ' 60 print *,anglet(i1-2,j),anglet(i2+2,j)
61 print *,anglet(i1-1,j),anglet(i2+1,j)
62 print *,anglet(i1, j),anglet(i2, j)
63 print *,anglet(i1+1,j),anglet(i2-1,j)
64 print *,anglet(i1+2,j),anglet(i2-2,j)
66 print *,
'latCu across seam ' 67 print *,latcu(i1-3,j),latcu(i2+2,j),latcu(i1-3,j)-latcu(i2+2,j)
68 print *,latcu(i1-2,j),latcu(i2+1,j)
69 print *,latcu(i1-1,j),latcu(i2+0,j)
70 print *,latcu(i1, j),latcu(i2-1,j)
71 print *,latcu(i1+1,j),latcu(i2-2,j)
72 print *,latcu(i1+2,j),latcu(i2-3,j)
73 print *,latcu(i1+3,j),latcu(i2-4,j)
75 print *,
'lonCu across seam ' 76 print *,loncu(i1-3,j),loncu(i2+2,j),loncu(i1-3,j)+loncu(i2+2,j)
77 print *,loncu(i1-2,j),loncu(i2+1,j)
78 print *,loncu(i1-1,j),loncu(i2+0,j)
79 print *,loncu(i1, j),loncu(i2-1,j)
80 print *,loncu(i1+1,j),loncu(i2-2,j)
81 print *,loncu(i1+2,j),loncu(i2-3,j)
82 print *,loncu(i1+3,j),loncu(i2-4,j)
84 print *,
'latCt across seam ' 85 print *,latct(i1-3,j),latct(i2+3,j),latct(i1-3,j)-latct(i2+3,j)
86 print *,latct(i1-2,j),latct(i2+2,j)
87 print *,latct(i1-1,j),latct(i2+1,j)
88 print *,latct(i1, j),latct(i2, j)
89 print *,latct(i1+1,j),latct(i2-1,j)
90 print *,latct(i1+2,j),latct(i2-2,j)
91 print *,latct(i1+3,j),latct(i2-3,j)
93 print *,
'lonCt across seam ' 94 print *,lonct(i1-3,j),lonct(i2+3,j),lonct(i1-3,j)+lonct(i2+3,j)
95 print *,lonct(i1-2,j),lonct(i2+2,j)
96 print *,lonct(i1-1,j),lonct(i2+1,j)
97 print *,lonct(i1, j),lonct(i2, j)
98 print *,lonct(i1+1,j),lonct(i2-1,j)
99 print *,lonct(i1+2,j),lonct(i2-2,j)
100 print *,lonct(i1+3,j),lonct(i2-3,j)
102 end subroutine checkseam
108 subroutine checkxlatlon
113 print *,
'============== Ct grid ===============' 114 print *,
'============== Left pole ============' 115 do i = ipole(1)-3,ipole(1)+3
116 print
'(i5,6f12.5)',i,lonct(i,nj),xlonct(i),lonct(i,nj)+xlonct(i),latct(i,nj),xlatct(i),latct(i,nj)-xlatct(i)
120 print *,
'============ Right pole ============' 121 do i = ipole(2)-3,ipole(2)+3
122 print
'(i5,6f12.5)',i,lonct(i,nj),xlonct(i),lonct(i,nj)+xlonct(i),latct(i,nj),xlatct(i),latct(i,nj)-xlatct(i)
126 print *,
'============== Ct grid ===============' 127 print *,
'============== Left edge ============' 129 print
'(i5,6f12.5)',i,lonct(i,nj),xlonct(i),lonct(i,nj)+xlonct(i),latct(i,nj),xlatct(i),latct(i,nj)-xlatct(i)
132 print *,
'============== Right edge ===========' 134 print
'(i5,6f12.5)',i,lonct(i,nj),xlonct(i),lonct(i,nj)+xlonct(i),latct(i,nj),xlatct(i),latct(i,nj)-xlatct(i)
139 print *,
'============== Cu grid ===============' 140 print *,
'============== Left pole =============' 141 do i = ipole(1)-3,ipole(1)+3
142 print
'(i5,6f12.5)',i,loncu(i,nj),xloncu(i),loncu(i,nj)+xloncu(i),latcu(i,nj),xlatcu(i),latcu(i,nj)-xlatcu(i)
146 print *,
'============ Right pole ============' 147 do i = ipole(2)-3,ipole(2)+3
148 print
'(i5,6f12.5)',i,loncu(i,nj),xloncu(i),loncu(i,nj)+xloncu(i),latcu(i,nj),xlatcu(i),latcu(i,nj)-xlatcu(i)
152 print *,
'============== Cu grid ===============' 153 print *,
'============== Left edge ============' 155 print
'(i5,6f12.5)',i,loncu(i,nj),xloncu(i),loncu(i,nj)+xloncu(i),latcu(i,nj),xlatcu(i),latcu(i,nj)-xlatcu(i)
158 print *,
'============== Right edge ===========' 160 print
'(i5,6f12.5)',i,loncu(i,nj),xloncu(i),loncu(i,nj)+xloncu(i),latcu(i,nj),xlatcu(i),latcu(i,nj)-xlatcu(i)
164 end subroutine checkxlatlon
170 subroutine checkpoint
177 print
'(f12.5,a,f12.5)',latbu_vert(i,j,2),
' ',latbu_vert(i,j,1)
178 print
'(a12,f12.5)',
' ',latbu(i,j)
179 print
'(f12.5,a,f12.5)',latbu_vert(i,j,3),
' ',latbu_vert(i,j,4)
181 print
'(f12.5,a,f12.5)',lonbu_vert(i,j,2),
' ',lonbu_vert(i,j,1)
182 print
'(a12,f12.5)',
' ',lonbu(i,j)
183 print
'(f12.5,a,f12.5)',lonbu_vert(i,j,3),
' ',lonbu_vert(i,j,4)
187 print
'(f12.5,a,f12.5)',latcv_vert(i,j,2),
' ',latcv_vert(i,j,1)
188 print
'(a12,f12.5)',
' ',latcv(i,j)
189 print
'(f12.5,a,f12.5)',latcv_vert(i,j,3),
' ',latcv_vert(i,j,4)
191 print
'(f12.5,a,f12.5)',loncv_vert(i,j,2),
' ',loncv_vert(i,j,1)
192 print
'(a12,f12.5)',
' ',loncv(i,j)
193 print
'(f12.5,a,f12.5)',loncv_vert(i,j,3),
' ',loncv_vert(i,j,4)
199 print
'(f12.5,a,f12.5)',latct_vert(i,j,2),
' ',latct_vert(i,j,1)
200 print
'(a12,f12.5)',
' ',latct(i,j)
201 print
'(f12.5,a,f12.5)',latct_vert(i,j,3),
' ',latct_vert(i,j,4)
203 print
'(f12.5,a,f12.5)',lonct_vert(i,j,2),
' ',lonct_vert(i,j,1)
204 print
'(a12,f12.5)',
' ',lonct(i,j)
205 print
'(f12.5,a,f12.5)',lonct_vert(i,j,3),
' ',lonct_vert(i,j,4)
209 print
'(f12.5,a,f12.5)',latcu_vert(i,j,2),
' ',latcu_vert(i,j,1)
210 print
'(a12,f12.5)',
' ',latcu(i,j)
211 print
'(f12.5,a,f12.5)',latcu_vert(i,j,3),
' ',latcu_vert(i,j,4)
213 print
'(f12.5,a,f12.5)',loncu_vert(i,j,2),
' ',loncu_vert(i,j,1)
214 print
'(a12,f12.5)',
' ',loncu(i,j)
215 print
'(f12.5,a,f12.5)',loncu_vert(i,j,3),
' ',loncu_vert(i,j,4)
219 print
'(f12.5,a,f12.5)',latct_vert(i,j,2),
' ',latct_vert(i,j,1)
220 print
'(a12,f12.5)',
' ',latct(i,j)
221 print
'(f12.5,a,f12.5)',latct_vert(i,j,3),
' ',latct_vert(i,j,4)
223 print
'(f12.5,a,f12.5)',lonct_vert(i,j,2),
' ',lonct_vert(i,j,1)
224 print
'(a12,f12.5)',
' ',lonct(i,j)
225 print
'(f12.5,a,f12.5)',lonct_vert(i,j,3),
' ',lonct_vert(i,j,4)
229 print
'(f12.5,a,f12.5)',latcu_vert(i,j,2),
' ',latcu_vert(i,j,1)
230 print
'(a12,f12.5)',
' ',latcu(i,j)
231 print
'(f12.5,a,f12.5)',latcu_vert(i,j,3),
' ',latcu_vert(i,j,4)
233 print
'(f12.5,a,f12.5)',loncu_vert(i,j,2),
' ',loncu_vert(i,j,1)
234 print
'(a12,f12.5)',
' ',loncu(i,j)
235 print
'(f12.5,a,f12.5)',loncu_vert(i,j,3),
' ',loncu_vert(i,j,4)
237 print *,
"latCt minmax ",minval(latct),maxval(latct)
238 print *,
"latCu minmax ",minval(latcu),maxval(latcu)
239 print *,
"latCv minmax ",minval(latcv),maxval(latcv)
240 print *,
"latBu minmax ",minval(latbu),maxval(latbu)
246 end subroutine checkpoint
247 end module debugprint