18 |
#include "SIZE.h" |
#include "SIZE.h" |
19 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
20 |
#include "PARAMS.h" |
#include "PARAMS.h" |
21 |
|
#include "EESUPPORT.h" |
22 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
23 |
#include "GRID.h" |
#include "GRID.h" |
24 |
#include "PTRACERS_SIZE.h" |
#include "PTRACERS_SIZE.h" |
50 |
_RL dT |
_RL dT |
51 |
INTEGER time_as_int |
INTEGER time_as_int |
52 |
integer ip |
integer ip |
|
CML integer i,j,k,bi,bj |
|
|
CML _RL tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
|
53 |
CEOP |
CEOP |
54 |
|
|
55 |
dT=deltaTclock |
dT=deltaTclock |
56 |
|
|
57 |
IF (myIter.LE.nIter0+1.OR.DIFFERENT_MULTIPLE( |
IF ( DIFFERENT_MULTIPLE( PTRACERS_monitorFreq,myTime,dT ) ) THEN |
58 |
& PTRACERS_monitorFreq,myTime,myTime-dT)) THEN |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
|
|
|
|
CML mon_write_stdout = .TRUE. |
|
59 |
|
|
60 |
C Ptracers field monitor start |
C Ptracers field monitor start |
61 |
_BEGIN_MASTER(myThid) |
_BEGIN_MASTER(myThid) |
85 |
IF ( PTRACERS_monitorFreq .NE. monitorFreq ) THEN |
IF ( PTRACERS_monitorFreq .NE. monitorFreq ) THEN |
86 |
C repeat printing of time to make grepping easier, default is not |
C repeat printing of time to make grepping easier, default is not |
87 |
C to do this, because the default is to use the same monitorFreq |
C to do this, because the default is to use the same monitorFreq |
88 |
C for ptracers than for the dynamics variables. |
C for ptracers as for the dynamics variables. |
89 |
CALL MON_SET_PREF('trctime',myThid) |
CALL MON_SET_PREF('trctime',myThid) |
90 |
CALL MON_OUT_I( '_tsnumber', myIter,mon_string_none,myThid) |
CALL MON_OUT_I( '_tsnumber', myIter,mon_string_none,myThid) |
91 |
CALL MON_OUT_RL('_secondsf', myTime,mon_string_none,myThid) |
CALL MON_OUT_RL('_secondsf', myTime,mon_string_none,myThid) |
94 |
CALL MON_SET_PREF('trcstat_',myThid) |
CALL MON_SET_PREF('trcstat_',myThid) |
95 |
DO ip = 1, PTRACERS_numInUse |
DO ip = 1, PTRACERS_numInUse |
96 |
WRITE(suff,'(A7,I2.2)') 'ptracer',ip |
WRITE(suff,'(A7,I2.2)') 'ptracer',ip |
|
CML Do we need a copy of the 6D-array to the 5D-array? |
|
|
CML DO bj = myByLo(myThid), myByHi(myThid) |
|
|
CML DO bi = myBxLo(myThid), myBxHi(myThid) |
|
|
CML DO k=1,Nr |
|
|
CML DO j=1-Oly,sNy+OLy |
|
|
CML DO i=1-Olx,sNx+Olx |
|
|
CML tmp(i,j,k,bi,bj)=ptracer(i,j,k,bi,bj,ip) |
|
|
CML ENDDO |
|
|
CML ENDDO |
|
|
CML ENDDO |
|
|
CML ENDDO |
|
|
CML ENDDO |
|
|
CML CALL MON_PRINTSTATS_RL(Nr,tmp,suff, |
|
|
CML & maskC,hFacC,rA ,drF,myThid) |
|
|
CML It would be nice to avoid the copies. The code below works on |
|
|
CML muliple tiles on one processor, that is, it gives the same results |
|
|
CML as the above code which I leave for now in case something unexpected |
|
|
CML happens on multiple processors. |
|
97 |
CALL MON_PRINTSTATS_RL( |
CALL MON_PRINTSTATS_RL( |
98 |
& Nr, ptracer(1-Olx,1-Oly,1,1,1,ip), |
& Nr, ptracer(1-Olx,1-Oly,1,1,1,ip), |
99 |
& suff, maskC,hFacC,rA ,drF,myThid) |
& suff, maskC,hFacC,rA ,drF,myThid) |