/[MITgcm]/MITgcm/pkg/thsice/thsice_readparms.F
ViewVC logotype

Diff of /MITgcm/pkg/thsice/thsice_readparms.F

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

revision 1.1 by jmc, Sun Nov 23 01:20:13 2003 UTC revision 1.8 by jmc, Thu May 25 18:03:24 2006 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "THSICE_OPTIONS.h"  #include "THSICE_OPTIONS.h"
5    
6    CBOP
7    C     !ROUTINE: THSICE_READPARMS
8    C     !INTERFACE:
9        SUBROUTINE THSICE_READPARMS( myThid )        SUBROUTINE THSICE_READPARMS( myThid )
10  C     /==========================================================*  
11  C     | SUBROUTINE THSICE_READPARMS  C     !DESCRIPTION: \bv
12    C     *==========================================================*
13    C     | S/R THSICE_READPARMS
14  C     | o Routine to initialize THSICE parameters and constants  C     | o Routine to initialize THSICE parameters and constants
15  C     |==========================================================*  C     *==========================================================*
16  C     | Initialize Th-Sea-ICE parameters, read in data.ice  C     | Initialize Th-Sea-ICE parameters, read in data.ice
17  C     \==========================================================*  C     *==========================================================*
18    C     \ev
19    
20    C     !USES:
21        IMPLICIT NONE        IMPLICIT NONE
22    
23  C     === Global variables ===  C     === Global variables ===
# Line 18  C     === Global variables === Line 26  C     === Global variables ===
26  #include "PARAMS.h"  #include "PARAMS.h"
27  #include "GRID.h"  #include "GRID.h"
28  #include "THSICE_PARAMS.h"  #include "THSICE_PARAMS.h"
29  c #include "THSICE.h"  #ifdef ALLOW_MNC
30    #include "MNC_PARAMS.h"
31    #endif
32    
33    C     !INPUT/OUTPUT PARAMETERS:
34  C     === Routine arguments ===  C     === Routine arguments ===
35        INTEGER myThid        INTEGER myThid
36    CEOP
37    
38  #ifdef ALLOW_THSICE  #ifdef ALLOW_THSICE
39    
40  C     === Local variables ===  C     === Local variables ===
41  C     msgBuf      - Informational/error meesage buffer  C     msgBuf      - Informational/error message buffer
42  C     iUnit       - Work variable for IO unit number  C     iUnit       - Work variable for IO unit number
43        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
44        INTEGER iUnit        INTEGER iUnit
# Line 37  C--   Th-Sea-ICE parameter Line 49  C--   Th-Sea-ICE parameter
49       &  cpice, cpwater,       &  cpice, cpwater,
50       &  kice, ksnow,       &  kice, ksnow,
51       &  transcoef, Lfresh, qsnow,       &  transcoef, Lfresh, qsnow,
52       &  albsnodry, albsnowet, albicemax, albicemin, halb,       &  albColdSnow, albWarmSnow, albOldSnow,
53         &  hNewSnowAge, snowAgTime,
54         &  albIceMax, albIceMin, hAlbIce, hAlbSnow,
55       &  i0, ksolar,       &  i0, ksolar,
56       &  saltice, S_winton, mu_Tf,       &  saltice, S_winton, mu_Tf,
57       &  Tf0kel,       &  Tf0kel,
58       &  himin, Terrmax, nitMaxTsf, hiMax, hsMax,       &  himin, Terrmax, nitMaxTsf, hiMax, hsMax,
59       &  iceMaskmax, iceMaskmin, himin0,       &  iceMaskmax, iceMaskmin, himin0,
60       &  frac_energy, hihig       &  frac_energy, hihig
61    
62        NAMELIST /THSICE_PARM01/        NAMELIST /THSICE_PARM01/
63       &         startIceModel,       &     startIceModel, stepFwd_oceMxL,
64       &         thSIce_deltaT,       &     thSIce_deltaT, ocean_deltaT, tauRelax_MxL,
65       &         stressReduction,       &     hMxL_default, sMxL_default, vMxL_default,
66       &         thSIce_taveFreq, thSIce_diagFreq, thSIce_monFreq       &     stressReduction,
67         &     thSIce_taveFreq, thSIce_diagFreq, thSIce_monFreq,
68         &     thSIce_tave_mnc, thSIce_snapshot_mnc, thSIce_mon_mnc,
69         &     thSIce_pickup_read_mnc, thSIce_pickup_write_mnc,
70         &     thSIceFract_InitFile, thSIceThick_InitFile,
71         &     thSIceSnowH_InitFile, thSIceSnowA_InitFile,
72         &     thSIceEnthp_InitFile, thSIceTsurf_InitFile
73    
74        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
75    
76        WRITE(msgBuf,'(A)') ' THSICE_READPARMS: opening data.ice'        WRITE(msgBuf,'(A)') ' THSICE_READPARMS: opening data.ice'
77        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
78       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
79        
80        CALL OPEN_COPY_DATA_FILE(        CALL OPEN_COPY_DATA_FILE(
81       I                          'data.ice', 'THSICE_READPARMS',       I                          'data.ice', 'THSICE_READPARMS',
82       O                          iUnit,       O                          iUnit,
# Line 74  C--   Default values (constants) Line 94  C--   Default values (constants)
94        transcoef=0.006 _d 0        transcoef=0.006 _d 0
95        Lfresh   = 3.34 _d 5        Lfresh   = 3.34 _d 5
96        qsnow    = Lfresh        qsnow    = Lfresh
97        albsnodry= 0.85 _d 0        albColdSnow= 0.85 _d 0
98        albsnowet= 0.75 _d 0        albWarmSnow= 0.70 _d 0
99        albicemax= 0.65 _d 0        albOldSnow = 0.55 _d 0
100        albicemin= 0.20 _d 0        albIceMax  = 0.65 _d 0
101        halb     = 0.5 _d 0        albIceMin  = 0.20 _d 0
102          hAlbIce    = 0.50 _d 0
103          hAlbSnow   = 0.30 _d 0
104          hNewSnowAge= 2. _d -3
105          snowAgTime = 50. _d 0 * 86400. _d 0
106        i0       = 0.3 _d 0        i0       = 0.3 _d 0
107        ksolar   = 1.5 _d 0        ksolar   = 1.5 _d 0
108        saltice  = 4. _d 0        saltice  = 4. _d 0
# Line 97  C--   Default values (constants) Line 121  C--   Default values (constants)
121        hihig      = 2.5 _d 0        hihig      = 2.5 _d 0
122    
123  C--   Default values (parameters)  C--   Default values (parameters)
124        startIceModel  = 0        stepFwd_oceMxL  = .FALSE.
125        thSIce_deltaT   = deltaTtracer        startIceModel   = 0
126          thSIce_deltaT   = dTtracerLev(1)
127          ocean_deltaT    = dTtracerLev(1)
128          tauRelax_MxL    = 0. _d 0
129          hMxL_default    = 50. _d 0
130          sMxL_default    = 35. _d 0
131          vMxL_default    = 5. _d -2
132        stressReduction = 1. _d 0        stressReduction = 1. _d 0
133        thSIce_taveFreq = taveFreq        thSIce_taveFreq = taveFreq
134        thSIce_diagFreq = dumpFreq        thSIce_diagFreq = dumpFreq
135        thSIce_monFreq  = monitorFreq        thSIce_monFreq  = monitorFreq
136    #ifdef ALLOW_MNC
137          thSIce_tave_mnc     = timeave_mnc
138          thSIce_snapshot_mnc = snapshot_mnc
139          thSIce_mon_mnc      = monitor_mnc
140          thSIce_pickup_read_mnc  = pickup_read_mnc
141          thSIce_pickup_write_mnc = pickup_write_mnc
142    #else
143          thSIce_tave_mnc     = .FALSE.
144          thSIce_snapshot_mnc = .FALSE.
145          thSIce_mon_mnc      = .FALSE.
146          thSIce_pickup_read_mnc  = .FALSE.
147          thSIce_pickup_write_mnc = .FALSE.
148    #endif
149          thSIceFract_InitFile = ' '
150          thSIceThick_InitFile = ' '
151          thSIceSnowH_InitFile = ' '
152          thSIceSnowA_InitFile = ' '
153          thSIceEnthp_InitFile = ' '
154          thSIceTsurf_InitFile = ' '
155    
156    
157  C--   Read parameters from open data file  C--   Read parameters from open data file
158        READ(UNIT=iUnit,NML=THSICE_CONST)        READ(UNIT=iUnit,NML=THSICE_CONST)
# Line 122  C-    Define other constants (from previ Line 172  C-    Define other constants (from previ
172        Tmlt1=-mu_Tf*S_winton        Tmlt1=-mu_Tf*S_winton
173        rhoiw = rhosw - rhoi        rhoiw = rhosw - rhoi
174    
175    C     Set I/O parameters
176          thSIce_tave_mdsio     = .TRUE.
177          thSIce_snapshot_mdsio = .TRUE.
178          thSIce_mon_stdio      = .TRUE.
179          thSIce_pickup_write_mdsio = .TRUE.
180    #ifdef ALLOW_MNC
181          IF (useMNC) THEN
182            IF ( .NOT.outputTypesInclusive
183         &       .AND. thSIce_tave_mnc ) thSIce_tave_mdsio = .FALSE.
184            IF ( .NOT.outputTypesInclusive
185         &       .AND. thSIce_snapshot_mnc )
186         &       thSIce_snapshot_mdsio = .FALSE.
187            IF ( .NOT.outputTypesInclusive
188         &       .AND. thSIce_mon_mnc  ) thSIce_mon_stdio  = .FALSE.
189            IF ( .NOT.outputTypesInclusive
190         &       .AND. thSIce_pickup_write_mnc  )
191         &       thSIce_pickup_write_mdsio = .FALSE.
192          ENDIF
193    #endif
194    
195  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
196        iUnit = standardMessageUnit        iUnit = standardMessageUnit
197  c     iUnit = 88  c     CALL MDSFINDUNIT( iUnit, mythid )
198  c     OPEN(iUnit,file='thsice_check_params',status='unknown')  c     OPEN(iUnit,file='thsice_check_params',status='unknown')
199        WRITE(iUnit,*) 'ThSI: rhos    =',rhos        WRITE(iUnit,*) 'ThSI: rhos    =',rhos
200        WRITE(iUnit,*) 'ThSI: rhoi    =',rhoi        WRITE(iUnit,*) 'ThSI: rhoi    =',rhoi
# Line 138  c     OPEN(iUnit,file='thsice_check_para Line 208  c     OPEN(iUnit,file='thsice_check_para
208        WRITE(iUnit,*) 'ThSI: transcoef=',transcoef        WRITE(iUnit,*) 'ThSI: transcoef=',transcoef
209        WRITE(iUnit,*) 'ThSI: Lfresh  =',Lfresh        WRITE(iUnit,*) 'ThSI: Lfresh  =',Lfresh
210        WRITE(iUnit,*) 'ThSI: qsnow   =',qsnow        WRITE(iUnit,*) 'ThSI: qsnow   =',qsnow
211        WRITE(iUnit,*) 'ThSI: albsnodry=',albsnodry        WRITE(iUnit,*) 'ThSI: albColdSnow=',albColdSnow
212        WRITE(iUnit,*) 'ThSI: albsnowet=',albsnowet        WRITE(iUnit,*) 'ThSI: albWarmSnow=',albWarmSnow
213        WRITE(iUnit,*) 'ThSI: albicemax=',albicemax        WRITE(iUnit,*) 'ThSI: albOldSnow =',albOldSnow
214        WRITE(iUnit,*) 'ThSI: albicemin=',albicemin        WRITE(iUnit,*) 'ThSI: albIceMax =',albIceMax
215        WRITE(iUnit,*) 'ThSI: halb    =',halb        WRITE(iUnit,*) 'ThSI: albIceMin =',albIceMin
216          WRITE(iUnit,*) 'ThSI: hAlbIce   =',hAlbIce
217          WRITE(iUnit,*) 'ThSI: hAlbSnow  =',hAlbSnow
218          WRITE(iUnit,*) 'ThSI: hNewSnowAge=',hNewSnowAge
219          WRITE(iUnit,*) 'ThSI: snowAgTime =',snowAgTime
220        WRITE(iUnit,*) 'ThSI: i0      =',i0        WRITE(iUnit,*) 'ThSI: i0      =',i0
221        WRITE(iUnit,*) 'ThSI: ksolar  =',ksolar        WRITE(iUnit,*) 'ThSI: ksolar  =',ksolar
222        WRITE(iUnit,*) 'ThSI: saltice =',saltice        WRITE(iUnit,*) 'ThSI: saltice =',saltice
# Line 161  c     OPEN(iUnit,file='thsice_check_para Line 235  c     OPEN(iUnit,file='thsice_check_para
235        WRITE(iUnit,*) 'ThSI: frac_energy',frac_energy        WRITE(iUnit,*) 'ThSI: frac_energy',frac_energy
236        WRITE(iUnit,*) 'ThSI: hihig   =',hihig        WRITE(iUnit,*) 'ThSI: hihig   =',hihig
237        WRITE(iUnit,*) 'ThSI: stressReduction =',stressReduction        WRITE(iUnit,*) 'ThSI: stressReduction =',stressReduction
238        WRITE(iUnit,*) 'ThSI: thSIce_deltaT  =',thSIce_deltaT        WRITE(iUnit,*) 'ThSI: thSIce_deltaT =',thSIce_deltaT
239          WRITE(iUnit,*) 'ThSI: ocean_deltaT  =',ocean_deltaT
240          WRITE(iUnit,*) 'ThSI: stepFwd_oceMxL=',stepFwd_oceMxL
241          WRITE(iUnit,*) 'ThSI: tauRelax_MxL  =',tauRelax_MxL
242          WRITE(iUnit,*) 'ThSI: hMxL_default  =',hMxL_default
243          WRITE(iUnit,*) 'ThSI: sMxL_default  =',sMxL_default
244          WRITE(iUnit,*) 'ThSI: vMxL_default  =',vMxL_default
245        WRITE(iUnit,*) 'ThSI: thSIce_taveFreq=',thSIce_taveFreq        WRITE(iUnit,*) 'ThSI: thSIce_taveFreq=',thSIce_taveFreq
246        WRITE(iUnit,*) 'ThSI: thSIce_diagFreq=',thSIce_diagFreq        WRITE(iUnit,*) 'ThSI: thSIce_diagFreq=',thSIce_diagFreq
247        WRITE(iUnit,*) 'ThSI: thSIce_monFreq =',thSIce_monFreq        WRITE(iUnit,*) 'ThSI: thSIce_monFreq =',thSIce_monFreq
248        WRITE(iUnit,*) 'ThSI: startIceModel =',startIceModel        WRITE(iUnit,*) 'ThSI: startIceModel =',startIceModel
249        IF (iUnit.EQ.88) CLOSE(iUnit)        IF (iUnit.NE.standardMessageUnit) CLOSE(iUnit)
250  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
251    
252        _END_MASTER(myThid)        _END_MASTER(myThid)

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22