/[MITgcm]/MITgcm/pkg/aim/aim_write_diags.F
ViewVC logotype

Diff of /MITgcm/pkg/aim/aim_write_diags.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by cnh, Fri Jan 26 00:14:31 2001 UTC revision 1.2 by adcroft, Fri Feb 2 21:36:29 2001 UTC
# Line 0  Line 1 
1    C $Header$
2    C $Name$
3    
4    #include "AIM_OPTIONS.h"
5    
6    CStartOfInterFace
7          SUBROUTINE AIM_WRITE_DIAGS( myTime, myIter, myThid )
8    C     /==========================================================\
9    C     | SUBROUTINE AIM_WRITE_DIAGS                               |
10    C     | o Write out AIM diagnostic output                        |
11    C     \==========================================================/
12          IMPLICIT NONE
13    
14    C     === Global variables ===
15    #include "SIZE.h"
16    #include "EEPARAMS.h"
17    #include "PARAMS.h"
18    #include "AIM_DIAGS.h"
19          LOGICAL  DIFFERENT_MULTIPLE
20          EXTERNAL DIFFERENT_MULTIPLE
21    
22    C     == Routine arguments ==
23    C     myTime - Current time of simulation ( s )
24    C     myIter - Iteration number
25    C     myThid - Number of this instance of the routine
26          _RL     myTime
27          INTEGER myIter
28          INTEGER myThid
29    CEndOfInterface
30    
31    #ifdef ALLOW_AIM
32    
33    C     == Local variables ==
34          INTEGER bi, bj, K
35          CHARACTER*(MAX_LEN_MBUF) fn
36          LOGICAL gf
37          gf = .TRUE.
38    
39    #ifdef INCLUDE_DIAGNOSTICS_INTERFACE_CODE
40    
41    C     Dump files and restart average computation if needed
42          IF ( myIter.NE.nIter0 .AND.
43         &     DIFFERENT_MULTIPLE(taveFreq,myTime,
44         &     myTime-deltaTClock)
45         &     ) THEN
46    
47    C      Normalize by integrated time
48           DO bj = myByLo(myThid), myByHi(myThid)
49            DO bi = myBxLo(myThid), myBxHi(myThid)
50             CALL TIMEAVER_FINAL_XY(USTRtave,AIM_timeave,bi,bj,myThid)
51             CALL TIMEAVER_FINAL_XY(VSTRtave,AIM_timeave,bi,bj,myThid)
52             CALL TIMEAVER_FINAL_XY(TSRtave,AIM_timeave,bi,bj,myThid)
53             CALL TIMEAVER_FINAL_XY(OLRtave,AIM_timeave,bi,bj,myThid)
54             CALL TIMEAVER_FINAL_XY(SSRtave,AIM_timeave,bi,bj,myThid)
55             CALL TIMEAVER_FINAL_XY(SLRtave,AIM_timeave,bi,bj,myThid)
56             CALL TIMEAVER_FINAL_XY(SHFtave,AIM_timeave,bi,bj,myThid)
57             CALL TIMEAVER_FINAL_XY(EVAPtave,AIM_timeave,bi,bj,myThid)
58             CALL TIMEAVER_FINAL_XY(PRECNVtave,AIM_timeave,bi,bj,myThid)
59             CALL TIMEAVER_FINAL_XY(PRECLStave,AIM_timeave,bi,bj,myThid)
60             CALL TIMEAVER_FINAL_XY(CLOUDCtave,AIM_timeave,bi,bj,myThid)
61            ENDDO
62           ENDDO
63    
64    
65           _BARRIER
66           _BEGIN_MASTER( myThid )
67            WRITE(fn,'(A,I10.10)') 'aimphyvars.',myIter
68            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,USTRtave,   1,myIter,myThid)
69            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,VSTRtave,   2,myIter,myThid)
70            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,TSRtave ,   3,myIter,myThid)
71            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,OLRtave ,   4,myIter,myThid)
72            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,SSRtave ,   5,myIter,myThid)
73            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,SLRtave ,   6,myIter,myThid)
74            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,SHFtave ,   7,myIter,myThid)
75            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,EVAPtave,   8,myIter,myThid)
76            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,PRECNVtave, 9,myIter,myThid)
77            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,PRECLStave,10,myIter,myThid)
78            CALL MDSWRITEFIELD(fn,precFloat32,gf,'RL',1,CLOUDCtave,11,myIter,myThid)
79           _END_MASTER( myThid )
80           _BARRIER
81    
82    C      Reset averages to zero
83           DO bj = myByLo(myThid), myByHi(myThid)
84            DO bi = myBxLo(myThid), myBxHi(myThid)
85             CALL TIMEAVER_INI_XY(USTRtave, bi,bj,myThid)
86             CALL TIMEAVER_INI_XY(VSTRtave, bi,bj,myThid)
87             CALL TIMEAVER_INI_XY(TSRtave, bi,bj,myThid)
88             CALL TIMEAVER_INI_XY(OLRtave, bi,bj,myThid)
89             CALL TIMEAVER_INI_XY(SSRtave, bi,bj,myThid)
90             CALL TIMEAVER_INI_XY(SLRtave, bi,bj,myThid)
91             CALL TIMEAVER_INI_XY(SHFtave, bi,bj,myThid)
92             CALL TIMEAVER_INI_XY(EVAPtave, bi,bj,myThid)
93             CALL TIMEAVER_INI_XY(PRECNVtave, bi,bj,myThid)
94             CALL TIMEAVER_INI_XY(PRECLStave, bi,bj,myThid)
95             CALL TIMEAVER_INI_XY(CLOUDCtave, bi,bj,myThid)
96            ENDDO
97           ENDDO
98    
99          ENDIF
100    
101    #endif /* INCLUDE_DIAGNOSTICS_INTERFACE_CODE */
102    
103    #endif /* ALLOW_AIM */
104    
105          RETURN
106          END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22