/[MITgcm]/MITgcm/pkg/therm_seaice/ice_init.F
ViewVC logotype

Annotation of /MITgcm/pkg/therm_seaice/ice_init.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, 6 months ago) by cheisey
Branch: MAIN
CVS Tags: checkpoint47b_post, 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
2     #include "CPP_OPTIONS.h"
3    
4     CStartOfInterface
5     SUBROUTINE ICE_INIT( myThid )
6     C /==========================================================\
7     C | SUBROUTINE ICE_INIT |
8     C | o Set model ice parameters |
9     C |==========================================================|
10     IMPLICIT NONE
11    
12     C === Global variables ===
13     #include "SIZE.h"
14     #include "EEPARAMS.h"
15     #include "PARAMS.h"
16     #include "GRID.h"
17     #include "DYNVARS.h"
18     cswdice -- add ---
19     #ifdef ALLOW_THERM_SEAICE
20     #include "ICE.h"
21     #endif
22     cswdice -- end add --
23    
24     C == Routine arguments ==
25     C myThid - Number of this instance of INI_RBCS
26     INTEGER myThid
27     CEndOfInterface
28    
29     C == Local variables ==
30     C bi,bj - Loop counters
31     C I,J
32     INTEGER bi, bj
33     INTEGER I, J
34     INTEGER prec
35     CHARACTER*(MAX_LEN_FNAM) fn
36    
37     _BARRIER
38    
39     cswdice -- add ----
40     #ifdef ALLOW_THERM_SEAICE
41     cQQ allowFreezing=.FALSE.
42     c set up ice arrays to zero if starting ice
43     if (startIceModel.eq.1) then
44     DO bj = myByLo(myThid), myByHi(myThid)
45     DO bi = myBxLo(myThid), myBxHi(myThid)
46     DO J=1,sNy
47     DO I=1,sNx
48     iceMask(i,j,bi,bj)=0.d0
49     iceHeight(i,j,bi,bj)=0.d0
50     snow(i,j,bi,bj)=0.d0
51     Tsrf(i,j,bi,bj)=theta(i,j,1,bi,bj)
52     Tice1(i,j,bi,bj)=0.d0
53     Tice2(i,j,bi,bj)=0.d0
54     Qice1(i,j,bi,bj)=0.d0
55     Qice2(i,j,bi,bj)=0.d0
56     sage(i,j,bi,bj)=0.d0
57     ENDDO
58     ENDDO
59     ENDDO
60     ENDDO
61     else
62     C-- Read ice pickup fields
63     prec=precFloat64
64     WRITE(fn,'(A,I10.10)') 'pickup_ic.',nIter0
65     CALL MDSREADFIELD(fn,prec,'RL',1,iceMask, 1,myThid)
66     CALL MDSREADFIELD(fn,prec,'RL',1,iceHeight, 2,myThid)
67     CALL MDSREADFIELD(fn,prec,'RL',1,snowHeight,3,myThid)
68     CALL MDSREADFIELD(fn,prec,'RL',1,Tsrf, 4,myThid)
69     CALL MDSREADFIELD(fn,prec,'RL',1,Tice1, 5,myThid)
70     CALL MDSREADFIELD(fn,prec,'RL',1,Tice2, 6,myThid)
71     CALL MDSREADFIELD(fn,prec,'RL',1,Qice1, 7,myThid)
72     CALL MDSREADFIELD(fn,prec,'RL',1,Qice2, 8,myThid)
73     CALL MDSREADFIELD(fn,prec,'RL',1,sage, 9,myThid)
74     endif
75    
76     _EXCH_XY_R8(iceMask, myThid)
77     _EXCH_XY_R8(iceHeight, myThid)
78     _EXCH_XY_R8(snowHeight, myThid)
79     _EXCH_XY_R8(Tsrf, myThid)
80     _EXCH_XY_R8(Tice1, myThid)
81     _EXCH_XY_R8(Tice2, myThid)
82     _EXCH_XY_R8(Qice1, myThid)
83     _EXCH_XY_R8(Qice2, myThid)
84    
85     #endif
86    
87     cswdcou -- add ---
88     #ifdef COUPLE_MODEL
89     DO bj = myByLo(myThid), myByHi(myThid)
90     DO bi = myBxLo(myThid), myBxHi(myThid)
91     DO J=1,sNy
92     DO I=1,sNx
93     dFdT(i,j,bi,bj)=0.d0
94     ENDDO
95     ENDDO
96     ENDDO
97     ENDDO
98     _EXCH_XY_R8(dFdT, myThid)
99     #endif
100     cswdcou -- end add ---
101    
102    
103     cswdice -------
104    
105     RETURN
106     END

  ViewVC Help
Powered by ViewVC 1.1.22