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

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

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


Revision 1.2 - (hide annotations) (download)
Fri Feb 2 21:36:29 2001 UTC (23 years, 4 months ago) by adcroft
Branch: MAIN
Changes since 1.1: +106 -0 lines
Merged changes from branch "branch-atmos-merge" into MAIN (checkpoint34)
 - substantial modifications to algorithm sequence (dynamics.F)
 - packaged OBCS, Shapiro filter, Zonal filter, Atmospheric Physics

1 adcroft 1.2 C $Header: /u/gcmpack/models/MITgcmUV/pkg/aim/Attic/aim_write_diags.F,v 1.1.2.2 2001/01/26 00:39:11 cnh Exp $
2     C $Name: branch-atmos-merge-freeze $
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

  ViewVC Help
Powered by ViewVC 1.1.22