/[MITgcm]/MITgcm_contrib/jscott/pkg_atm2d/tave_end_diags.F
ViewVC logotype

Annotation of /MITgcm_contrib/jscott/pkg_atm2d/tave_end_diags.F

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


Revision 1.1 - (hide annotations) (download)
Fri Aug 11 18:55:50 2006 UTC (19 years, 7 months ago) by jscott
Branch: MAIN
new 2d atm package

1 jscott 1.1 #include "ctrparam.h"
2     #include "ATM2D_OPTIONS.h"
3    
4     C !INTERFACE:
5     SUBROUTINE TAVE_END_DIAGS( nYears, myTime, myIter, myThid )
6     C *==========================================================*
7     C | |
8     c | |
9     C *==========================================================*
10     IMPLICIT NONE
11    
12     C === Global Atmosphere Variables ===
13     #include "ATMSIZE.h"
14     #include "SIZE.h"
15     #include "EEPARAMS.h"
16     #include "PARAMS.h"
17     #include "ATM2D_VARS.h"
18    
19     C !INPUT/OUTPUT PARAMETERS:
20     C === Routine arguments ===
21     C monid - current month of the year
22     C myTime - current simulation time (ocean model time)
23     C myIter - iteration number (ocean model)
24     C myThid - Thread no. that called this routine.
25     INTEGER nYears
26     _RL myTime
27     INTEGER myIter
28     INTEGER myThid
29    
30     C LOCAL VARIABLES:
31     CHARACTER*(MAX_LEN_MBUF) suff, fn
32     INTEGER ndmonth(12)
33     DATA ndmonth/31,28,31,30,31,30,31,31,30,31,30,31/
34     _RL secYr
35     DATA secYr /31536000.D0/
36     INTEGER i,j,mn,j_atm
37     INTEGER simYr
38     _RS norm_factor
39     _RL qnet_ann(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
40     _RL evap_ann(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
41     _RL precip_ann(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
42     _RL runoff_ann(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
43     _RL qrel_ann(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
44     _RL frel_ann(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
45     _RL qnet_mon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
46     _RL evap_mon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
47     _RL precip_mon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
48     _RL runoff_mon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
49     _RL qrel_mon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
50     _RL frel_mon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
51    
52    
53     DO j=1,sNy
54     DO i=1,sNx
55    
56     qnet_ann(i,j) = 0. _d 0
57     evap_ann(i,j) = 0. _d 0
58     precip_ann(i,j) = 0. _d 0
59     runoff_ann(i,j) = 0. _d 0
60     qrel_ann(i,j) = 0. _d 0
61     frel_ann(i,j) = 0. _d 0
62    
63     ENDDO
64     ENDDO
65    
66     DO mn=1,nForcingPer
67    
68     norm_factor=nYears*ndmonth(mn)*86400.0
69     DO j=1,sNy
70     DO i=1,sNx
71    
72     qnet_mon(i,j)= qnet_atm_ta(i,j,mn)/norm_factor
73     evap_mon(i,j)= evap_atm_ta(i,j,mn)/norm_factor
74     precip_mon(i,j)= precip_atm_ta(i,j,mn)/norm_factor
75     runoff_mon(i,j)= runoff_atm_ta(i,j,mn)/norm_factor
76     qrel_mon(i,j)= sum_qrel_ta(i,j,mn)/norm_factor
77     frel_mon(i,j)= sum_frel_ta(i,j,mn)/norm_factor
78    
79     qnet_ann(i,j) = qnet_ann(i,j) +
80     & qnet_mon(i,j)*ndmonth(mn)/365.0
81     evap_ann(i,j) = evap_ann(i,j) +
82     & evap_mon(i,j)*ndmonth(mn)/365.0
83     precip_ann(i,j) = precip_ann(i,j) +
84     & precip_mon(i,j)*ndmonth(mn)/365.0
85     runoff_ann(i,j) = runoff_ann(i,j) +
86     & runoff_mon(i,j)*ndmonth(mn)/365.0
87     qrel_ann(i,j) = qrel_ann(i,j) +
88     & qrel_mon(i,j)*ndmonth(mn)/365.0
89     frel_ann(i,j) = frel_ann(i,j) +
90     & frel_mon(i,j)*ndmonth(mn)/365.0
91    
92     qnet_atm_ta(i,j,mn)= 0. _d 0
93     evap_atm_ta(i,j,mn)= 0. _d 0
94     precip_atm_ta(i,j,mn)= 0. _d 0
95     runoff_atm_ta(i,j,mn)= 0. _d 0
96     sum_qrel_ta(i,j,mn)= 0. _d 0
97     sum_frel_ta(i,j,mn)= 0. _d 0
98    
99     ENDDO
100     ENDDO
101    
102     DO j_atm=1,jm0
103     sum_tauu_ta(j_atm,mn) = sum_tauu_ta(j_atm,mn) / norm_factor
104     sum_tauv_ta(j_atm,mn) = sum_tauv_ta(j_atm,mn) / norm_factor
105     sum_wsocean_ta(j_atm,mn) = sum_wsocean_ta(j_atm,mn) /
106     & norm_factor
107     sum_ps4ocean_ta(j_atm,mn) = sum_ps4ocean_ta(j_atm,mn) /
108     & norm_factor
109     ENDDO
110    
111     WRITE(suff,'(I2.2)') mn
112     CALL WRITE_FLD_XY_RL('amQnetAtmtave.', suff,
113     & qnet_mon, myIter, myThid)
114     CALL WRITE_FLD_XY_RL('amEvapAtmtave.', suff,
115     & evap_mon, myIter, myThid)
116     CALL WRITE_FLD_XY_RL('amPrecipAtmtave.', suff,
117     & precip_mon, myIter, myThid)
118     CALL WRITE_FLD_XY_RL('amRunoffAtmtave.', suff,
119     & runoff_mon, myIter, myThid)
120     CALL WRITE_FLD_XY_RL('amQrelfluxtave.', suff,
121     & qrel_mon, myIter, myThid)
122     CALL WRITE_FLD_XY_RL('amFrelfluxtave.', suff,
123     & frel_mon, myIter, myThid)
124    
125     ENDDO
126    
127     WRITE(suff,'(I10.10)') myIter
128     CALL WRITE_FLD_XY_RL('QnetAtmtave.', suff,
129     & qnet_ann, myIter, myThid)
130     CALL WRITE_FLD_XY_RL('EvapAtmtave.', suff,
131     & evap_ann, myIter, myThid)
132     CALL WRITE_FLD_XY_RL('PrecipAtmtave.', suff,
133     & precip_ann, myIter, myThid)
134     CALL WRITE_FLD_XY_RL('RunoffAtmtave.', suff,
135     & runoff_ann, myIter, myThid)
136     CALL WRITE_FLD_XY_RL('Qrelfluxtave.', suff,
137     & qrel_ann, myIter, myThid)
138     CALL WRITE_FLD_XY_RL('Frelfluxtave.', suff,
139     & frel_ann, myIter, myThid)
140    
141    
142     simYr = int(myIter*deltaTClock/secYr)
143    
144     WRITE(fn,'(A,I5.5') 'attauu.', simYr
145     OPEN(27, FILE=fn, STATUS='replace',
146     & ACCESS='direct', RECL=8*jm0*nForcingPer, FORM='unformatted')
147     WRITE(27,REC=1) sum_tauu_ta
148     CLOSE(27)
149    
150     WRITE(fn,'(A,I5.5') 'attauv.', simYr
151     OPEN(28, FILE=fn, STATUS='replace',
152     & ACCESS='direct', RECL=8*jm0*nForcingPer, FORM='unformatted')
153     WRITE(28,REC=1) sum_tauv_ta
154     CLOSE(28)
155    
156     WRITE(fn,'(A,I5.5') 'atwind.', simYr
157     OPEN(29, FILE=fn, STATUS='replace',
158     & ACCESS='direct', RECL=8*jm0*nForcingPer, FORM='unformatted')
159     WRITE(29,REC=1) sum_wsocean_ta
160     CLOSE(29)
161    
162     WRITE(fn,'(A,I5.5') 'atps4ocn.', simYr
163     OPEN(30, FILE=fn, STATUS='replace',
164     & ACCESS='direct', RECL=8*jm0*nForcingPer, FORM='unformatted')
165     WRITE(30,REC=1) sum_ps4ocean_ta
166     CLOSE(30)
167    
168     DO mn=1,nForcingPer
169     DO j_atm=1,jm0
170     sum_tauu_ta(j_atm,mn) = 0. _d 0
171     sum_tauv_ta(j_atm,mn) = 0. _d 0
172     sum_wsocean_ta(j_atm,mn) = 0. _d 0
173     sum_ps4ocean_ta(j_atm,mn) = 0. _d 0
174     ENDDO
175     ENDDO
176    
177     RETURN
178     END
179    

  ViewVC Help
Powered by ViewVC 1.1.22