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

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

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

revision 1.1 by heimbach, Mon Oct 22 21:14:07 2012 UTC revision 1.3 by jmc, Sat May 4 17:31:44 2013 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4  #include "SEAICE_OPTIONS.h"  #include "SEAICE_OPTIONS.h"
5    
# Line 21  C     |      into the correct category b Line 23  C     |      into the correct category b
23  C     |      -> simpleSchemeFlag = .TRUE.  C     |      -> simpleSchemeFlag = .TRUE.
24  C     |  C     |
25  C     |   b) a scheme that assumes a log-normal distribution based  C     |   b) a scheme that assumes a log-normal distribution based
26  C     |      on the mean ice thickness and a standard decviation  C     |      on the mean ice thickness and a standard decviation
27  C     |      of LND_sigma=0.25  C     |      of LND_sigma=0.25
28  C     |      -> simpleSchemeFlag = .FALSE.  C     |      -> simpleSchemeFlag = .FALSE.
29  C     |  C     |
# Line 75  C Line 77  C
77  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
78        _RL dummyTime        _RL dummyTime
79    
80  C     local variables for picking up ITD from single category pickup file  C     local variables for picking up ITD from single category pickup file
81        INTEGER LND_i, LND_iend        INTEGER LND_i, LND_iend
82  C     parameters for log-normal distribution (LND)  C     parameters for log-normal distribution (LND)
83        _RL LND_sigma, LND_mu        _RL LND_sigma, LND_mu
# Line 83  C     parameters for log-normal distribu Line 85  C     parameters for log-normal distribu
85        _RL LND_dx        _RL LND_dx
86        _RL LND_tmp        _RL LND_tmp
87  C     bin width of distribution  C     bin width of distribution
88        PARAMETER(LND_dx=0.1)        PARAMETER( LND_iend = 1000 )
89        PARAMETER(LND_iend=INT(100./LND_dx))        PARAMETER( LND_dx = 100.D0 / LND_iend )
90        _RL LND_x  (INT(LND_iend))  c     PARAMETER(LND_dx=0.1)
91        _RL LND_pdf(INT(LND_iend))  c     PARAMETER(LND_iend=INT(100./LND_dx))
92          _RL LND_x  (LND_iend)
93          _RL LND_pdf(LND_iend)
94  C     flag for pickup scheme  C     flag for pickup scheme
95        LOGICAL simpleSchemeFlag        LOGICAL simpleSchemeFlag
96    
# Line 119  C--      Assume log-normal ITD: Line 123  C--      Assume log-normal ITD:
123              DO i=1-OLx,sNx+OLx              DO i=1-OLx,sNx+OLx
124  C  C
125  C            initialize log-normal distribution  C            initialize log-normal distribution
126               LND_mu = log(HEFF(i,j,bi,bj)/AREA(i,j,bi,bj))               LND_mu = log(HEFF(i,j,bi,bj)/AREA(i,j,bi,bj))
127       &                - 0.5*LND_sigma*LND_sigma       &                - 0.5*LND_sigma*LND_sigma
128               LND_x(1) = 0.+LND_dx/2.               LND_x(1) = 0.+LND_dx/2.
129  C            make thickness bins  C            make thickness bins
130               DO LND_i=2,LND_iend               DO LND_i=2,LND_iend
131                LND_x(LND_i)=LND_x(LND_i-1)+LND_dx                LND_x(LND_i)=LND_x(LND_i-1)+LND_dx
132               ENDDO               ENDDO
133  C            log-normal distribution:  C            log-normal distribution:
134               DO LND_i=2,LND_iend               DO LND_i=2,LND_iend
135                LND_tmp = log(LND_x(LND_i))-LND_mu                LND_tmp = log(LND_x(LND_i))-LND_mu
136                LND_pdf(LND_i)= 1.                LND_pdf(LND_i)= 1.
137       &             / (LND_x(LND_i)*LND_sigma*sqrt(2*3.1416))       &             / (LND_x(LND_i)*LND_sigma*sqrt(2*3.1416))
138       &             * exp( -(LND_tmp*LND_tmp)       &             * exp( -(LND_tmp*LND_tmp)
139       &             /       (2*LND_sigma*LND_sigma) )       &             /       (2*LND_sigma*LND_sigma) )
140       &             * AREA(i,j,bi,bj)       &             * AREA(i,j,bi,bj)
141               ENDDO               ENDDO
142  C            assign bins to ice thickness categories  C            assign bins to ice thickness categories
143               k=1               k=1
144               DO LND_i=1,LND_iend               DO LND_i=1,LND_iend
145                IF ( LND_x(LND_i).GT.Hlimit(k) ) k=k+1                IF ( LND_x(LND_i).GT.Hlimit(k) ) k=k+1
146                AREAITD(i,j,k,bi,bj) = AREAITD(i,j,k,bi,bj)                AREAITD(i,j,k,bi,bj) = AREAITD(i,j,k,bi,bj)
147       &                             + LND_pdf(LND_i)*LND_dx       &                             + LND_pdf(LND_i)*LND_dx
148                HEFFITD(i,j,k,bi,bj) = HEFFITD(i,j,k,bi,bj)                HEFFITD(i,j,k,bi,bj) = HEFFITD(i,j,k,bi,bj)
149       &                             + LND_pdf(LND_i)*LND_x(LND_i)*LND_dx       &                             + LND_pdf(LND_i)*LND_x(LND_i)*LND_dx
150               ENDDO               ENDDO
151  C  C
152              ENDDO              ENDDO
153             ENDDO             ENDDO
154            ENDDO            ENDDO
155           ENDDO           ENDDO
156    
157        ENDIF        ENDIF
158    
159  C---+-|--1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+-|--1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
160  C     finally sort into correct ice thickness category  C     finally sort into correct ice thickness category
161  C      and compute bulk variables  C      and compute bulk variables
162  C      (needed for dynamic solver at beginning of seaice_model.F)  C      (needed for dynamic solver at beginning of seaice_model.F)
163        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
164         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
# Line 166  C      (needed for dynamic solver at beg Line 170  C      (needed for dynamic solver at beg
170  C---+-|--1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+-|--1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
171  #endif /* SEAICE_ITD */  #endif /* SEAICE_ITD */
172        RETURN        RETURN
173        END SUBROUTINE SEAICE_ITD_PICKUP        END
   

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

  ViewVC Help
Powered by ViewVC 1.1.22