/[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.3 by jmc, Wed Apr 7 23:40:34 2004 UTC revision 1.10 by jmc, Mon Jul 24 20:30:54 2006 UTC
# Line 26  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    #ifdef ALLOW_MNC
30    #include "MNC_PARAMS.h"
31    #endif
32    
33  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
34  C     === Routine arguments ===  C     === Routine arguments ===
# Line 46  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       &  albColdSnow, albWarmSnow, albOldSnow, hNewSnowAge,       &  albColdSnow, albWarmSnow, tempSnowAlb,
53         &  albOldSnow, hNewSnowAge, snowAgTime,
54       &  albIceMax, albIceMin, hAlbIce, hAlbSnow,       &  albIceMax, albIceMin, hAlbIce, hAlbSnow,
55       &  i0, ksolar,       &  i0, ksolar,
56       &  saltice, S_winton, mu_Tf,       &  saltice, S_winton, mu_Tf,
# Line 54  C--   Th-Sea-ICE parameter Line 58  C--   Th-Sea-ICE parameter
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, stepFwd_oceMxL,       &     startIceModel, stepFwd_oceMxL,
64       &         thSIce_deltaT, ocean_deltaT, tauRelax_MxL,       &     thSIce_deltaT, ocean_deltaT, tauRelax_MxL,
65       &         hMxL_default, sMxL_default, vMxL_default,       &     hMxL_default, sMxL_default, vMxL_default,
66       &         stressReduction,       &     stressReduction,
67       &         thSIce_taveFreq, thSIce_diagFreq, thSIce_monFreq       &     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 87  C--   Default values (constants) Line 96  C--   Default values (constants)
96        qsnow    = Lfresh        qsnow    = Lfresh
97        albColdSnow= 0.85 _d 0        albColdSnow= 0.85 _d 0
98        albWarmSnow= 0.70 _d 0        albWarmSnow= 0.70 _d 0
99          tempSnowAlb= -10. _d 0
100        albOldSnow = 0.55 _d 0        albOldSnow = 0.55 _d 0
101        albIceMax  = 0.65 _d 0        albIceMax  = 0.65 _d 0
102        albIceMin  = 0.20 _d 0        albIceMin  = 0.20 _d 0
103        hAlbIce    = 0.50 _d 0        hAlbIce    = 0.50 _d 0
104        hAlbSnow   = 0.30 _d 0        hAlbSnow   = 0.30 _d 0
105        hNewSnowAge= 2. _d -3        hNewSnowAge= 2. _d -3
106          snowAgTime = 50. _d 0 * 86400. _d 0
107        i0       = 0.3 _d 0        i0       = 0.3 _d 0
108        ksolar   = 1.5 _d 0        ksolar   = 1.5 _d 0
109        saltice  = 4. _d 0        saltice  = 4. _d 0
# Line 113  C--   Default values (constants) Line 124  C--   Default values (constants)
124  C--   Default values (parameters)  C--   Default values (parameters)
125        stepFwd_oceMxL  = .FALSE.        stepFwd_oceMxL  = .FALSE.
126        startIceModel   = 0        startIceModel   = 0
127        thSIce_deltaT   = deltaTtracer        thSIce_deltaT   = dTtracerLev(1)
128        ocean_deltaT    = deltaTtracer        ocean_deltaT    = dTtracerLev(1)
129        tauRelax_MxL    = 0. _d 0        tauRelax_MxL    = 0. _d 0
130        hMxL_default    = 50. _d 0        hMxL_default    = 50. _d 0
131        sMxL_default    = 35. _d 0        sMxL_default    = 35. _d 0
132        vMxL_default    = 5. _d -2        vMxL_default    = 5. _d -2
133        stressReduction = 1. _d 0        stressReduction = 1. _d 0
134        thSIce_taveFreq = taveFreq        IF ( useSEAICE ) stressReduction = 0. _d 0
135          thSIce_taveFreq = taveFreq
136        thSIce_diagFreq = dumpFreq        thSIce_diagFreq = dumpFreq
137        thSIce_monFreq  = monitorFreq        thSIce_monFreq  = monitorFreq
138    #ifdef ALLOW_MNC
139          thSIce_tave_mnc     = timeave_mnc
140          thSIce_snapshot_mnc = snapshot_mnc
141          thSIce_mon_mnc      = monitor_mnc
142          thSIce_pickup_read_mnc  = pickup_read_mnc
143          thSIce_pickup_write_mnc = pickup_write_mnc
144    #else
145          thSIce_tave_mnc     = .FALSE.
146          thSIce_snapshot_mnc = .FALSE.
147          thSIce_mon_mnc      = .FALSE.
148          thSIce_pickup_read_mnc  = .FALSE.
149          thSIce_pickup_write_mnc = .FALSE.
150    #endif
151          thSIceFract_InitFile = ' '
152          thSIceThick_InitFile = ' '
153          thSIceSnowH_InitFile = ' '
154          thSIceSnowA_InitFile = ' '
155          thSIceEnthp_InitFile = ' '
156          thSIceTsurf_InitFile = ' '
157    
158    
159  C--   Read parameters from open data file  C--   Read parameters from open data file
160        READ(UNIT=iUnit,NML=THSICE_CONST)        READ(UNIT=iUnit,NML=THSICE_CONST)
# Line 142  C-    Define other constants (from previ Line 174  C-    Define other constants (from previ
174        Tmlt1=-mu_Tf*S_winton        Tmlt1=-mu_Tf*S_winton
175        rhoiw = rhosw - rhoi        rhoiw = rhosw - rhoi
176    
177    C     Set I/O parameters
178          thSIce_tave_mdsio     = .TRUE.
179          thSIce_snapshot_mdsio = .TRUE.
180          thSIce_mon_stdio      = .TRUE.
181          thSIce_pickup_write_mdsio = .TRUE.
182    #ifdef ALLOW_MNC
183          IF (useMNC) THEN
184            IF ( .NOT.outputTypesInclusive
185         &       .AND. thSIce_tave_mnc ) thSIce_tave_mdsio = .FALSE.
186            IF ( .NOT.outputTypesInclusive
187         &       .AND. thSIce_snapshot_mnc )
188         &       thSIce_snapshot_mdsio = .FALSE.
189            IF ( .NOT.outputTypesInclusive
190         &       .AND. thSIce_mon_mnc  ) thSIce_mon_stdio  = .FALSE.
191            IF ( .NOT.outputTypesInclusive
192         &       .AND. thSIce_pickup_write_mnc  )
193         &       thSIce_pickup_write_mdsio = .FALSE.
194          ENDIF
195    #endif
196    
197    C--   Check parameter consistency:
198          IF ( useSEAICE .AND. stressReduction.NE.0. _d 0 ) THEN
199    C--     If useSEAICE=.true., the stress is computed in seaice_model,
200    C--     so that it does not need any further reduction
201            WRITE(msgBuf,'(2A)')
202         &   'THSICE_READPARMS: if useSEAICE, stress will be computed',
203         &   ' by SEAICE pkg => no reduction'
204            CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
205         &                    SQUEEZE_RIGHT , myThid)
206            WRITE(msgBuf,'(A)')
207         &   'THSICE_READPARMS: WARNING: reset stressReduction to zero'
208            CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
209         &                    SQUEEZE_RIGHT , myThid)
210            stressReduction = 0. _d 0
211          ENDIF
212    
213  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
214        iUnit = standardMessageUnit        iUnit = standardMessageUnit
215  c     iUnit = 88  c     CALL MDSFINDUNIT( iUnit, mythid )
216  c     OPEN(iUnit,file='thsice_check_params',status='unknown')  c     OPEN(iUnit,file='thsice_check_params',status='unknown')
217        WRITE(iUnit,*) 'ThSI: rhos    =',rhos        WRITE(iUnit,*) 'ThSI: rhos    =',rhos
218        WRITE(iUnit,*) 'ThSI: rhoi    =',rhoi        WRITE(iUnit,*) 'ThSI: rhoi    =',rhoi
# Line 160  c     OPEN(iUnit,file='thsice_check_para Line 228  c     OPEN(iUnit,file='thsice_check_para
228        WRITE(iUnit,*) 'ThSI: qsnow   =',qsnow        WRITE(iUnit,*) 'ThSI: qsnow   =',qsnow
229        WRITE(iUnit,*) 'ThSI: albColdSnow=',albColdSnow        WRITE(iUnit,*) 'ThSI: albColdSnow=',albColdSnow
230        WRITE(iUnit,*) 'ThSI: albWarmSnow=',albWarmSnow        WRITE(iUnit,*) 'ThSI: albWarmSnow=',albWarmSnow
231          WRITE(iUnit,*) 'ThSI: tempSnowAlb=',tempSnowAlb
232        WRITE(iUnit,*) 'ThSI: albOldSnow =',albOldSnow        WRITE(iUnit,*) 'ThSI: albOldSnow =',albOldSnow
233        WRITE(iUnit,*) 'ThSI: hNewSnowAge=',hNewSnowAge        WRITE(iUnit,*) 'ThSI: hNewSnowAge=',hNewSnowAge
234          WRITE(iUnit,*) 'ThSI: snowAgTime =',snowAgTime
235        WRITE(iUnit,*) 'ThSI: albIceMax =',albIceMax        WRITE(iUnit,*) 'ThSI: albIceMax =',albIceMax
236        WRITE(iUnit,*) 'ThSI: albIceMin =',albIceMin        WRITE(iUnit,*) 'ThSI: albIceMin =',albIceMin
237        WRITE(iUnit,*) 'ThSI: hAlbIce   =',hAlbIce        WRITE(iUnit,*) 'ThSI: hAlbIce   =',hAlbIce
# Line 195  c     OPEN(iUnit,file='thsice_check_para Line 265  c     OPEN(iUnit,file='thsice_check_para
265        WRITE(iUnit,*) 'ThSI: thSIce_diagFreq=',thSIce_diagFreq        WRITE(iUnit,*) 'ThSI: thSIce_diagFreq=',thSIce_diagFreq
266        WRITE(iUnit,*) 'ThSI: thSIce_monFreq =',thSIce_monFreq        WRITE(iUnit,*) 'ThSI: thSIce_monFreq =',thSIce_monFreq
267        WRITE(iUnit,*) 'ThSI: startIceModel =',startIceModel        WRITE(iUnit,*) 'ThSI: startIceModel =',startIceModel
268        IF (iUnit.EQ.88) CLOSE(iUnit)        IF (iUnit.NE.standardMessageUnit) CLOSE(iUnit)
269  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
270    
271        _END_MASTER(myThid)        _END_MASTER(myThid)

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.22