/[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.1 - (hide 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 cheisey 1.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