/[MITgcm]/MITgcm/pkg/seaice/seaice_growth.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/seaice_growth.F

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

revision 1.1 by mlosch, Thu Dec 14 08:36:20 2006 UTC revision 1.2 by heimbach, Thu Dec 14 22:31:18 2006 UTC
# Line 118  cph( Line 118  cph(
118  C  C
119  C     initialise a few fields  C     initialise a few fields
120  C  C
121    #ifdef ALLOW_AUTODIFF_TAMC
122    CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
123    CADJ &                         key = iicekey, byte = isbyte
124    CADJ STORE qnet(:,:,bi,bj)   = comlev1_bibj,
125    CADJ &                         key = iicekey, byte = isbyte
126    CADJ STORE qsw(:,:,bi,bj)    = comlev1_bibj,
127    CADJ &                         key = iicekey, byte = isbyte
128    #endif /* ALLOW_AUTODIFF_TAMC */
129          DO J=1,sNy          DO J=1,sNy
130           DO I=1,sNx           DO I=1,sNx
131            AREA(I,J,3,bi,bj) = MAX(A22,AREA(I,J,2,bi,bj))            AREA(I,J,3,bi,bj) = MAX(A22,AREA(I,J,2,bi,bj))
           HICE(I,J)         = HEFF(I,J,2,bi,bj)/AREA(I,J,3,bi,bj)  
           hSnwLoc(I,J)      = HSNOW(I,J,bi,bj)/AREA(I,J,3,bi,bj)  
132            FHEFF(I,J)        = 0.0 _d 0            FHEFF(I,J)        = 0.0 _d 0
133            FICE (I,J)        = 0.0 _d 0            FICE (I,J)        = 0.0 _d 0
134  #ifdef SEAICE_MULTILEVEL  #ifdef SEAICE_MULTILEVEL
# Line 142  C Line 148  C
148  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
149  CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,  CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
150  CADJ &                         key = iicekey, byte = isbyte  CADJ &                         key = iicekey, byte = isbyte
151    CADJ STORE heff(:,:,:,bi,bj) = comlev1_bibj,
152    CADJ &                         key = iicekey, byte = isbyte
153    CADJ STORE hsnow(:,:,bi,bj)  = comlev1_bibj,
154    CADJ &                         key = iicekey, byte = isbyte
155  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
156            DO J=1,sNy
157             DO I=1,sNx
158    cph need to adjoint-store AREA again before using it in further init.
159    cph (all these initialisations involving AREA are nasty "non-linear")
160              HICE(I,J)         = HEFF(I,J,2,bi,bj)/AREA(I,J,3,bi,bj)
161              hSnwLoc(I,J)      = HSNOW(I,J,bi,bj)/AREA(I,J,3,bi,bj)
162             ENDDO
163            ENDDO
164    
165  C NOW DETERMINE MIXED LAYER TEMPERATURE  C NOW DETERMINE MIXED LAYER TEMPERATURE
166          DO J=1,sNy          DO J=1,sNy
# Line 213  C     RESID_HEAT is residual heat above Line 231  C     RESID_HEAT is residual heat above
231           ENDDO           ENDDO
232          ENDDO          ENDDO
233    
 cph(  
234  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
235  CADJ STORE heff   = comlev1, key = ikey_dynamics  cphCADJ STORE heff   = comlev1, key = ikey_dynamics
236  CADJ STORE hsnow  = comlev1, key = ikey_dynamics  cphCADJ STORE hsnow  = comlev1, key = ikey_dynamics
237    cphCADJ STORE uwind  = comlev1, key = ikey_dynamics
238    cphCADJ STORE vwind  = comlev1, key = ikey_dynamics
239    c
240  CADJ STORE tice   = comlev1, key = ikey_dynamics  CADJ STORE tice   = comlev1, key = ikey_dynamics
 CADJ STORE uwind  = comlev1, key = ikey_dynamics  
 CADJ STORE vwind  = comlev1, key = ikey_dynamics  
241  # ifdef SEAICE_MULTILEVEL  # ifdef SEAICE_MULTILEVEL
242  CADJ STORE tices  = comlev1, key = ikey_dynamics  CADJ STORE tices  = comlev1, key = ikey_dynamics
243  # endif  # endif
244  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
 cph)  
