! ================================================================== subroutine aver(knt,ksum) use lsgvar implicit none ! ! ------------------------------------------------------------------ ! !**** *aver* averages data sets. ! When mod(knt,ksum) equals zero, the averaging is performed. ! ! by U. Mikolajewicz 1/89. ! optimzed by E. Kirk 2/2008 ! !* Input. ! ------ ! *knt* actual time step (via parameterlist). ! *ksum* number of data sets to be averaged (via parameterlist). ! Various data sets for 1 time step via module lsgvar ! !* Output. ! ------- ! averaged data sets via module lsgvar ! !* Interface. ! ---------- ! *call* *aver(knt,ksum)* ! ! ------------------------------------------------------------------ integer, intent(in) :: knt integer, intent(in) :: ksum integer, save :: ncount = 0 real (kind=8) :: fakt real (kind=8),save :: tmea(ienjen,ken) real (kind=8),save :: smea(ienjen,ken) real (kind=8),save :: umea(ienjen,ken) real (kind=8),save :: vmea(ienjen,ken) real (kind=8),save :: wmea(ienjen,ken) real (kind=8),save :: cmea(ienjen,ken) real (kind=8),save :: zmea(ienjen),simea(ienjen),fhmea(ienjen) real (kind=8),save :: fwmea(ienjen),ubmea(ienjen),vbmea(ienjen) real (kind=8),save :: hfmea(ienjen),psimea(ienjen),flwmea(ienjen) real (kind=8),save :: txmea(ienjen),tymea(ienjen),tbmea(ienjen) ! !* 1. Copy or sum up ! --------------- ! ! ncount counts the number of data sets summed up. ! if (ncount == 0) then tmea(:,:) = ta(:,:) smea(:,:) = sa(:,:) umea(:,:) = utota(:,:) vmea(:,:) = vtota(:,:) wmea(:,:) = wa(:,:) cmea(:,:) = convaa(:,:) flwmea(:) = flwa(:) psimea(:) = psia(:) simea(:) = sicea(:) ubmea(:) = uba(:) vbmea(:) = vba(:) fhmea(:) = flha(:) fwmea(:) = fwa(:) txmea(:) = tauxa(:) tymea(:) = tauya(:) tbmea(:) = tba(:) hfmea(:) = hfa(:) zmea(:) = zetaa(:) else tmea(:,:) = tmea(:,:) + ta(:,:) smea(:,:) = smea(:,:) + sa(:,:) umea(:,:) = umea(:,:) + utota(:,:) vmea(:,:) = vmea(:,:) + vtota(:,:) wmea(:,:) = wmea(:,:) + wa(:,:) cmea(:,:) = cmea(:,:) + convaa(:,:) flwmea(:) = flwmea(:) + flwa(:) psimea(:) = psimea(:) + psia(:) simea(:) = simea(:) + sicea(:) ubmea(:) = ubmea(:) + uba(:) vbmea(:) = vbmea(:) + vba(:) fhmea(:) = fhmea(:) + flha(:) fwmea(:) = fwmea(:) + fwa(:) txmea(:) = txmea(:) + tauxa(:) tymea(:) = tymea(:) + tauya(:) tbmea(:) = tbmea(:) + tba(:) hfmea(:) = hfmea(:) + hfa(:) zmea(:) = zmea(:) + zetaa(:) end if ncount=ncount+1 ! !* 2. Final processing. ! ----------------- if (mod(knt,ksum)/=0) return if (ncount