Changeset 834 for trunk/NEMO/LIM_SRC_3/limdia.F90
- Timestamp:
- 2008-03-07T18:11:35+01:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_3/limdia.F90
r825 r834 10 10 #if defined key_lim3 11 11 !!---------------------------------------------------------------------- 12 !! 'key_lim3' : LIM sea-ice model12 !! 'key_lim3' : LIM3 sea-ice model 13 13 !!---------------------------------------------------------------------- 14 14 !! lim_dia : computation of the time evolution of keys var. … … 95 95 !! * Local variables 96 96 INTEGER :: jv,ji,jj,jl ! dummy loop indices 97 INTEGER :: nv ! indice of variable98 97 REAL(wp), DIMENSION(jpinfmx) :: & 99 98 vinfor ! temporary working space … … 138 137 vinfor(7) = vinfor(7) + vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !ice volume 139 138 vinfor(9) = vinfor(9) + vt_s(ji,jj)*aire(ji,jj) / 1.0e12 !snow volume 140 ! vinfor(11) = vinfor(11) + vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !undef ice volume141 ! vinfor(13) = vinfor(13) + vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !def ice volume142 139 vinfor(15) = vinfor(15) + ot_i(ji,jj) *vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !mean age 143 140 vinfor(29) = vinfor(29) + smt_i(ji,jj)*vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !mean salinity 141 ! the computation of this diagnostic is not reliable 144 142 vinfor(31) = vinfor(31) + vt_i(ji,jj)*( u_ice(ji,jj)*u_ice(ji,jj) + & 145 v_ice(ji,jj)*v_ice(ji,jj) )*aire(ji,jj)/1.0e12 !ice vel143 v_ice(ji,jj)*v_ice(ji,jj) )*aire(ji,jj)/1.0e12 146 144 vinfor(53) = vinfor(53) + fsalt(ji,jj)*aire(ji,jj) / 1.0e12 !salt flux 147 145 vinfor(55) = vinfor(55) + fsbri(ji,jj)*aire(ji,jj) / 1.0e12 !brine drainage flux 148 146 vinfor(57) = vinfor(57) + fseqv(ji,jj)*aire(ji,jj) / 1.0e12 !equivalent salt flux 149 !slightly modified this150 147 vinfor(59) = vinfor(59) + sst_io(ji,jj)*at_i(ji,jj)*aire(ji,jj) / 1.0e12 !SST 151 148 vinfor(61) = vinfor(61) + sss_io(ji,jj)*at_i(ji,jj)*aire(ji,jj) / 1.0e12 !SSS … … 157 154 vinfor(75) = vinfor(75) + v_i(ji,jj,4)*aire(ji,jj) / 1.0e12 !ice volume 158 155 vinfor(77) = vinfor(77) + v_i(ji,jj,5)*aire(ji,jj) / 1.0e12 !ice volume 159 ! vinfor(79) = vinfor(79) + v_i(ji,jj,6)*aire(ji,jj) / 1.0e12 !ice volume160 156 vinfor(79) = 0.0 161 157 vinfor(81) = vinfor(81) + fmass(ji,jj)*aire(ji,jj) / 1.0e12 ! mass flux 162 ! vinfor(83) = vinfor(83) + ht_i(ji,jj,5)*aire(ji,jj) / 1.0e12 ! mass flux163 158 ENDIF 164 159 END DO … … 173 168 END DO 174 169 175 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(3,2)176 ! DO jj = njeq, jpjm1177 ! DO ji = fs_2, fs_jpim1 ! vector opt.178 ! vinfor(13) = vinfor(13) + v_i(ji,jj,jl)*aire(ji,jj) / 1.0e12 !def ice volume (inc. rafted ice)179 ! END DO180 ! END DO181 ! END DO182 170 vinfor(13) = 0.0 183 171 184 172 vinfor(15) = vinfor(15) / vinfor(7) ! these have to be divided by total ice volume to have the 185 173 vinfor(29) = vinfor(29) / vinfor(7) ! right value 186 ! vinfor(31) = vinfor(31) / vinfor(7)187 174 vinfor(31) = SQRT( vinfor(31) / MAX( vinfor(7) , epsi06 ) ) 188 175 vinfor(67) = vinfor(67) / vinfor(7) … … 192 179 vinfor(57) = vinfor(57) / vinfor(5) ! 193 180 vinfor(79) = vinfor(79) / vinfor(5) ! 194 ! vinfor(83) = vinfor(83) / vinfor(5) !195 181 196 182 zindb = 1.0 - MAX(0.0,SIGN(1.0,-vinfor(3))) ! … … 273 259 !! Fram strait in ORCA2 = 5 points 274 260 !! export = -v_ice*e1t*ddtb*at_i or -v_ice*e1t*ddtb*at_i*h_i 275 ! jj = 137276 261 jj = 136 ! C grid 277 262 vinfor(83) = 0.0 278 263 vinfor(84) = 0.0 279 ! WRITE(numout,*) ' Fram Strait Export '280 264 DO ji = 134, 138 281 ! vinfor(83) = vinfor(83) - ( v_ice(ji,jj) + v_ice(ji+1,jj) ) / 2.0 * &282 ! e1t(ji,jj)*at_i(ji,jj)*rdt_ice / 1.0e12283 ! vinfor(84) = vinfor(84) - ( v_ice(ji,jj) + v_ice(ji+1,jj) ) / 2.0 * &284 ! e1t(ji,jj)*vt_i(ji,jj)*rdt_ice / 1.0e12285 ! C grid286 265 vinfor(83) = vinfor(83) - v_ice(ji,jj) * & 287 266 e1t(ji,jj)*at_i(ji,jj)*rdt_ice / 1.0e12 288 267 vinfor(84) = vinfor(84) - v_ice(ji,jj) * & 289 268 e1t(ji,jj)*vt_i(ji,jj)*rdt_ice / 1.0e12 290 ! WRITE(numout,*)291 ! WRITE(numout,*) ' ji , jj : ', ji, jj292 ! WRITE(numout,*) ' v_ice ji -jj : ', v_ice(ji,jj)293 ! WRITE(numout,*) ' v_ice ji+1-jj : ', v_ice(ji+1,jj)294 ! WRITE(numout,*) ' e1t(ji,jj) : ', e1t(ji,jj)295 ! WRITE(numout,*) ' at_i(ji,jj) : ', at_i(ji,jj)296 ! WRITE(numout,*) ' rdt_ice : ', rdt_ice297 ! WRITE(numout,*) ' area export : ', vinfor(83)298 ! WRITE(numout,*) ' vol export : ', vinfor(84)299 269 END DO 300 270 … … 311 281 vinfor(8) = vinfor(8) + vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !ice volume 312 282 vinfor(10) = vinfor(10) + vt_s(ji,jj)*aire(ji,jj) / 1.0e12 !snow volume 313 ! vinfor(12) = vinfor(12) + vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !undef ice volume314 ! vinfor(14) = vinfor(14) + vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !def ice volume315 283 vinfor(16) = vinfor(16) + ot_i(ji,jj)*vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !mean age 316 284 vinfor(30) = vinfor(30) + smt_i(ji,jj)*vt_i(ji,jj)*aire(ji,jj) / 1.0e12 !mean salinity 317 ! vinfor(32) = vinfor(32) + u_ice(ji,jj)*u_ice(ji,jj) + v_ice(ji,jj)*v_ice(ji,jj) !ice vel 285 ! this diagnostic is not well computed (weighted by vol instead 286 ! of area) 318 287 vinfor(32) = vinfor(32) + vt_i(ji,jj)*( u_ice(ji,jj)*u_ice(ji,jj) + & 319 288 v_ice(ji,jj)*v_ice(ji,jj) )*aire(ji,jj)/1.0e12 !ice vel … … 324 293 vinfor(62) = vinfor(62) + sss_io(ji,jj)*at_i(ji,jj)*aire(ji,jj) / 1.0e12 !SSS 325 294 vinfor(66) = vinfor(66) + et_s(ji,jj)/1.0e9*aire(ji,jj) / 1.0e12 ! snow temperature 326 vinfor(68) = vinfor(68) + et_i(ji,jj)/1.0e9*aire(ji,jj) / 1.0e12 ! ice heat content295 vinfor(68) = vinfor(68) + et_i(ji,jj)/1.0e9*aire(ji,jj) / 1.0e12 ! ice enthalpy 327 296 vinfor(70) = vinfor(70) + v_i(ji,jj,1)*aire(ji,jj) / 1.0e12 !ice volume 328 297 vinfor(72) = vinfor(72) + v_i(ji,jj,2)*aire(ji,jj) / 1.0e12 !ice volume … … 330 299 vinfor(76) = vinfor(76) + v_i(ji,jj,4)*aire(ji,jj) / 1.0e12 !ice volume 331 300 vinfor(78) = vinfor(78) + v_i(ji,jj,5)*aire(ji,jj) / 1.0e12 !ice volume 332 ! vinfor(80) = vinfor(80) + v_i(ji,jj,6)*aire(ji,jj) / 1.0e12 ! mass flux333 301 vinfor(80) = 0.0 334 302 vinfor(82) = vinfor(82) + fmass(ji,jj)*aire(ji,jj) / 1.0e12 ! mass flux 335 ! vinfor(84) = vinfor(84) + ht_i(ji,jj,5)*aire(ji,jj) / 1.0e12 ! mass flux336 303 ENDIF 337 304 END DO … … 346 313 END DO 347 314 348 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(3,2)349 ! DO jj = 2, njeqm1350 ! DO ji = fs_2, fs_jpim1 ! vector opt.351 ! vinfor(14) = vinfor(14) + v_i(ji,jj,jl)*aire(ji,jj) / 1.0e12 !def ice volume (inc. rafted ice)352 ! END DO353 ! END DO354 ! END DO355 315 vinfor(14) = 0.0 356 316 357 317 zindb = 1.0 - MAX(0.0,SIGN(1.0,-vinfor(8))) 358 vinfor(16) = zindb * vinfor(16) / MAX(vinfor(8),epsi06) ! these have to be divided by total ice volume to have the359 vinfor(30) = zindb * vinfor(30) / MAX(vinfor(8),epsi06) ! right value318 vinfor(16) = zindb * vinfor(16) / MAX(vinfor(8),epsi06) ! these have to be divided by ice vol 319 vinfor(30) = zindb * vinfor(30) / MAX(vinfor(8),epsi06) ! 360 320 vinfor(32) = zindb * SQRT( vinfor(32) / MAX( vinfor(8) , epsi06 ) ) 361 vinfor(68) = zindb * vinfor(68) / MAX(vinfor(8),epsi06) ! right value321 vinfor(68) = zindb * vinfor(68) / MAX(vinfor(8),epsi06) ! 362 322 363 323 zindb = 1.0 - MAX(0.0,SIGN(1.0,-vinfor(6))) 364 vinfor(54) = zindb * vinfor(54) / MAX(vinfor(6),epsi06) ! these have to be divided by total ice extent to have the365 vinfor(56) = zindb * vinfor(56) / MAX(vinfor(6),epsi06) ! right value324 vinfor(54) = zindb * vinfor(54) / MAX(vinfor(6),epsi06) ! these have to be divided by ice extt 325 vinfor(56) = zindb * vinfor(56) / MAX(vinfor(6),epsi06) ! 366 326 vinfor(58) = zindb * vinfor(58) / MAX(vinfor(6),epsi06) ! 367 327 vinfor(80) = zindb * vinfor(80) / MAX(vinfor(6),epsi06) ! … … 408 368 END DO 409 369 zindb = 1.0 - MAX(0.0,SIGN(1.0,-vinfor(4))) ! 410 vinfor(64) = zindb * vinfor(64) / MAX(vinfor(4),epsi06) ! these have to be divided by total ice extent to have the370 vinfor(64) = zindb * vinfor(64) / MAX(vinfor(4),epsi06) ! divide by ice extt 411 371 !! 2.2) Diagnostics dependent on age 412 372 !!------------------------------------ … … 472 432 !! history : 473 433 !! 8.5 ! 03-08 (C. Ethe) original code 434 !! 9.0 ! 08-03 (M. Vancoppenolle) LIM3 474 435 !!------------------------------------------------------------------- 475 436 NAMELIST/namicedia/fmtinf, nfrinf, ninfo, ntmoy … … 479 440 & ndeb , & 480 441 & irecl 481 482 INTEGER :: nv ! indice of variable483 442 484 443 REAL(wp) :: zxx0, zxx1 ! temporary scalars
Note: See TracChangeset
for help on using the changeset viewer.