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

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

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


Revision 1.2 - (hide 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 cheisey 1.2 C $Header: /u/u0/gcmpack/MITgcm/pkg/bulk_force/bulkf_diags.F,v 1.1 2002/11/21 19:11:42 cheisey Exp $
2 cheisey 1.1 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 cheisey 1.2
34 cheisey 1.1 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 cheisey 1.2
83     _BEGIN_MASTER(myThid)
84 cheisey 1.1 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 cheisey 1.2 _END_MASTER(myThid)
107 cheisey 1.1
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 cheisey 1.2 BULKF_TimeAve(1,bi,bj)=0.
123 cheisey 1.1 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