/[MITgcm]/MITgcm/pkg/shelfice/shelfice_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/shelfice/shelfice_readparms.F

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


Revision 1.6 - (hide annotations) (download)
Wed Oct 10 09:26:39 2007 UTC (16 years, 7 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59k, checkpoint59j, checkpoint61b, checkpoint61c, checkpoint61a
Changes since 1.5: +4 -2 lines
add option for convservative form of Hellmer&Olbers (1989) thermodynamics
- requires a little reorganization, which affects the testreport results
  of isomip.htd (only 7 digits of cg2d agree) => update experiment
  The results are extremely sensitive to details of the algorithm
  (e.g., order in which sums and differences are taken, etc) so that
  replacing a term with a (theoretically) exactly equal other term
  causes the big difference; possibly, because the solution of a
  quadratic equation is involed. I am not happy about this, but the
  present formulation appears to be a little more robust.
- add a few comments

1 mlosch 1.6 C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_readparms.F,v 1.5 2007/01/25 21:39:25 jmc Exp $
2 mlosch 1.1 C $Name: $
3    
4     #include "SHELFICE_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: SHELFICE_READPARMS
8    
9     C !INTERFACE: ==========================================================
10     SUBROUTINE SHELFICE_READPARMS( myThid )
11    
12     C !DESCRIPTION:
13     C Initialize SHELFICE parameters, read in data.shelfice
14    
15     C !USES: ===============================================================
16     IMPLICIT NONE
17     #include "SIZE.h"
18     #include "EEPARAMS.h"
19     #include "SHELFICE.h"
20     #include "PARAMS.h"
21     #ifdef ALLOW_MNC
22     # include "MNC_PARAMS.h"
23     #endif
24    
25     C !INPUT PARAMETERS: ===================================================
26     C myThid :: thread number
27     INTEGER myThid
28    
29     C !OUTPUT PARAMETERS: ==================================================
30     C none
31    
32     #ifdef ALLOW_SHELFICE
33    
34     C !LOCAL VARIABLES: ====================================================
35     C iUnit :: unit number for I/O
36     C msgBuf :: message buffer
37     INTEGER iUnit
38     CHARACTER*(MAX_LEN_MBUF) msgBuf
39     CEOP
40    
41     NAMELIST /SHELFICE_PARM01/
42 mlosch 1.3 & SHELFICEheatTransCoeff,
43     & SHELFICEsaltTransCoeff,
44     & rhoShelfice, SHELFICEkappa,
45     & SHELFICElatentHeat, SHELFICEHeatCapacity_Cp,
46 mlosch 1.1 & SHELFICEDragLinear, SHELFICEDragQuadratic,
47 mlosch 1.3 & SHELFICEthetaSurface,
48 mlosch 1.6 & useISOMIPTD, no_slip_shelfice,
49     & SHELFICEconserve, SHELFICEboundaryLayer,
50 mlosch 1.1 & SHELFICEwriteState,
51     & SHELFICE_dumpFreq,
52     & SHELFICE_taveFreq,
53     & SHELFICE_tave_mnc,
54 mlosch 1.2 & SHELFICE_dump_mnc,
55     & SHELFICEloadAnomalyFile
56 mlosch 1.1
57 jmc 1.5 _BEGIN_MASTER(myThid)
58    
59 mlosch 1.1 C This routine has been called by the main model so we set our
60     C internal flag to indicate we are in business
61     SHELFICEisON=.TRUE.
62    
63     C Set defaults values for parameters in SHELFICE.h
64 mlosch 1.3 useISOMIPTD = .FALSE.
65 mlosch 1.6 SHELFICEconserve = .FALSE.
66 mlosch 1.4 SHELFICEboundaryLayer = .FALSE.
67 mlosch 1.2 SHELFICEloadAnomalyFile = ' '
68 mlosch 1.3 SHELFICElatentHeat = 334.0 _d 3
69     SHELFICEHeatCapacity_Cp = 2000.0 _d 0
70     recip_SHELFICElatentHeat = 0.0 _d 0
71     rhoShelfIce = 917.0 _d 0
72     SHELFICEheatTransCoeff = 1.0 _d -04
73     SHELFICEsaltTransCoeff = UNSET_RL
74     SHELFICEkappa = 1.54 _d -06
75     SHELFICEthetaSurface = - 20.0 _d 0
76 mlosch 1.1 no_slip_shelfice = no_slip_bottom
77     SHELFICEDragLinear = bottomDragLinear
78     SHELFICEDragQuadratic = bottomDragQuadratic
79     SHELFICEwriteState = .FALSE.
80     SHELFICE_dumpFreq = dumpFreq
81     SHELFICE_taveFreq = taveFreq
82     #ifdef ALLOW_MNC
83     SHELFICE_tave_mnc = timeave_mnc
84     SHELFICE_dump_mnc = snapshot_mnc
85     #else
86     SHELFICE_tave_mnc = .FALSE.
87     SHELFICE_dump_mnc = .FALSE.
88     #endif
89    
90     C Open and read the data.shelfice file
91     WRITE(msgBuf,'(A)') ' SHELFICE_READPARMS: opening data.shelfice'
92     CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
93 jmc 1.5 & SQUEEZE_RIGHT, myThid )
94 mlosch 1.1 CALL OPEN_COPY_DATA_FILE(
95     I 'data.shelfice', 'SHELFICE_READPARMS',
96     O iUnit,
97     I myThid )
98     READ(UNIT=iUnit,NML=SHELFICE_PARM01)
99     WRITE(msgBuf,'(A)')
100     & ' SHELFICE_READPARMS: finished reading data.shelfice'
101     CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
102 jmc 1.5 & SQUEEZE_RIGHT, myThid )
103 mlosch 1.1
104     C Close the open data file
105     CLOSE(iUnit)
106    
107 jmc 1.5 C Now set-up any remaining parameters that result from the input parameters
108 mlosch 1.1 IF ( SHELFICElatentHeat .NE. 0. _d 0 )
109     & recip_SHELFICElatentHeat = 1. _d 0/SHELFICElatentHeat
110 mlosch 1.3 IF ( SHELFICEsaltTransCoeff .EQ. UNSET_RL )
111 jmc 1.5 & SHELFICEsaltTransCoeff =
112 mlosch 1.3 & 5.05 _d -3 *SHELFICEheatTransCoeff
113 mlosch 1.1
114     C- Set Output type flags :
115     SHELFICE_tave_mdsio = .TRUE.
116     SHELFICE_dump_mdsio = .TRUE.
117     #ifdef ALLOW_MNC
118     IF (useMNC) THEN
119     IF ( .NOT.outputTypesInclusive
120     & .AND. SHELFICE_tave_mnc ) SHELFICE_tave_mdsio = .FALSE.
121     IF ( .NOT.outputTypesInclusive
122     & .AND. SHELFICE_dump_mnc ) SHELFICE_dump_mdsio = .FALSE.
123     ENDIF
124     #endif
125    
126 jmc 1.5 _END_MASTER(myThid)
127     C Everyone else must wait for the parameters to be loaded
128     _BARRIER
129    
130 mlosch 1.1 #ifdef ALLOW_MNC
131     C Initialize MNC variable information for SHELFICE
132     IF ( useMNC .AND. (shelfice_tave_mnc.OR.shelfice_dump_mnc)
133     & ) THEN
134     CALL SHELFICE_MNC_INIT( myThid )
135     ENDIF
136     #endif /* ALLOW_MNC */
137    
138     #endif /* ALLOW_SHELFICE */
139    
140     RETURN
141     END

  ViewVC Help
Powered by ViewVC 1.1.22