/[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.25 by jmc, Thu Aug 30 15:02:51 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"
38  #include "THSICE_TAVE.h"  #include "THSICE_TAVE.h"
 #include "THSICE_2DYN.h"  
39  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
40  # include "tamc.h"  # include "tamc.h"
41  # include "tamc_keys.h"  # include "tamc_keys.h"
# Line 120  C-    Initialise Line 126  C-    Initialise
126        DO j = 1-OLy, sNy+OLy        DO j = 1-OLy, sNy+OLy
127          DO i = 1-OLx, sNx+OLx          DO i = 1-OLx, sNx+OLx
128            isIceFree(i,j) = .FALSE.            isIceFree(i,j) = .FALSE.
129    #ifdef ALLOW_ATM2D
130              sFluxFromIce(i,j) = 0. _d 0
131    #else
132            saltFlux(i,j,bi,bj) = 0. _d 0            saltFlux(i,j,bi,bj) = 0. _d 0
133    #endif
134  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
135            iceFrac(i,j) = 0.            iceFrac(i,j) = 0.
136  #endif  #endif
# Line 157  C-- Line 167  C--
167  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
168        IF ( useDiagnostics ) THEN        IF ( useDiagnostics ) THEN
169          tmpFac = 1. _d 0          tmpFac = 1. _d 0
170            CALL DIAGNOSTICS_FILL(iceMask,'SI_FrcFx',0,1,1,bi,bj,myThid)
171          CALL DIAGNOSTICS_FRACT_FILL(          CALL DIAGNOSTICS_FRACT_FILL(
172       I                   snowPrc,   iceMask,tmpFac,1,'SIsnwPrc',       I                   snowPrc,   iceMask,tmpFac,1,'SIsnwPrc',
173       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 260  CADJ STORE  icemask(i,j,bi,bj) = comlev1
260  #endif  #endif
261            icFrac = iceMask(i,j,bi,bj)            icFrac = iceMask(i,j,bi,bj)
262            opFrac= 1. _d 0-icFrac            opFrac= 1. _d 0-icFrac
263    #ifdef ALLOW_ATM2D
264              pass_qnet(i,j) = pass_qnet(i,j) - icFrac*flx2oc(i,j)
265              pass_evap(i,j) = pass_evap(i,j) - icFrac*frw2oc(i,j)/rhofw
266              sFluxFromIce(i,j) = -icFrac*fsalt(i,j)
267    #else
268            icFlxAtm(i,j,bi,bj) = icFrac*icFlxAtm(i,j,bi,bj)            icFlxAtm(i,j,bi,bj) = icFrac*icFlxAtm(i,j,bi,bj)
269       &                        - opFrac*Qnet(i,j,bi,bj)       &                        - opFrac*Qnet(i,j,bi,bj)
270            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 273  CADJ STORE  icemask(i,j,bi,bj) = comlev1
273            EmPmR(i,j,bi,bj)= -icFrac*frw2oc(i,j)/rhofw            EmPmR(i,j,bi,bj)= -icFrac*frw2oc(i,j)/rhofw
274       &                    +  opFrac*EmPmR(i,j,bi,bj)       &                    +  opFrac*EmPmR(i,j,bi,bj)
275            saltFlux(i,j,bi,bj) = -icFrac*fsalt(i,j)            saltFlux(i,j,bi,bj) = -icFrac*fsalt(i,j)
276    #endif
277    
278  #ifdef ALLOW_DBUG_THSICE  #ifdef ALLOW_DBUG_THSICE
279            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 316  CADJ &     comlev1_bibj, key=iicekey, by
316         DO i = iMin, iMax         DO i = iMin, iMax
317          IF (frzmltMxL(i,j).GT.0. _d 0) THEN          IF (frzmltMxL(i,j).GT.0. _d 0) THEN
318  C--    Net fluxes :  C--    Net fluxes :
319    #ifdef ALLOW_ATM2D
320              pass_qnet(i,j) = pass_qnet(i,j) - flx2oc(i,j)
321              pass_evap(i,j) = pass_evap(i,j) - frw2oc(i,j)/rhofw
322              sFluxFromIce(i,j)= sFluxFromIce(i,j) - fsalt(i,j)
323    #else
324            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)
325            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
326            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)
327    #endif
328    
329  #ifdef ALLOW_DBUG_THSICE  #ifdef ALLOW_DBUG_THSICE
330            IF (dBug(i,j,bi,bj)) WRITE(6,1010)            IF (dBug(i,j,bi,bj)) WRITE(6,1010)
# Line 332  C--    Net fluxes : Line 355  C--    Net fluxes :
355         ENDDO         ENDDO
356        ENDDO        ENDDO
357    
 #ifdef ATMOSPHERIC_LOADING  
358  # ifdef ALLOW_AUTODIFF_TAMC  # ifdef ALLOW_AUTODIFF_TAMC
359  CADJ STORE snowHeight(:,:,bi,bj) =  CADJ STORE snowHeight(:,:,bi,bj) =
360  CADJ &     comlev1_bibj, key=iicekey, byte=isbyte  CADJ &     comlev1_bibj, key=iicekey, byte=isbyte
# Line 345  C--     Compute Sea-Ice Loading (= mass Line 367  C--     Compute Sea-Ice Loading (= mass
367       &                        )*iceMask(i,j,bi,bj)       &                        )*iceMask(i,j,bi,bj)
368         ENDDO         ENDDO
369        ENDDO        ENDDO
 #endif  
370    
371        IF ( thSIceAdvScheme.GT.0 ) THEN        IF ( thSIceAdvScheme.GT.0 ) THEN
372  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.25

  ViewVC Help
Powered by ViewVC 1.1.22