/[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.1 - (show annotations) (download)
Thu Nov 21 19:11:42 2002 UTC (21 years, 5 months ago) by cheisey
Branch: MAIN
CVS Tags: checkpoint47a_post
Two packages:  bulk_force (Bulk forcing)
and therm_seaice (thermodynamic_seaice) - adopted from LANL CICE.v2.0.2
Earlier integration from Stephaine Dutkiewicz
and Patrick Heimbach.

Two ifdef statements for compile time,
ALLOW_THERM_SEAICE and ALLOW_BULK_FORCE

Two switches in data.pkg to turn on at run-time:

cat data.pkg
# Packages
 &PACKAGES
 useBulkForce=.TRUE.,
 useThermSeaIce=.TRUE.,
 &

WARNING:  useSEAICE and useThermSEAICE are mutually exclusive.

The bulk package requires an additional parameter file
with two namelists, data.ice and data.blk.

c ADAPTED FROM:
c LANL CICE.v2.0.2
c-----------------------------------------------------------------------
c.. thermodynamics (vertical physics) based on M. Winton 3-layer model
c.. See Bitz, C. M. and W. H. Lipscomb, 1999:  "An energy-conserving
c..       thermodynamic sea ice model for climate study."  J. Geophys.
c..       Res., 104, 15669 - 15677.
c..     Winton, M., 1999:  "A reformulated three-layer sea ice model."
c..       Submitted to J. Atmos. Ocean. Technol.

c.. authors Elizabeth C. Hunke and William Lipscomb
c..         Fluid Dynamics Group, Los Alamos National Laboratory
c-----------------------------------------------------------------------

1 C $Header: /u/u0/gcmpack/models/MITgcmUV/pkg/gmredi/gmredi_diags.F,v 1.5 2001/03/06 18:01:07 jmc 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 CEndOfInterface
34
35
36 C == Local variables ==
37 LOGICAL DIFFERENT_MULTIPLE
38 EXTERNAL DIFFERENT_MULTIPLE
39 INTEGER bi, bj
40 CHARACTER*(MAX_LEN_MBUF) suff
41
42 #ifdef ALLOW_BULK_FORCE
43
44
45 #ifdef ALLOW_TIMEAVE
46
47
48 C Dump files and restart average computation if needed
49 IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,myTime-deltaTClock)
50 & ) THEN
51
52
53
54 C Normalize by integrated time
55 DO bj = myByLo(myThid), myByHi(myThid)
56 DO bi = myBxLo(myThid), myBxHi(myThid)
57 cBB print*,'QQ bulk time',BULKF_timeave(bi,bj)
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
80 ENDDO
81 ENDDO
82
83 WRITE(suff,'(I10.10)') myIter
84
85 CALL WRITE_FLD_XY_RL('BULK_Qnet.',suff,BULK_Qnet_AVE,
86 & myIter,myThid)
87 CALL WRITE_FLD_XY_RL('BULK_EmPmR.',suff,
88 & BULK_EmPmR_AVE,myIter,myThid)
89 CALL WRITE_FLD_XY_RL('BULK_fu.',suff,
90 & BULK_fu_AVE,myIter,myThid)
91 CALL WRITE_FLD_XY_RL('BULK_fv.',suff,
92 & BULK_fv_AVE,myIter,myThid)
93 CALL WRITE_FLD_XY_RL('BULK_latent.',suff,
94 & BULK_latent_AVE,myIter,myThid)
95 CALL WRITE_FLD_XY_RL('BULK_sensible.',suff,
96 & BULK_sensible_AVE,myIter,myThid)
97 CALL WRITE_FLD_XY_RL('BULK_evap.',suff,
98 & BULK_evap_AVE,myIter,myThid)
99 CALL WRITE_FLD_XY_RL('BULK_flw.',suff,
100 & BULK_flw_AVE,myIter,myThid)
101 CALL WRITE_FLD_XY_RL('BULK_solar.',suff,
102 & BULK_solar_AVE,myIter,myThid)
103 CALL WRITE_FLD_XY_RL('BULK_ssq.',suff,
104 & BULK_ssq_AVE,myIter,myThid)
105
106
107 C Reset averages to zero
108 DO bj = myByLo(myThid), myByHi(myThid)
109 DO bi = myBxLo(myThid), myBxHi(myThid)
110 CALL TIMEAVE_RESET(BULK_Qnet_AVE,1,bi,bj,myThid)
111 CALL TIMEAVE_RESET(BULK_EmPmR_AVE,1,bi,bj,myThid)
112 CALL TIMEAVE_RESET(BULK_fu_AVE,1,bi,bj,myThid)
113 CALL TIMEAVE_RESET(BULK_fv_AVE,1,bi,bj,myThid)
114 CALL TIMEAVE_RESET(BULK_latent_AVE,1,bi,bj,myThid)
115 CALL TIMEAVE_RESET(BULK_sensible_AVE,1,bi,bj,myThid)
116 CALL TIMEAVE_RESET(BULK_evap_AVE,1,bi,bj,myThid)
117 CALL TIMEAVE_RESET(BULK_flw_AVE,1,bi,bj,myThid)
118 CALL TIMEAVE_RESET(BULK_solar_AVE,1,bi,bj,myThid)
119 CALL TIMEAVE_RESET(BULK_ssq_AVE,1,bi,bj,myThid)
120 BULKF_TimeAve(bi,bj)=0.
121 ENDDO
122 ENDDO
123
124
125
126 ENDIF
127
128 #endif /* ALLOW_TIMEAVE */
129
130 #endif /* ALLOW_BULKF */
131
132 RETURN
133 END

  ViewVC Help
Powered by ViewVC 1.1.22