/[MITgcm]/MITgcm/pkg/bulk_force/bulkf_diags.F
ViewVC logotype

Contents of /MITgcm/pkg/bulk_force/bulkf_diags.F

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


Revision 1.2 - (show annotations) (download)
Wed Dec 4 14:53:39 2002 UTC (21 years, 5 months ago) by cheisey
Branch: MAIN
CVS Tags: checkpoint47b_post
Changes since 1.1: +6 -4 lines
Fixing bug in which diagnostic quantities are
not properly computed when using multiple tiles
on a single processor (Time cumulation array needs
to be dimensioned over Nr, but only k=1 is actually
used.  This makes routine compatible with routines
in pkg/timeave).

1 C $Header: /u/u0/gcmpack/MITgcm/pkg/bulk_force/bulkf_diags.F,v 1.1 2002/11/21 19:11:42 cheisey Exp $
2 C $Name: $
3 cswdblk modified for bulk formula -- Dec 01
4
5 #include "CPP_OPTIONS.h"
6
7 CStartOfInterface
8 SUBROUTINE BULKF_DIAGS( myTime, myIter, myThid )
9 C /==========================================================\
10 C | SUBROUTINE BULKF_DIAGS |
11 C | o Do BULKF diagnostic output |
12 C |==========================================================|
13 C \==========================================================/
14 IMPLICIT NONE
15
16 C === Global variables ===
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 cswdblk --- add --
21 #ifdef ALLOW_BULK_FORCE
22 #include "BULKF.h"
23 #include "BULKF_DIAG.h"
24 #endif
25 cswdblk -- end add ---
26 C == Routine arguments ==
27 C myTime - Current time of simulation ( s )
28 C myIter - Iteration number
29 C myThid - Number of this instance
30 _RL myTime
31 INTEGER myIter
32 INTEGER myThid
33
34 CEndOfInterface
35
36
37 C == Local variables ==
38 LOGICAL DIFFERENT_MULTIPLE
39 EXTERNAL DIFFERENT_MULTIPLE
40 INTEGER bi, bj
41 CHARACTER*(MAX_LEN_MBUF) suff
42
43 #ifdef ALLOW_BULK_FORCE
44
45
46 #ifdef ALLOW_TIMEAVE
47
48
49 C Dump files and restart average computation if needed
50 IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,myTime-deltaTClock)
51 & ) THEN
52
53
54
55 C Normalize by integrated time
56 DO bj = myByLo(myThid), myByHi(myThid)
57 DO bi = myBxLo(myThid), myBxHi(myThid)
58 CALL TIMEAVE_NORMALIZ(BULK_Qnet_AVE,BULKF_timeave, 1 ,
59 & bi,bj,myThid)
60 CALL TIMEAVE_NORMALIZ(BULK_EmPmR_AVE,BULKF_timeave, 1 ,
61 & bi,bj,myThid)
62 CALL TIMEAVE_NORMALIZ(BULK_fu_AVE,BULKF_timeave, 1 ,
63 & bi,bj,myThid)
64 CALL TIMEAVE_NORMALIZ(BULK_fv_AVE,BULKF_timeave, 1 ,
65 & bi,bj,myThid)
66 CALL TIMEAVE_NORMALIZ(BULK_latent_AVE,BULKF_timeave, 1 ,
67 & bi,bj,myThid)
68 CALL TIMEAVE_NORMALIZ(BULK_sensible_AVE,BULKF_timeave, 1 ,
69 & bi,bj,myThid)
70 CALL TIMEAVE_NORMALIZ(BULK_evap_AVE,BULKF_timeave, 1 ,
71 & bi,bj,myThid)
72 CALL TIMEAVE_NORMALIZ(BULK_flw_AVE,BULKF_timeave, 1 ,
73 & bi,bj,myThid)
74 CALL TIMEAVE_NORMALIZ(BULK_solar_AVE,BULKF_timeave, 1 ,
75 & bi,bj,myThid)
76 CALL TIMEAVE_NORMALIZ(BULK_ssq_AVE,BULKF_timeave, 1 ,
77 & bi,bj,myThid)
78
79 ENDDO
80 ENDDO
81
82
83 _BEGIN_MASTER(myThid)
84 WRITE(suff,'(I10.10)') myIter
85
86 CALL WRITE_FLD_XY_RL('BULK_Qnet.',suff,BULK_Qnet_AVE,
87 & myIter,myThid)
88 CALL WRITE_FLD_XY_RL('BULK_EmPmR.',suff,
89 & BULK_EmPmR_AVE,myIter,myThid)
90 CALL WRITE_FLD_XY_RL('BULK_fu.',suff,
91 & BULK_fu_AVE,myIter,myThid)
92 CALL WRITE_FLD_XY_RL('BULK_fv.',suff,
93 & BULK_fv_AVE,myIter,myThid)
94 CALL WRITE_FLD_XY_RL('BULK_latent.',suff,
95 & BULK_latent_AVE,myIter,myThid)
96 CALL WRITE_FLD_XY_RL('BULK_sensible.',suff,
97 & BULK_sensible_AVE,myIter,myThid)
98 CALL WRITE_FLD_XY_RL('BULK_evap.',suff,
99 & BULK_evap_AVE,myIter,myThid)
100 CALL WRITE_FLD_XY_RL('BULK_flw.',suff,
101 & BULK_flw_AVE,myIter,myThid)
102 CALL WRITE_FLD_XY_RL('BULK_solar.',suff,
103 & BULK_solar_AVE,myIter,myThid)
104 CALL WRITE_FLD_XY_RL('BULK_ssq.',suff,
105 & BULK_ssq_AVE,myIter,myThid)
106 _END_MASTER(myThid)
107
108
109 C Reset averages to zero
110 DO bj = myByLo(myThid), myByHi(myThid)
111 DO bi = myBxLo(myThid), myBxHi(myThid)
112 CALL TIMEAVE_RESET(BULK_Qnet_AVE,1,bi,bj,myThid)
113 CALL TIMEAVE_RESET(BULK_EmPmR_AVE,1,bi,bj,myThid)
114 CALL TIMEAVE_RESET(BULK_fu_AVE,1,bi,bj,myThid)
115 CALL TIMEAVE_RESET(BULK_fv_AVE,1,bi,bj,myThid)
116 CALL TIMEAVE_RESET(BULK_latent_AVE,1,bi,bj,myThid)
117 CALL TIMEAVE_RESET(BULK_sensible_AVE,1,bi,bj,myThid)
118 CALL TIMEAVE_RESET(BULK_evap_AVE,1,bi,bj,myThid)
119 CALL TIMEAVE_RESET(BULK_flw_AVE,1,bi,bj,myThid)
120 CALL TIMEAVE_RESET(BULK_solar_AVE,1,bi,bj,myThid)
121 CALL TIMEAVE_RESET(BULK_ssq_AVE,1,bi,bj,myThid)
122 BULKF_TimeAve(1,bi,bj)=0.
123 ENDDO
124 ENDDO
125
126
127
128 ENDIF
129
130 #endif /* ALLOW_TIMEAVE */
131
132 #endif /* ALLOW_BULKF */
133
134 RETURN
135 END

  ViewVC Help
Powered by ViewVC 1.1.22