1 |
|
C $Header$ |
2 |
|
C $Name$ |
3 |
|
|
4 |
#include "SEAICE_OPTIONS.h" |
#include "SEAICE_OPTIONS.h" |
5 |
|
|
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 | |
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 |
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 |
|
|
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) |
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 |
|
|
|