245    
246  C GROWTH SUBROUTINE CALCULATES TOTAL GROWTH TENDENCIES,  C GROWTH SUBROUTINE CALCULATES TOTAL GROWTH TENDENCIES,
247  C INCLUDING SNOWFALL  C INCLUDING SNOWFALL
# Line 293  CADJ STORE area(:,:,:,bi,bj) = comlev1_b Line 310  CADJ STORE area(:,:,:,bi,bj) = comlev1_b
310  CADJ &                         key = iicekey, byte = isbyte  CADJ &                         key = iicekey, byte = isbyte
311  CADJ STORE hsnow(:,:,bi,bj)  = comlev1_bibj,  CADJ STORE hsnow(:,:,bi,bj)  = comlev1_bibj,
312  CADJ &                         key = iicekey, byte = isbyte  CADJ &                         key = iicekey, byte = isbyte
313  CADJ STORE fice(:,:,bi,bj)   = comlev1_bibj,  CADJ STORE fice(:,:)         = comlev1_bibj,
314  CADJ &                         key = iicekey, byte = isbyte  CADJ &                         key = iicekey, byte = isbyte
315  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
316  cph)  cph)
# Line 305  C NOW CALCULATE CORRECTED GROWTH Line 322  C NOW CALCULATE CORRECTED GROWTH
322       &         *AREA(I,J,2,bi,bj)        ! effective growth in J/m^2 (>0=melt)       &         *AREA(I,J,2,bi,bj)        ! effective growth in J/m^2 (>0=melt)
323           ENDDO           ENDDO
324          ENDDO          ENDDO
325    
326  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
327  CADJ STORE fice(:,:)   = comlev1_bibj,  CADJ STORE fice(:,:)   = comlev1_bibj,
328  CADJ &                         key = iicekey, byte = isbyte  CADJ &     key = iicekey, byte = isbyte
329  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
330    
331          DO J=1,sNy          DO J=1,sNy
332           DO I=1,sNx           DO I=1,sNx
   
333            IF(FICE(I,J).LT.ZERO.AND.AREA(I,J,2,bi,bj).GT.ZERO) THEN            IF(FICE(I,J).LT.ZERO.AND.AREA(I,J,2,bi,bj).GT.ZERO) THEN
334  C use FICE to melt snow and CALCULATE CORRECTED GROWTH  C use FICE to melt snow and CALCULATE CORRECTED GROWTH
335             GAREA(I,J)=HSNOW(I,J,bi,bj)*QS ! effective snow thickness in J/m^2             GAREA(I,J)=HSNOW(I,J,bi,bj)*QS ! effective snow thickness in J/m^2
# Line 335  C     convert all snow to melt water (fr Line 352  C     convert all snow to melt water (fr
352              HSNOW(I,J,bi,bj)=0.0              HSNOW(I,J,bi,bj)=0.0
353             END IF             END IF
354            END IF            END IF
355             ENDDO
356            ENDDO
357    
358    #ifdef ALLOW_AUTODIFF_TAMC
359    CADJ STORE fice(:,:)   = comlev1_bibj,
360    CADJ &     key = iicekey, byte = isbyte
361    #endif /* ALLOW_AUTODIFF_TAMC */
362    
363            DO J=1,sNy
364             DO I=1,sNx
365  C NOW GET TOTAL GROWTH RATE in W/m^2, >0 causes ice growth  C NOW GET TOTAL GROWTH RATE in W/m^2, >0 causes ice growth
366            FHEFF(I,J)= FICE(I,J)  * AREA(I,J,2,bi,bj)            FHEFF(I,J)= FICE(I,J)  * AREA(I,J,2,bi,bj)
367       &              + QNETO(I,J) * (ONE-AREA(I,J,2,bi,bj))       &              + QNETO(I,J) * (ONE-AREA(I,J,2,bi,bj))
   
368           ENDDO           ENDDO
369          ENDDO          ENDDO
370  cph(  cph(
371  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
372  CADJ STORE heff(:,:,:,bi,bj) = comlev1_bibj,  CADJ STORE heff(:,:,:,bi,bj) = comlev1_bibj,
373  CADJ &                         key = iicekey, byte = isbyte  CADJ &                         key = iicekey, byte = isbyte
 CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,  
 CADJ &                         key = iicekey, byte = isbyte  
374  CADJ STORE hsnow(:,:,bi,bj)  = comlev1_bibj,  CADJ STORE hsnow(:,:,bi,bj)  = comlev1_bibj,
375  CADJ &                         key = iicekey, byte = isbyte  CADJ &                         key = iicekey, byte = isbyte
376  CADJ STORE fice(:,:)   = comlev1_bibj,  CADJ STORE fice(:,:)   = comlev1_bibj,
# Line 387  CADJ &                         key = iic Line 410  CADJ &                         key = iic
410  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
411  CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,  CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
412  CADJ &                         key = iicekey, byte = isbyte  CADJ &                         key = iicekey, byte = isbyte
 CADJ STORE garea(:,:)        = comlev1_bibj,  
 CADJ &                         key = iicekey, byte = isbyte  
413  #endif  #endif
414          DO J=1,sNy          DO J=1,sNy
415           DO I=1,sNx           DO I=1,sNx

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

  ViewVC Help
Powered by ViewVC 1.1.22