82 ( tpind,tpnam,pfield,pcumdia,pwgt )
87 USE modi_gltools_strlower
88 #if ! defined in_surfex
90 USE mode_gltools_bound
92 #if ! defined in_arpege
100 TYPE(t_ind),
INTENT(inout) :: &
102 TYPE(t_def),
INTENT(in) :: &
104 REAL,
DIMENSION(:,:),
INTENT(in) :: &
106 REAL,
DIMENSION(:,:,:),
INTENT(inout) :: &
108 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(inout) :: &
120 ix,iy,ixc,iyc,ilu,ifld
121 REAL,
DIMENSION(:,:),
ALLOCATABLE :: &
123 REAL,
DIMENSION(:,:),
ALLOCATABLE :: &
125 REAL(KIND=4),
DIMENSION(:,:),
ALLOCATABLE :: &
135 ix =
SIZE( pfield,1 )
136 iy =
SIZE( pfield,2 )
137 yis0d = ( ix==1 .AND. iy==1 )
138 yis2d = ( ix==nx .AND. iy==ny )
143 tpind%i2d = tpind%i2d+1
145 ELSE IF ( yis0d )
THEN
146 tpind%i0d = tpind%i0d+1
150 WRITE(noutlu,*)
'==> Input field size=',ix,iy
151 WRITE(noutlu,*)
'==> Routine gltools_avevai can only be used to write &
152 & fields with dimensions',nxglo,nyglo,
' or 1,1.'
153 WRITE(noutlu,*)
'We stop.'
157 pcumdia(ifld,:,:) = pcumdia(ifld,:,:) + pfield(:,:)
169 IF ( (tpind%cur==tpind%end) .OR. &
170 ( modulo(tpind%cur * dtt, dttave * xday2sec) .LE. epsil1) &
179 ALLOCATE( zwork2(nx,ny))
180 IF ( present(pwgt) )
THEN
181 WHERE( pwgt(:,:)>0. .AND. pfield(:,:)<xbig20 )
182 zwork2(:,:) = pcumdia(ifld,:,:) / pwgt(:,:)
188 zwork2(:,:) = pcumdia(ifld,:,:) / float( tpind%nts )
193 #if ! defined in_surfex
194 CALL gltools_bound( ypos,ytype,zwork2,pval=xbig20 )
199 ALLOCATE( zwork2_g(nxglo,nyglo))
200 ALLOCATE( zwork2_gr4(nxglo,nyglo) )
201 #if ! defined in_surfex
202 CALL gather2d( zwork2,zwork2_g )
204 #if ! defined in_arpege
213 IF ( ypos==
'U' .OR. ypos==
'V' )
THEN
214 WHERE( zwork2_g(:,:)<-xbig19 )
215 zwork2_g(:,:) = xbig20
222 ALLOCATE( zwork2_g(ix,iy))
223 ALLOCATE( zwork2_gr4(ix,iy) )
224 zwork2_g(:,:) = pcumdia(ifld,:,:) / float( tpind%nts )
226 IF ( modulo(tpind%cur * dtt, dttave * xday2sec) .LE. epsil1)
THEN
229 IF ( present(pwgt) ) pwgt(:,:)=0.
235 IF ( gelato_myrank == gelato_leadproc )
THEN
239 zwork2_gr4(:,:) = zwork2_g(:,:)
251 ELSE IF ( yis0d )
THEN
257 WRITE(ilu) trim( tpnam%sna )
258 WRITE(ilu) zwork2_gr4(:,:)
264 DEALLOCATE( zwork2_g )
265 DEALLOCATE( zwork2_gr4 )