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

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

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

revision 1.21 by heimbach, Tue Apr 17 23:42:33 2007 UTC revision 1.24 by jmc, Fri Apr 27 15:50:41 2007 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    #ifdef ALLOW_ATM2D
6    # include "ctrparam.h"
7    #endif
8    
9  CBOP  CBOP
10  C     !ROUTINE: THSICE_STEP_FWD  C     !ROUTINE: THSICE_STEP_FWD
# Line 25  C     === Global variables === Line 28  C     === Global variables ===
28  #include "EEPARAMS.h"  #include "EEPARAMS.h"
29  #include "PARAMS.h"  #include "PARAMS.h"
30  #include "FFIELDS.h"  #include "FFIELDS.h"
31    #ifdef  ALLOW_ATM2D
32    # include "ATMSIZE.h"
33    # include "ATM2D_VARS.h"
34    #endif
35  #include "THSICE_SIZE.h"  #include "THSICE_SIZE.h"
36  #include "THSICE_PARAMS.h"  #include "THSICE_PARAMS.h"
37  #include "THSICE_VARS.h"  #include "THSICE_VARS.h"
# Line 120  C-    Initialise Line 127  C-    Initialise
127        DO j = 1-OLy, sNy+OLy        DO j = 1-OLy, sNy+OLy
128          DO i = 1-OLx, sNx+OLx          DO i = 1-OLx, sNx+OLx
129            isIceFree(i,j) = .FALSE.            isIceFree(i,j) = .FALSE.
130    #ifdef ALLOW_ATM2D
131              sFluxFromIce(i,j) = 0. _d 0
132    #else
133            saltFlux(i,j,bi,bj) = 0. _d 0            saltFlux(i,j,bi,bj) = 0. _d 0
134    #endif
135  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
136            iceFrac(i,j) = 0.            iceFrac(i,j) = 0.
137  #endif  #endif
# Line 157  C-- Line 168  C--
168  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
169        IF ( useDiagnostics ) THEN        IF ( useDiagnostics ) THEN
170          tmpFac = 1. _d 0          tmpFac = 1. _d 0
171            CALL DIAGNOSTICS_FILL(iceMask,'SI_FrcFx',0,1,1,bi,bj,myThid)
172          CALL DIAGNOSTICS_FRACT_FILL(          CALL DIAGNOSTICS_FRACT_FILL(
173       I                   snowPrc,   iceMask,tmpFac,1,'SIsnwPrc',       I                   snowPrc,   iceMask,tmpFac,1,'SIsnwPrc',
174       I                   0,1,1,bi,bj,myThid)       I                   0,1,1,bi,bj,myThid)
# Line 249  CADJ STORE  icemask(i,j,bi,bj) = comlev1 Line 261  CADJ STORE  icemask(i,j,bi,bj) = comlev1
261  #endif  #endif
262            icFrac = iceMask(i,j,bi,bj)            icFrac = iceMask(i,j,bi,bj)
263            opFrac= 1. _d 0-icFrac            opFrac= 1. _d 0-icFrac
264    #ifdef ALLOW_ATM2D
265              pass_qnet(i,j) = pass_qnet(i,j) - icFrac*flx2oc(i,j)
266              pass_evap(i,j) = pass_evap(i,j) - icFrac*frw2oc(i,j)/rhofw
267              sFluxFromIce(i,j) = -icFrac*fsalt(i,j)
268    #else
269            icFlxAtm(i,j,bi,bj) = icFrac*icFlxAtm(i,j,bi,bj)            icFlxAtm(i,j,bi,bj) = icFrac*icFlxAtm(i,j,bi,bj)
270       &                        - opFrac*Qnet(i,j,bi,bj)       &                        - opFrac*Qnet(i,j,bi,bj)
271            icFrwAtm(i,j,bi,bj) = icFrac*icFrwAtm(i,j,bi,bj)            icFrwAtm(i,j,bi,bj) = icFrac*icFrwAtm(i,j,bi,bj)
# Line 257  CADJ STORE  icemask(i,j,bi,bj) = comlev1 Line 274  CADJ STORE  icemask(i,j,bi,bj) = comlev1
274            EmPmR(i,j,bi,bj)= -icFrac*frw2oc(i,j)/rhofw            EmPmR(i,j,bi,bj)= -icFrac*frw2oc(i,j)/rhofw
275       &                    +  opFrac*EmPmR(i,j,bi,bj)       &                    +  opFrac*EmPmR(i,j,bi,bj)
276            saltFlux(i,j,bi,bj) = -icFrac*fsalt(i,j)            saltFlux(i,j,bi,bj) = -icFrac*fsalt(i,j)
277    #endif
278    
279  #ifdef ALLOW_DBUG_THSICE  #ifdef ALLOW_DBUG_THSICE
280            IF (dBug(i,j,bi,bj)) WRITE(6,1010)            IF (dBug(i,j,bi,bj)) WRITE(6,1010)
# Line 299  CADJ &     comlev1_bibj, key=iicekey, by Line 317  CADJ &     comlev1_bibj, key=iicekey, by
317         DO i = iMin, iMax         DO i = iMin, iMax
318          IF (frzmltMxL(i,j).GT.0. _d 0) THEN          IF (frzmltMxL(i,j).GT.0. _d 0) THEN
319  C--    Net fluxes :  C--    Net fluxes :
320    #ifdef ALLOW_ATM2D
321              pass_qnet(i,j) = pass_qnet(i,j) - flx2oc(i,j)
322              pass_evap(i,j) = pass_evap(i,j) - frw2oc(i,j)/rhofw
323              sFluxFromIce(i,j)= sFluxFromIce(i,j) - fsalt(i,j)
324    #else
325            Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) - flx2oc(i,j)            Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) - flx2oc(i,j)
326            EmPmR(i,j,bi,bj)= EmPmR(i,j,bi,bj)- frw2oc(i,j)/rhofw            EmPmR(i,j,bi,bj)= EmPmR(i,j,bi,bj)- frw2oc(i,j)/rhofw
327            saltFlux(i,j,bi,bj)=saltFlux(i,j,bi,bj) - fsalt(i,j)            saltFlux(i,j,bi,bj)=saltFlux(i,j,bi,bj) - fsalt(i,j)
328    #endif
329    
330  #ifdef ALLOW_DBUG_THSICE  #ifdef ALLOW_DBUG_THSICE
331            IF (dBug(i,j,bi,bj)) WRITE(6,1010)            IF (dBug(i,j,bi,bj)) WRITE(6,1010)
# Line 332  C--    Net fluxes : Line 356  C--    Net fluxes :
356         ENDDO         ENDDO
357        ENDDO        ENDDO
358    
 #ifdef ATMOSPHERIC_LOADING  
359  # ifdef ALLOW_AUTODIFF_TAMC  # ifdef ALLOW_AUTODIFF_TAMC
360  CADJ STORE snowHeight(:,:,bi,bj) =  CADJ STORE snowHeight(:,:,bi,bj) =
361  CADJ &     comlev1_bibj, key=iicekey, byte=isbyte  CADJ &     comlev1_bibj, key=iicekey, byte=isbyte
# Line 345  C--     Compute Sea-Ice Loading (= mass Line 368  C--     Compute Sea-Ice Loading (= mass
368       &                        )*iceMask(i,j,bi,bj)       &                        )*iceMask(i,j,bi,bj)
369         ENDDO         ENDDO
370        ENDDO        ENDDO
 #endif  
371    
372        IF ( thSIceAdvScheme.GT.0 ) THEN        IF ( thSIceAdvScheme.GT.0 ) THEN
373  C--   note: those fluxes should to be added directly to Qnet, EmPmR & saltFlux  C--   note: those fluxes should to be added directly to Qnet, EmPmR & saltFlux

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.24

  ViewVC Help
Powered by ViewVC 1.1.22