C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/thsice/thsice_readparms.F,v 1.1 2003/11/23 01:20:13 jmc Exp $ C $Name: $ #include "THSICE_OPTIONS.h" SUBROUTINE THSICE_READPARMS( myThid ) C /==========================================================* C | SUBROUTINE THSICE_READPARMS C | o Routine to initialize THSICE parameters and constants C |==========================================================* C | Initialize Th-Sea-ICE parameters, read in data.ice C \==========================================================* IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "THSICE_PARAMS.h" c #include "THSICE.h" C === Routine arguments === INTEGER myThid #ifdef ALLOW_THSICE C === Local variables === C msgBuf - Informational/error meesage buffer C iUnit - Work variable for IO unit number CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER iUnit C-- Th-Sea-ICE parameter NAMELIST /THSICE_CONST/ & rhos, rhoi, rhosw, rhofw, & cpice, cpwater, & kice, ksnow, & transcoef, Lfresh, qsnow, & albsnodry, albsnowet, albicemax, albicemin, halb, & i0, ksolar, & saltice, S_winton, mu_Tf, & Tf0kel, & himin, Terrmax, nitMaxTsf, hiMax, hsMax, & iceMaskmax, iceMaskmin, himin0, & frac_energy, hihig NAMELIST /THSICE_PARM01/ & startIceModel, & thSIce_deltaT, & stressReduction, & thSIce_taveFreq, thSIce_diagFreq, thSIce_monFreq _BEGIN_MASTER(myThid) WRITE(msgBuf,'(A)') ' THSICE_READPARMS: opening data.ice' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) CALL OPEN_COPY_DATA_FILE( I 'data.ice', 'THSICE_READPARMS', O iUnit, I myThid ) C-- Default values (constants) rhos = 330. _d 0 rhoi = 900. _d 0 rhosw = rhoConst rhofw = rhoConstFresh cpice = 2106. _d 0 cpwater = HeatCapacity_Cp kice = 2.03 _d 0 ksnow = 0.30 _d 0 transcoef=0.006 _d 0 Lfresh = 3.34 _d 5 qsnow = Lfresh albsnodry= 0.85 _d 0 albsnowet= 0.75 _d 0 albicemax= 0.65 _d 0 albicemin= 0.20 _d 0 halb = 0.5 _d 0 i0 = 0.3 _d 0 ksolar = 1.5 _d 0 saltice = 4. _d 0 S_winton = 1. _d 0 mu_Tf = 0.054 _d 0 Tf0kel = celsius2K himin = 0.01 _d 0 Terrmax = 5.0 _d -1 nitMaxTsf= 20 hiMax = 10. _d 0 hsMax = 10. _d 0 iceMaskmax = 1. _d 0 iceMaskmin = .1 _d 0 himin0 = 0.2 _d 0 frac_energy= .4 _d 0 hihig = 2.5 _d 0 C-- Default values (parameters) startIceModel = 0 thSIce_deltaT = deltaTtracer stressReduction = 1. _d 0 thSIce_taveFreq = taveFreq thSIce_diagFreq = dumpFreq thSIce_monFreq = monitorFreq C-- Read parameters from open data file READ(UNIT=iUnit,NML=THSICE_CONST) WRITE(msgBuf,'(A)') ' THSICE_READPARMS: read THSICE_CONST' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) READ(UNIT=iUnit,NML=THSICE_PARM01) WRITE(msgBuf,'(A)') ' THSICE_READPARMS: read THSICE_PARM01' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) C-- Close the open data file CLOSE(iUnit) C- Define other constants (from previous ones): Tmlt1=-mu_Tf*S_winton rhoiw = rhosw - rhoi C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| iUnit = standardMessageUnit c iUnit = 88 c OPEN(iUnit,file='thsice_check_params',status='unknown') WRITE(iUnit,*) 'ThSI: rhos =',rhos WRITE(iUnit,*) 'ThSI: rhoi =',rhoi WRITE(iUnit,*) 'ThSI: rhosw =',rhosw WRITE(iUnit,*) 'ThSI: rhofw =',rhofw WRITE(iUnit,*) 'ThSI: rhoiw =',rhoiw WRITE(iUnit,*) 'ThSI: cpice =',cpice WRITE(iUnit,*) 'ThSI: cpwater =',cpwater WRITE(iUnit,*) 'ThSI: kice =',kice WRITE(iUnit,*) 'ThSI: ksnow =',ksnow WRITE(iUnit,*) 'ThSI: transcoef=',transcoef WRITE(iUnit,*) 'ThSI: Lfresh =',Lfresh WRITE(iUnit,*) 'ThSI: qsnow =',qsnow WRITE(iUnit,*) 'ThSI: albsnodry=',albsnodry WRITE(iUnit,*) 'ThSI: albsnowet=',albsnowet WRITE(iUnit,*) 'ThSI: albicemax=',albicemax WRITE(iUnit,*) 'ThSI: albicemin=',albicemin WRITE(iUnit,*) 'ThSI: halb =',halb WRITE(iUnit,*) 'ThSI: i0 =',i0 WRITE(iUnit,*) 'ThSI: ksolar =',ksolar WRITE(iUnit,*) 'ThSI: saltice =',saltice WRITE(iUnit,*) 'ThSI: S_winton=',S_winton WRITE(iUnit,*) 'ThSI: mu_Tf =',mu_Tf WRITE(iUnit,*) 'ThSI: Tf0kel =',Tf0kel WRITE(iUnit,*) 'ThSI: Tmlt1 =',Tmlt1 WRITE(iUnit,*) 'ThSI: himin =',himin WRITE(iUnit,*) 'ThSI: Terrmax =',Terrmax WRITE(iUnit,*) 'ThSI: nitMaxTsf=',nitMaxTsf WRITE(iUnit,*) 'ThSI: hiMax =',hiMax WRITE(iUnit,*) 'ThSI: hsMax =',hsMax WRITE(iUnit,*) 'ThSI: iceMaskmax=',iceMaskmax WRITE(iUnit,*) 'ThSI: iceMaskmin=',iceMaskmin WRITE(iUnit,*) 'ThSI: himin0 =',himin0 WRITE(iUnit,*) 'ThSI: frac_energy',frac_energy WRITE(iUnit,*) 'ThSI: hihig =',hihig WRITE(iUnit,*) 'ThSI: stressReduction =',stressReduction WRITE(iUnit,*) 'ThSI: thSIce_deltaT =',thSIce_deltaT WRITE(iUnit,*) 'ThSI: thSIce_taveFreq=',thSIce_taveFreq WRITE(iUnit,*) 'ThSI: thSIce_diagFreq=',thSIce_diagFreq WRITE(iUnit,*) 'ThSI: thSIce_monFreq =',thSIce_monFreq WRITE(iUnit,*) 'ThSI: startIceModel =',startIceModel IF (iUnit.EQ.88) CLOSE(iUnit) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| _END_MASTER(myThid) C-- Everyone else must wait for the parameters to be loaded _BARRIER #endif /* ALLOW_THSICE */ RETURN END