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

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

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

revision 1.6 by dimitri, Fri May 23 20:19:16 2003 UTC revision 1.7 by heimbach, Tue Jun 24 16:09:37 2003 UTC
# Line 23  C     === Global variables === Line 23  C     === Global variables ===
23  #include "SEAICE_FFIELDS.h"  #include "SEAICE_FFIELDS.h"
24  #include "SEAICE_EXTERNAL.h"  #include "SEAICE_EXTERNAL.h"
25    
26    #ifdef ALLOW_AUTODIFF_TAMC
27    # include "tamc.h"
28    #endif
29  C     === Routine arguments ===  C     === Routine arguments ===
30  C     myTime - Simulation time  C     myTime - Simulation time
31  C     myIter - Simulation timestep number  C     myIter - Simulation timestep number
# Line 52  C     i,j,bi,bj - Loop counters Line 55  C     i,j,bi,bj - Loop counters
55    
56        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
57         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
58    c
59    cph(
60    #ifdef ALLOW_AUTODIFF_TAMC
61              act1 = bi - myBxLo(myThid)
62              max1 = myBxHi(myThid) - myBxLo(myThid) + 1
63              act2 = bj - myByLo(myThid)
64              max2 = myByHi(myThid) - myByLo(myThid) + 1
65              act3 = myThid - 1
66              max3 = nTx*nTy
67              act4 = ikey_dynamics - 1
68              iicekey = (act1 + 1) + act2*max1
69         &                      + act3*max1*max2
70         &                      + act4*max1*max2*max3
71    #endif /* ALLOW_AUTODIFF_TAMC */
72    c
73    #ifdef ALLOW_AUTODIFF_TAMC
74    CADJ STORE theta(:,:,:,bi,bj)= comlev1_bibj,
75    CADJ &                         key = iicekey, byte = isbyte
76    CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
77    CADJ &                         key = iicekey, byte = isbyte
78    CADJ STORE atemp(:,:,bi,bj)  = comlev1_bibj,
79    CADJ &                         key = iicekey, byte = isbyte
80    #endif /* ALLOW_AUTODIFF_TAMC */
81    cph)
82          DO J=1,sNy          DO J=1,sNy
83           DO I=1,sNx           DO I=1,sNx
84  C Adjust surface air temperature according to ice conditions  C Adjust surface air temperature according to ice conditions
# Line 61  C Adjust surface air temperature accordi Line 88  C Adjust surface air temperature accordi
88            ENDIF            ENDIF
89            SEAICE_SALT(I,J,bi,bj)=ZERO            SEAICE_SALT(I,J,bi,bj)=ZERO
90            WATR(I,J,bi,bj)=ZERO            WATR(I,J,bi,bj)=ZERO
91             ENDDO
92            ENDDO
93    #ifdef ALLOW_AUTODIFF_TAMC
94    CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
95    CADJ &                         key = iicekey, byte = isbyte
96    CADJ STORE heff(:,:,:,bi,bj) = comlev1_bibj,
97    CADJ &                         key = iicekey, byte = isbyte
98    #endif /* ALLOW_AUTODIFF_TAMC */
99            DO J=1,sNy
100             DO I=1,sNx
101            AR(I,J,bi,bj)=MIN(AREA(I,J,2,bi,bj),            AR(I,J,bi,bj)=MIN(AREA(I,J,2,bi,bj),
102       &         HEFF(I,J,2,bi,bj)*1.0 _d +04)       &         HEFF(I,J,2,bi,bj)*1.0 _d +04)
103             ENDDO
104            ENDDO
105    #ifdef ALLOW_AUTODIFF_TAMC
106    CADJ STORE heff(:,:,:,bi,bj) = comlev1_bibj,
107    CADJ &                         key = iicekey, byte = isbyte
108    #endif /* ALLOW_AUTODIFF_TAMC */
109            DO J=1,sNy
110             DO I=1,sNx
111  C NOW BALANCE THE HEAT IN OCEAN FIRT LEVEL  C NOW BALANCE THE HEAT IN OCEAN FIRT LEVEL
112  C Here the units of YNEG are m of sea-ice.  C Here the units of YNEG are m of sea-ice.
113  C The factor dRf(1)/72.0764, used to convert temperature  C The factor dRf(1)/72.0764, used to convert temperature
# Line 100  C Units are degrees/s (>0 for ocean warm Line 145  C Units are degrees/s (>0 for ocean warm
145            surfaceTendencyTice(I,J,bi,bj)=YNEG(I,J,bi,bj)/deltaTtracer            surfaceTendencyTice(I,J,bi,bj)=YNEG(I,J,bi,bj)/deltaTtracer
146           ENDDO           ENDDO
147          ENDDO          ENDDO
148    c
149         ENDDO         ENDDO
150        ENDDO        ENDDO
151    
152    cph(
153    #ifdef ALLOW_AUTODIFF_TAMC
154    CADJ STORE area   = comlev1, key = ikey_dynamics
155    CADJ STORE atemp  = comlev1, key = ikey_dynamics
156    CADJ STORE heff   = comlev1, key = ikey_dynamics
157    CADJ STORE hsnow  = comlev1, key = ikey_dynamics
158    CADJ STORE lwdown = comlev1, key = ikey_dynamics
159    CADJ STORE tice   = comlev1, key = ikey_dynamics
160    CADJ STORE uwind  = comlev1, key = ikey_dynamics
161    CADJ STORE vwind  = comlev1, key = ikey_dynamics
162    #endif /* ALLOW_AUTODIFF_TAMC */
163    cph)
164  C GROWTH SUBROUTINE CALCULATES TOTAL GROWTH TENDENCIES,  C GROWTH SUBROUTINE CALCULATES TOTAL GROWTH TENDENCIES,
165  C INCLUDING SNOWFALL  C INCLUDING SNOWFALL
166        CALL GROATB(A22,myThid)        CALL GROATB(A22,myThid)
167    
168        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
169         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
170    cph(
171    #ifdef ALLOW_AUTODIFF_TAMC
172              act1 = bi - myBxLo(myThid)
173              max1 = myBxHi(myThid) - myBxLo(myThid) + 1
174              act2 = bj - myByLo(myThid)
175              max2 = myByHi(myThid) - myByLo(myThid) + 1
176              act3 = myThid - 1
177              max3 = nTx*nTy
178              act4 = ikey_dynamics - 1
179              iicekey = (act1 + 1) + act2*max1
180         &                      + act3*max1*max2
181         &                      + act4*max1*max2*max3
182    #endif /* ALLOW_AUTODIFF_TAMC */
183    c
184    #ifdef ALLOW_AUTODIFF_TAMC
185    CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
186    CADJ &                         key = iicekey, byte = isbyte
187    CADJ STORE heff(:,:,:,bi,bj) = comlev1_bibj,
188    CADJ &                         key = iicekey, byte = isbyte
189    CADJ STORE hsnow(:,:,bi,bj)  = comlev1_bibj,
190    CADJ &                         key = iicekey, byte = isbyte
191    CADJ STORE fo(:,:,bi,bj)     = comlev1_bibj,
192    CADJ &                         key = iicekey, byte = isbyte
193    CADJ STORE fice(:,:,bi,bj)   = comlev1_bibj,
194    CADJ &                         key = iicekey, byte = isbyte
195    #endif /* ALLOW_AUTODIFF_TAMC */
196    cph)
197  C NOW CALCULATE CORRECTED GROWTH  C NOW CALCULATE CORRECTED GROWTH
198          DO J=1,sNy          DO J=1,sNy
199           DO I=1,sNx           DO I=1,sNx
# Line 256  C NOW ZERO OUTSIDE POINTS Line 341  C NOW ZERO OUTSIDE POINTS
341  C NOW SET AREA(I,J,1,bi,bj)=0 WHERE NO ICE IS  C NOW SET AREA(I,J,1,bi,bj)=0 WHERE NO ICE IS
342            AREA(I,J,1,bi,bj)=MIN(AREA(I,J,1,bi,bj)            AREA(I,J,1,bi,bj)=MIN(AREA(I,J,1,bi,bj)
343       &                         ,HEFF(I,J,1,bi,bj)/.0001 _d 0)       &                         ,HEFF(I,J,1,bi,bj)/.0001 _d 0)
344             ENDDO
345            ENDDO
346    #ifdef ALLOW_AUTODIFF_TAMC
347    CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
348    CADJ &                         key = iicekey, byte = isbyte
349    #endif /* ALLOW_AUTODIFF_TAMC */
350            DO J=1,sNy
351             DO I=1,sNx
352  C NOW TRUNCATE AREA  C NOW TRUNCATE AREA
353  #ifdef DO_WE_NEED_THIS  #ifdef DO_WE_NEED_THIS
354            AREA(I,J,1,bi,bj)=MIN(ONE,AREA(I,J,1,bi,bj))            AREA(I,J,1,bi,bj)=MIN(ONE,AREA(I,J,1,bi,bj))
355             ENDDO
356            ENDDO
357    #ifdef ALLOW_AUTODIFF_TAMC
358    CADJ STORE area(:,:,:,bi,bj) = comlev1_bibj,
359    CADJ &                         key = iicekey, byte = isbyte
360    #endif /* ALLOW_AUTODIFF_TAMC */
361            DO J=1,sNy
362             DO I=1,sNx
363            AREA(I,J,1,bi,bj)=MAX(ZERO,AREA(I,J,1,bi,bj))            AREA(I,J,1,bi,bj)=MAX(ZERO,AREA(I,J,1,bi,bj))
364            HSNOW(I,J,bi,bj)=MAX(ZERO,HSNOW(I,J,bi,bj))            HSNOW(I,J,bi,bj)=MAX(ZERO,HSNOW(I,J,bi,bj))
365  #endif  #endif

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22