/[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.5 - (hide annotations) (download)
Thu Jan 25 21:39:25 2007 UTC (17 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58w_post, checkpoint58x_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59h, checkpoint59, checkpoint58y_post, checkpoint58v_post
Changes since 1.4: +12 -11 lines
fix for multi-threaded

1 jmc 1.5 C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_readparms.F,v 1.4 2006/08/14 16:52:45 mlosch 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 jmc 1.5 & useISOMIPTD, no_slip_shelfice, SHELFICEboundaryLayer,
49 mlosch 1.1 & SHELFICEwriteState,
50     & SHELFICE_dumpFreq,
51     & SHELFICE_taveFreq,
52     & SHELFICE_tave_mnc,
53 mlosch 1.2 & SHELFICE_dump_mnc,
54     & SHELFICEloadAnomalyFile
55 mlosch 1.1
56 jmc 1.5 _BEGIN_MASTER(myThid)
57    
58 mlosch 1.1 C This routine has been called by the main model so we set our
59     C internal flag to indicate we are in business
60     SHELFICEisON=.TRUE.
61    
62     C Set defaults values for parameters in SHELFICE.h
63 mlosch 1.3 useISOMIPTD = .FALSE.
64 mlosch 1.4 SHELFICEboundaryLayer = .FALSE.
65 mlosch 1.2 SHELFICEloadAnomalyFile = ' '
66 mlosch 1.3 SHELFICElatentHeat = 334.0 _d 3
67     SHELFICEHeatCapacity_Cp = 2000.0 _d 0
68     recip_SHELFICElatentHeat = 0.0 _d 0
69     rhoShelfIce = 917.0 _d 0
70     SHELFICEheatTransCoeff = 1.0 _d -04
71     SHELFICEsaltTransCoeff = UNSET_RL
72     SHELFICEkappa = 1.54 _d -06
73     SHELFICEthetaSurface = - 20.0 _d 0
74 mlosch 1.1 no_slip_shelfice = no_slip_bottom
75     SHELFICEDragLinear = bottomDragLinear
76     SHELFICEDragQuadratic = bottomDragQuadratic
77     SHELFICEwriteState = .FALSE.
78     SHELFICE_dumpFreq = dumpFreq
79     SHELFICE_taveFreq = taveFreq
80     #ifdef ALLOW_MNC
81     SHELFICE_tave_mnc = timeave_mnc
82     SHELFICE_dump_mnc = snapshot_mnc
83     #else
84     SHELFICE_tave_mnc = .FALSE.
85     SHELFICE_dump_mnc = .FALSE.
86     #endif
87    
88     C Open and read the data.shelfice file
89     WRITE(msgBuf,'(A)') ' SHELFICE_READPARMS: opening data.shelfice'
90     CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
91 jmc 1.5 & SQUEEZE_RIGHT, myThid )
92 mlosch 1.1 CALL OPEN_COPY_DATA_FILE(
93     I 'data.shelfice', 'SHELFICE_READPARMS',
94     O iUnit,
95     I myThid )
96     READ(UNIT=iUnit,NML=SHELFICE_PARM01)
97     WRITE(msgBuf,'(A)')
98     & ' SHELFICE_READPARMS: finished reading data.shelfice'
99     CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
100 jmc 1.5 & SQUEEZE_RIGHT, myThid )
101 mlosch 1.1
102     C Close the open data file
103     CLOSE(iUnit)
104    
105 jmc 1.5 C Now set-up any remaining parameters that result from the input parameters
106 mlosch 1.1 IF ( SHELFICElatentHeat .NE. 0. _d 0 )
107     & recip_SHELFICElatentHeat = 1. _d 0/SHELFICElatentHeat
108 mlosch 1.3 IF ( SHELFICEsaltTransCoeff .EQ. UNSET_RL )
109 jmc 1.5 & SHELFICEsaltTransCoeff =
110 mlosch 1.3 & 5.05 _d -3 *SHELFICEheatTransCoeff
111 mlosch 1.1
112     C- Set Output type flags :
113     SHELFICE_tave_mdsio = .TRUE.
114     SHELFICE_dump_mdsio = .TRUE.
115     #ifdef ALLOW_MNC
116     IF (useMNC) THEN
117     IF ( .NOT.outputTypesInclusive
118     & .AND. SHELFICE_tave_mnc ) SHELFICE_tave_mdsio = .FALSE.
119     IF ( .NOT.outputTypesInclusive
120     & .AND. SHELFICE_dump_mnc ) SHELFICE_dump_mdsio = .FALSE.
121     ENDIF
122     #endif
123    
124 jmc 1.5 _END_MASTER(myThid)
125     C Everyone else must wait for the parameters to be loaded
126     _BARRIER
127    
128 mlosch 1.1 #ifdef ALLOW_MNC
129     C Initialize MNC variable information for SHELFICE
130     IF ( useMNC .AND. (shelfice_tave_mnc.OR.shelfice_dump_mnc)
131     & ) THEN
132     CALL SHELFICE_MNC_INIT( myThid )
133     ENDIF
134     #endif /* ALLOW_MNC */
135    
136     #endif /* ALLOW_SHELFICE */
137    
138     RETURN
139     END

  ViewVC Help
Powered by ViewVC 1.1.22