Changeset 8175
- Timestamp:
- 2017-06-14T18:31:18+02:00 (7 years ago)
- Location:
- branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r8172 r8175 426 426 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_ymtrp_ice !: Y-component of ice mass transport (kg/s) 427 427 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_xmtrp_snw !: X-component of snow mass transport (kg/s) 428 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_ymtrp_ ice!: Y-component of snow mass transport (kg/s)429 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_xatr an!: X-component of area transport (m2/s)430 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_yatr an!: Y-component of area transport (m2/s)428 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_ymtrp_snw !: Y-component of snow mass transport (kg/s) 429 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_xatrp !: X-component of area transport (m2/s) 430 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_yatrp !: Y-component of area transport (m2/s) 431 431 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_fc_bo !: Bottom conduction flux (W/m2) 432 432 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_fc_su !: Surface conduction flux (W/m2) -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r8172 r8175 68 68 & zdiag_volu_sh 69 69 70 ! ! Strait / passage fluxes (SIMIP)71 ! REAL(wp), DIMENSION(4) :: & ! Strait fluxes for output72 ! & zdiag_area_strait , & ! 1=Fram Strait, 2=CAA, 3= Barents, 4 = Bering73 ! & zdiag_mice_strait , &74 ! & zdiag_msno_strait75 76 ! REAL(wp) :: zfarea_u, zfmice_u, zfmsno_u, zfarea_v, zfmice_v, zfmsno_v ! dummy fluxes77 78 ! REAL(wp), DIMENSION(11) :: &79 ! & zui, zuj, zvi, zvj ! strait addresses80 81 ! INTEGER :: Nu, Nv, & ! passage size82 ! i_strait ! strait number83 84 ! INTEGER, DIMENSION(4) :: ji0, ji1, jj0, jj185 86 70 !!------------------------------------------------------------------- 87 71 … … 362 346 363 347 ENDIF 364 ! !-------------------------------------365 ! ! Area, ice mass and snow mass fluxes366 ! !-------------------------------------367 ! ! SIMIP requires fluxes through passages and straits368 ! ! Easiest implementation is via offline python script369 ! ! strait_ar_x370 !371 ! !--------------------------------372 ! ! Fluxes through straits (SIMIP)373 ! !--------------------------------374 ! !375 ! ! Valid only for ORCA-like grids376 ! !377 ! ! 4 Arctic passages are considered (Fram, CAA, Barents, Bering; see Notz et al (GMD 2016) for definitions)378 ! !379 ! ! Fram and Bering straits are easy because they follow parallels380 ! ! Barents and Canadian Arctic Archipelago are less easy because they do not, which is why they look so awful.381 ! !382 !383 ! IF ( iom_use( "strait_arfl" ) .OR. iom_use( "strait_mifl" ) .OR. iom_use( "strait_msfl" ) .AND. cp_cfg == "orca" ) THEN384 !385 ! zdiag_area_strait(:) = 0._wp ; zdiag_mice_strait(:) = 0._wp ; zdiag_msno_strait(:) = 0._wp386 !387 ! !------------------------------388 ! ! === Fram & Bering Straits ===389 ! !------------------------------390 !391 ! SELECT CASE ( jp_cfg )392 !393 ! CASE ( 2 ) ! --- ORCA2394 !395 ! ! Fram Strait (i_strait = 1)396 ! ji0(1) = 133 ; ji1(1) = 136397 ! jj0(1) = 136398 !399 ! ! Bering Strait (i_strait = 4)400 ! ji0(4) = 55 ; ji1(4) = 56401 ! jj0(4) = 122402 !403 ! CASE ( 1 ) ! --- eORCA1404 !405 ! ! Fram Strait406 ! ji0(1) = 268 ; ji1(1) = 277407 ! jj0(1) = 311408 !409 ! ! Bering Strait410 ! ji0(4) = 113 ; jj1(4) = 115411 ! jj0(4) = 285412 !413 ! END SELECT414 !415 ! DO i_strait = 1, 4, 3416 !417 ! DO ji = mi0( ji0(i_strait) ), mi1(ji1 (i_strait) )418 ! jj = mj0( jj0(i_strait) )419 !420 ! zdiag_area_strait(i_strait) = zdiag_area_strait(i_strait) & ! --- ice area flux ---421 ! & + at_i(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) & ! northwards (positive) flow422 ! & + at_i(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) ! southwards (negative) flow423 !424 ! zdiag_mice_strait(i_strait) = zdiag_mice_strait(i_strait) + rhoic * & ! --- ice mass flux ---425 ! & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) &426 ! & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) )427 !428 ! zdiag_msno_strait(i_strait) = zdiag_msno_strait(i_strait) + rhosn * & ! --- snow mass flux ---429 ! & ( vt_s(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) &430 ! & + vt_s(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) )431 !432 ! END DO433 !434 ! END DO435 !436 ! !---------------------437 ! ! === Barents opening438 ! !---------------------439 !440 ! SELECT CASE ( jp_cfg )441 !442 ! CASE ( 1 ) ! 'eORCA1'443 !444 ! Nu = 11 ! U-Flow445 ! zui(1:Nu) = (/ 282,283,284,285,286,286,287,288,289,290,292/)446 ! zuj(1:Nu) = (/ 308,307,306,305,304,303,302,301,300,299,298/)447 !448 ! Nv = 9 ! V-Flow449 ! zvi(1:Nv) = (/ 282,283,284,285,286,287,288,289,290/)450 ! zvj(1:Nv) = (/ 308,307,306,305,303,302,301,300,299/)451 !452 ! CASE ( 2 ) ! 'ORCA2'453 !454 ! Nu = 5 ! U-Flow455 ! zui(1:Nu) = (/ 141,142,142,143,144 /)456 ! zuj(1:Nu) = (/ 134,133,132,131,130 /)457 !458 ! Nv = 4 ! V-Flow459 ! zvi(1:Nv) = (/ 140,141,142,143 /)460 ! zvj(1:Nv) = (/ 135,134,132,131 /)461 !462 ! END SELECT463 !464 ! ! Barents U-flow465 ! zfarea_u = 0._wp ; zfmice_u = 0._wp ; zfmsno_u = 0._wp466 !467 ! DO ii = 1, Nu468 !469 ! ji = mi0(zui(ii))470 ! jj = mj0(zuj(ii))471 !472 ! zfarea_u = zfarea_u & ! --- ice area zonal flux ---473 ! & + at_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & ! --- northward474 ! & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ! --- southward475 ! zfmice_u = zfmice_u + rhoic * & ! --- ice mass zonal flux ---476 ! & ( vt_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) &477 ! & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) )478 ! zfmsno_u = zfmsno_u + rhosn * & ! --- snow mass zonal flux ---479 ! & ( vt_s(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) &480 ! & + vt_s(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) )481 ! END DO482 !483 ! ! Barents V-flow484 ! zfarea_v = 0._wp ; zfmice_v = 0._wp ; zfmsno_v = 0._wp485 !486 ! DO ii = 1, Nv487 !488 ! ji = mi0(zvi(ii))489 ! jj = mj0(zvj(ii))490 !491 ! zfarea_v = zfarea_v & ! --- ice area meridian flux ---492 ! & + at_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! --- eastward493 ! & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ! --- westward494 ! zfmice_v = zfmice_v + rhoic * & ! --- ice mass meridian flux ---495 ! & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & !496 ! & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) !497 ! zfmsno_v = zfmsno_v + rhosn * & ! --- snow mass meridian flux ---498 ! & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & !499 ! & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) !500 ! END DO501 !502 ! ! Sum Barents U-/V- contributions503 ! zdiag_area_strait(3) = zfarea_u + zfarea_v504 ! zdiag_mice_strait(3) = zfmice_u + zfmice_v505 ! zdiag_msno_strait(3) = zfmsno_u + zfmsno_v506 !507 ! !---------------------508 ! ! === CAA throughflow509 ! !---------------------510 !511 ! SELECT CASE ( jp_cfg )512 !513 ! CASE ( 1 ) ! eORCA1514 !515 ! ! V-flow through Nares Strait516 ! Nv = 4517 ! zvi(1:Nv) = (/ 254,255,256,257 /)518 ! zvj(1:Nv) = (/ 317,317,317,317 /)519 !520 ! ! U-flow through Queen Elisabeth Islands and McClure straits521 ! Nu = 8522 ! zui(1:Nu) = (/ 231,231,231, 132,132,132,132,132 /)523 ! zuj(1:Nu) = (/ 328,329,330, 318,319,320,321,322 /)524 !525 ! zfarea_u = 0._wp ; zfmice_u = 0._wp ; zfmsno_u = 0._wp526 !527 ! DO ii = 1, Nu528 !529 ! ji = mi0(zui(ii))530 ! jj = mj0(zuj(ii))531 !532 ! zfarea_u = zfarea_u & ! --- ice area zonal flux ---533 ! & + at_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & ! --- eastward534 ! & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ! --- westward535 ! zfmice_u = zfmice_u + rhoic * & ! --- ice mass zonal flux ---536 ! & ( vt_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) &537 ! & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) )538 ! zfmsno_u = zfmsno_u + rhosn * & ! --- snow mass zonal flux ---539 ! & ( vt_s(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) &540 ! & + vt_s(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) )541 !542 ! END DO543 !544 !545 ! CASE ( 2 ) ! ORCA2546 !547 ! ! V-flow through Nares Strait548 ! Nv = 2549 ! zvi(1:Nv) = (/ 117,118 /)550 ! zvj(1:Nv) = (/ 145,145 /)551 !552 ! ! U-flow through Queen Elisabeth Islands and McClure straits (not resolved in ORCA2)553 ! zfarea_u = 0._wp ; zfmice_u = 0._wp ; zfmsno_u = 0._wp554 !555 ! END SELECT556 !557 ! ! V-flow through Nares Strait558 ! zfarea_v = 0._wp ; zfmice_v = 0._wp ; zfmsno_v = 0._wp559 !560 ! DO ii = 1, Nv561 !562 ! ji = mi0(zvi(ii))563 ! jj = mj0(zvj(ii))564 !565 ! zfarea_v = zfarea_v & ! --- ice area meridian flux ---566 ! & + at_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! --- eastward567 ! & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ! --- westward568 ! zfmice_v = zfmice_v + rhoic * & ! --- ice mass meridian flux ---569 ! & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & !570 ! & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) !571 ! zfmsno_v = zfmsno_v + rhosn * & ! --- snow mass meridian flux ---572 ! & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & !573 ! & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) !574 !575 ! END DO576 !577 ! ! Sum U/V contributions578 ! zdiag_area_strait(2) = zfarea_u + zfarea_v579 ! zdiag_mice_strait(2) = zfmice_u + zfmice_v580 ! zdiag_msno_strait(2) = zfmsno_u + zfmsno_v581 !582 ! ! === Ncdf output583 ! IF ( iom_use("strait_arfl") ) CALL iom_put( "strait_arfl", zdiag_area_strait )584 ! IF ( iom_use("strait_mifl") ) CALL iom_put( "strait_mifl", zdiag_mice_strait )585 ! IF ( iom_use("strait_msfl") ) CALL iom_put( "strait_msfl", zdiag_msno_strait )586 !587 ! WRITE(numout,*) " area flx ", zdiag_area_strait(:)588 ! WRITE(numout,*) " mice flx ", zdiag_mice_strait(:)589 ! WRITE(numout,*) " msno flx ", zdiag_msno_strait(:)590 !591 ! ENDIF592 348 593 349 ! ! Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s
Note: See TracChangeset
for help on using the changeset viewer.