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

Annotation of /MITgcm/pkg/bulk_force/bulkf_ave.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, 7 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 #include "CPP_OPTIONS.h"
2    
3     C !ROUTINE: BULKF_AVE
4     C !INTERFACE:
5     SUBROUTINE BULKF_AVE(bi,bj,mythid, fswnet,
6     & flh, fsh, flwup, evap, savssq)
7     C *==========================================================*
8     C | S/R BULKF_AVE
9     C | o save values for timeaveraging
10     C | for sea/ice surface and atmosphere
11     C *==========================================================*
12    
13     C !USES:
14     IMPLICIT NONE
15     C == Global variables ==
16     #include "SIZE.h"
17     #include "DYNVARS.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "GRID.h"
21     #ifdef ALLOW_BULK_FORCE
22     #include "FFIELDS.h"
23     #include "BULKF.h"
24     #include "BULKF_DIAG.h"
25     #endif
26     c == routine arguments ==
27    
28     integer mythid
29     integer bi,bj
30     integer i,j,k
31    
32     _RL evap(1-olx:snx+olx,1-oly:sny+oly)
33     _RL savssq(1-olx:snx+olx,1-oly:sny+oly)
34     _RL fsh(1-olx:snx+olx,1-oly:sny+oly)
35     _RL flh(1-olx:snx+olx,1-oly:sny+oly)
36     _RL flwup(1-olx:snx+olx,1-oly:sny+oly)
37     _RL fswnet(1-olx:snx+olx,1-oly:sny+oly)
38    
39    
40     #ifdef ALLOW_BULK_FORCE
41     #ifdef ALLOW_TIMEAVE
42    
43    
44     c
45     C-- Time-average
46     do j = 1,sny
47     do i = 1,snx
48     BULK_Qnet_AVE(i,j,bi,bj)=BULK_Qnet_AVE(i,j,bi,bj)
49     & +Qnet(i,j,bi,bj)*deltaTclock
50     c & +lambdaThetaClimRelax*
51     c & (theta(i,j,1,bi,bj)-SST(i,j,bi,bj))/
52     c & (recip_Cp*recip_rhoNil*recip_dRf(1))*deltaTclock
53     BULK_EmPmR_AVE(i,j,bi,bj)=BULK_EmPmR_AVE(i,j,bi,bj)
54     & +EmPmR(i,j,bi,bj)*deltaTclock
55     BULK_fu_AVE(i,j,bi,bj)=BULK_fu_AVE(i,j,bi,bj)
56     & +fu(i,j,bi,bj)*deltaTclock
57     BULK_fv_AVE(i,j,bi,bj)=BULK_fv_AVE(i,j,bi,bj)
58     & +fv(i,j,bi,bj)*deltaTclock
59     BULK_latent_AVE(i,j,bi,bj)=BULK_latent_AVE(i,j,bi,bj)
60     & +flh(i,j)*deltaTclock
61     BULK_sensible_AVE(i,j,bi,bj)=BULK_sensible_AVE(i,j,bi,bj)
62     & +fsh(i,j)*deltaTclock
63     BULK_evap_AVE(i,j,bi,bj)=BULK_evap_AVE(i,j,bi,bj)
64     & +evap(i,j)*deltaTclock
65     BULK_flw_AVE(i,j,bi,bj)=BULK_flw_AVE(i,j,bi,bj)
66     & +flwup(i,j)*deltaTclock
67     BULK_solar_AVE(i,j,bi,bj)=BULK_solar_AVE(i,j,bi,bj)
68     & +fswnet(i,j)*deltaTclock
69     BULK_ssq_AVE(i,j,bi,bj)=BULK_ssq_AVE(i,j,bi,bj)
70     & +savssq(i,j)*deltaTclock
71     enddo
72     enddo
73     BULKF_timeave(bi,bj)=BULKF_timeave(bi,bj)+deltaTclock
74    
75     c print*,'QQ end bulkf ave'
76    
77     #endif /*ALLOW_TIMEAVE*/
78     #endif /*ALLOW_BULK_FORCE*/
79     return
80     end
81    

  ViewVC Help
Powered by ViewVC 1.1.22