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

Diff of /MITgcm/pkg/thsice/thsice_check_conserv.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.3 by jmc, Mon Mar 13 03:53:40 2006 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "THSICE_OPTIONS.h"  #include "THSICE_OPTIONS.h"
5    
6  C     !ROUTINE: THSICE_CHECK_CONSERV  C     !ROUTINE: THSICE_CHECK_CONSERV
7  C     !INTERFACE:  C     !INTERFACE:
8        SUBROUTINE THSICE_CHECK_CONSERV(        SUBROUTINE THSICE_CHECK_CONSERV(
# Line 11  C     !INTERFACE: Line 11  C     !INTERFACE:
11       I             qleft, ffresh, fsalt, flxAtm, frwAtm,       I             qleft, ffresh, fsalt, flxAtm, frwAtm,
12       I             myTime, myIter, myThid )       I             myTime, myIter, myThid )
13  C     *==========================================================*  C     *==========================================================*
14  C     | SUBROUTINE  THSICE_CHECK_CONSERV              C     | S/R  THSICE_CHECK_CONSERV
15  C     | o Check Conservation of Energy, water and salt  C     | o Check Conservation of Energy, water and salt
16  C     *==========================================================*  C     *==========================================================*
17    
# Line 23  C     === Global variables === Line 23  C     === Global variables ===
23  c #include "PARAMS.h"  c #include "PARAMS.h"
24  #include "THSICE_SIZE.h"  #include "THSICE_SIZE.h"
25  #include "THSICE_PARAMS.h"  #include "THSICE_PARAMS.h"
26  #include "THSICE.h"  #include "THSICE_VARS.h"
27  #include "THSICE_DIAGS.h"  #include "THSICE_TAVE.h"
28    
29  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
30  C     === Routine arguments ===  C     === Routine arguments ===
31  C     myIter :: iteration counter for this thread  C     myIter :: iteration counter for this thread
# Line 48  C     === Local variables === Line 48  C     === Local variables ===
48        _RL dEnerg, dWater, dSalt        _RL dEnerg, dWater, dSalt
49        _RL flxFrac        _RL flxFrac
50    
51   1010 FORMAT(A,1P4E11.3)   1010 FORMAT(A,1P4E14.6)
52    
 c         iceFrac = iceMask(i,j,bi,bj)  
53            flxFrac = iceFrac            flxFrac = iceFrac
54            IF (iceStart.EQ.1) flxFrac = 1.            IF (iceStart.EQ.1) flxFrac = 1.
55    
56  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
57            dEnerg= -rhos*snowHeight(i,j,bi,bj)*qsnow            dEnerg= -rhos*snowHeight(i,j,bi,bj)*qsnow
58       &            -rhoi*iceHeight(i,j,bi,bj)       &            -rhoi*iceHeight(i,j,bi,bj)
59       &             *(Qice1(i,j,bi,bj)+Qice2(i,j,bi,bj))*0.5       &             *(Qice1(i,j,bi,bj)+Qice2(i,j,bi,bj))*0.5
60            dWater = rhos*snowheight(i,j,bi,bj)+rhoi*iceHeight(i,j,bi,bj)            dWater = rhos*snowheight(i,j,bi,bj)+rhoi*iceHeight(i,j,bi,bj)
# Line 64  C---+----1----+----2----+----3----+----4 Line 63  C---+----1----+----2----+----3----+----4
63       &    dEnerg, dWater, dSalt       &    dEnerg, dWater, dSalt
64  C--  C--
65            dEnerg = dEnerg*iceFrac            dEnerg = dEnerg*iceFrac
66       &     + compact*( rhos*hSnow*qsnow       &     + compact*( rhos*hSnow*qsnow
67       &               + rhoi*hIce*(qicen(1)+qicen(2))*0.5       &               + rhoi*hIce*(qicen(1)+qicen(2))*0.5
68       &               )       &               )
69            dWater = dWater*iceFrac            dWater = dWater*iceFrac
# Line 75  C-- Line 74  C--
74           IF (dBug) WRITE(6,1010) 'ThSI_CHK: dEner,dH20,dSal /dt=',           IF (dBug) WRITE(6,1010) 'ThSI_CHK: dEner,dH20,dSal /dt=',
75       &    dEnerg/thSIce_deltaT,dWater/thSIce_deltaT,dSalt/thSIce_deltaT       &    dEnerg/thSIce_deltaT,dWater/thSIce_deltaT,dSalt/thSIce_deltaT
76           IF (dBug) WRITE(6,1010) 'ThSI_CHK: fxH,fxW,fxS=',flxAtm-qleft,           IF (dBug) WRITE(6,1010) 'ThSI_CHK: fxH,fxW,fxS=',flxAtm-qleft,
77       &     -ffresh-frwAtm*rhofw,-fsalt       &     -ffresh-frwAtm,-fsalt
78            dEnerg = dEnerg + thSIce_deltaT*flxFrac*(flxAtm-qleft)            dEnerg = dEnerg + thSIce_deltaT*flxFrac*(flxAtm-qleft)
79            dWater = dWater - thSIce_deltaT*flxFrac*(ffresh+frwAtm*rhofw)            dWater = dWater - thSIce_deltaT*flxFrac*(ffresh+frwAtm)
80            dSalt  = dSalt  - thSIce_deltaT*flxFrac*fsalt            dSalt  = dSalt  - thSIce_deltaT*flxFrac*fsalt
81    
82  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
83            ICE_qleft_AVE(i,j,bi,bj) = ICE_qleft_AVE(i,j,bi,bj)            ice_flx2oc_Ave(i,j,bi,bj) = ice_flx2oc_Ave(i,j,bi,bj)
84       &          + dEnerg       &          + dEnerg
85            ICE_fresh_AVE(i,j,bi,bj) = ICE_fresh_AVE(i,j,bi,bj)            ice_frw2oc_Ave(i,j,bi,bj) = ice_frw2oc_Ave(i,j,bi,bj)
86       &          + dWater       &          + dWater
87            ICE_salFx_AVE(i,j,bi,bj) = ICE_salFx_AVE(i,j,bi,bj)            ice_salFx_Ave(i,j,bi,bj) = ice_salFx_Ave(i,j,bi,bj)
88       &          + dSalt       &          + dSalt
89  #endif /*ALLOW_TIMEAVE*/  #endif /*ALLOW_TIMEAVE*/
90  C--  C--
91           IF (dBug) WRITE(6,1010) 'ThSI_CHK: resid.H,W,S=',           IF (dBug) WRITE(6,1010) 'ThSI_CHK: resid.H,W,S=',
92       &    dEnerg/thSIce_deltaT,dWater/thSIce_deltaT,dSalt/thSIce_deltaT       &    dEnerg/thSIce_deltaT,dWater/thSIce_deltaT,dSalt/thSIce_deltaT
93           IF (dBug) WRITE(6,1010) 'ThSI_CHK: hIc,hSn,snow*dt=',           IF (dBug) WRITE(6,1010) 'ThSI_CHK: hIc,hSn,snow*dt=',
94       &    hIce, hSnow, snow(i,j,bi,bj)*thSIce_deltaT       &    hIce, hSnow, snowPrc(i,j,bi,bj)*thSIce_deltaT/rhos
95    
96  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
97    

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

  ViewVC Help
Powered by ViewVC 1.1.22