File indexing completed on 2018-03-28 05:09:43 UTC
view on githubraw file Latest commit e7af59f6 on 2018-03-24 21:24:35 UTC
86b84a92fc Patr*0001 #include "SEAICE_OPTIONS.h"
0002
e7af59f6fd Jean*0003
86b84a92fc Patr*0004
0005
0006
0007 SUBROUTINE SEAICE_ITD_REDIST(
0008 I bi, bj, myTime, myIter, myThid )
0009
0010
0011
0012
b8f04b8c26 Jean*0013
86b84a92fc Patr*0014
b8f04b8c26 Jean*0015
86b84a92fc Patr*0016
0017
0018
0019
0020
0021
0022
0023 IMPLICIT NONE
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 #include "SIZE.h"
0037 #include "EEPARAMS.h"
e7af59f6fd Jean*0038
86b84a92fc Patr*0039 #include "SEAICE_SIZE.h"
0040 #include "SEAICE_PARAMS.h"
0041 #include "SEAICE.h"
0042
0043
0044
0045
0046
0047
0048
0049 _RL myTime
0050 INTEGER bi,bj
0051 INTEGER myIter
0052 INTEGER myThid
0053
0054 #ifdef SEAICE_ITD
0055
0056
0057
0058
0059
0060
0061
0062 INTEGER i, j, k
524979f562 Mart*0063 _RL openWater (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
e7af59f6fd Jean*0064
86b84a92fc Patr*0065
0066
0067
0068
0069
0070
0071
524979f562 Mart*0072 DO j=1-OLy,sNy+OLy
0073 DO i=1-OLx,sNx+OLx
0074 openWater(i,j) = ONE
0075 ENDDO
0076 ENDDO
0077 DO k=1,nITD
0078 DO j=1-OLy,sNy+OLy
0079 DO i=1-OLx,sNx+OLx
0080 openWater(i,j) = openWater(i,j) - AREAITD(i,j,k,bi,bj)
86b84a92fc Patr*0081 ENDDO
524979f562 Mart*0082 ENDDO
0083 ENDDO
e7af59f6fd Jean*0084
86b84a92fc Patr*0085
b8f04b8c26 Jean*0086
86b84a92fc Patr*0087
0088
0089
0090
0091
524979f562 Mart*0092
0093
0094
0095
0096 DO j=1-OLy,sNy+OLy
0097 DO i=1-OLx,sNx+OLx
0098 IF (openWater(i,j) .lt. 0.0)
0099 & AREAITD(i,j,1,bi,bj) = openWater(i,j) + AREAITD(i,j,1,bi,bj)
0100 ENDDO
0101 ENDDO
86b84a92fc Patr*0102
e7af59f6fd Jean*0103
0104
524979f562 Mart*0105 IF (nITD .gt. 1) THEN
86b84a92fc Patr*0106
524979f562 Mart*0107
0108 DO k=1,nITD-1
0109 DO j=1-OLy,sNy+OLy
0110 DO i=1-OLx,sNx+OLx
0111 IF (AREAITD(i,j,k,bi,bj) .lt. 0.0) THEN
0112
0113
0114 AREAITD (i,j,k+1,bi,bj) = AREAITD (i,j,k+1,bi,bj)
0115 & + AREAITD (i,j,k,bi,bj)
0116 AREAITD (i,j,k ,bi,bj) = ZERO
0117 HEFFITD (i,j,k+1,bi,bj) = HEFFITD (i,j,k+1,bi,bj)
0118 & + HEFFITD (i,j,k,bi,bj)
0119 HEFFITD (i,j,k ,bi,bj) = ZERO
0120 HSNOWITD(i,j,k+1,bi,bj) = HSNOWITD(i,j,k+1,bi,bj)
0121 & + HSNOWITD(i,j,k,bi,bj)
0122 HSNOWITD(i,j,k ,bi,bj) = ZERO
86b84a92fc Patr*0123
0124
0125
0126
0127
b8f04b8c26 Jean*0128
86b84a92fc Patr*0129
524979f562 Mart*0130 ENDIF
86b84a92fc Patr*0131 ENDDO
0132 ENDDO
524979f562 Mart*0133 ENDDO
86b84a92fc Patr*0134
0135
0136
524979f562 Mart*0137 DO k=1,nITD-1
0138 DO j=1-OLy,sNy+OLy
0139 DO i=1-OLx,sNx+OLx
0140 IF (HEFFITD(i,j,k,bi,bj) .gt.
86b84a92fc Patr*0141 & Hlimit(k)*AREAITD(i,j,k,bi,bj)) THEN
e7af59f6fd Jean*0142
524979f562 Mart*0143
0144 AREAITD (i,j,k+1,bi,bj) = AREAITD (i,j,k+1,bi,bj)
0145 & + AREAITD (i,j,k,bi,bj)
0146 AREAITD (i,j,k ,bi,bj) = ZERO
0147 HEFFITD (i,j,k+1,bi,bj) = HEFFITD (i,j,k+1,bi,bj)
0148 & + HEFFITD (i,j,k,bi,bj)
0149 HEFFITD (i,j,k ,bi,bj) = ZERO
0150 HSNOWITD(i,j,k+1,bi,bj) = HSNOWITD(i,j,k+1,bi,bj)
0151 & + HSNOWITD(i,j,k,bi,bj)
0152 HSNOWITD(i,j,k ,bi,bj) = ZERO
86b84a92fc Patr*0153
0154
0155
0156
b8f04b8c26 Jean*0157
86b84a92fc Patr*0158
524979f562 Mart*0159 ENDIF
86b84a92fc Patr*0160 ENDDO
0161 ENDDO
524979f562 Mart*0162 ENDDO
e7af59f6fd Jean*0163
524979f562 Mart*0164 DO k=nITD,2,-1
0165 DO j=1-OLy,sNy+OLy
0166 DO i=1-OLx,sNx+OLx
0167 IF (HEFFITD(i,j,k,bi,bj) .lt.
86b84a92fc Patr*0168 & Hlimit(k-1)*AREAITD(i,j,k,bi,bj)) THEN
e7af59f6fd Jean*0169
524979f562 Mart*0170
0171 AREAITD (i,j,k-1,bi,bj) = AREAITD (i,j,k-1,bi,bj)
0172 & + AREAITD (i,j,k,bi,bj)
0173 AREAITD (i,j,k ,bi,bj) = ZERO
0174 HEFFITD (i,j,k-1,bi,bj) = HEFFITD (i,j,k-1,bi,bj)
0175 & + HEFFITD (i,j,k,bi,bj)
0176 HEFFITD (i,j,k ,bi,bj) = ZERO
0177 HSNOWITD(i,j,k-1,bi,bj) = HSNOWITD(i,j,k-1,bi,bj)
0178 & + HSNOWITD(i,j,k,bi,bj)
0179 HSNOWITD(i,j,k ,bi,bj) = ZERO
86b84a92fc Patr*0180
0181
0182
0183
0184
b8f04b8c26 Jean*0185
86b84a92fc Patr*0186
524979f562 Mart*0187 ENDIF
86b84a92fc Patr*0188 ENDDO
0189 ENDDO
524979f562 Mart*0190 ENDDO
86b84a92fc Patr*0191
524979f562 Mart*0192
0193 ENDIF
86b84a92fc Patr*0194
0195
0196
0197
0198
0199
0200 #endif /* SEAICE_ITD */
0201 RETURN
b8f04b8c26 Jean*0202 END