Changeset 7517 for branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM
- Timestamp:
- 2016-12-21T16:38:25+01:00 (7 years ago)
- Location:
- branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r7506 r7517 430 430 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_intstrx !: X-direction internal stress (N/m2) 431 431 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_intstry !: Y-direction internal stress (N/m2) 432 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_sig1 !: Average normal stress in sea ice 433 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_sig2 !: Maximum shear stress in sea ice 434 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_shear !: Maximum shear of sea-ice velocity field 432 435 433 436 ! … … 538 541 diag_corstrx(jpi,jpj) , diag_corstry(jpi,jpj) , & 539 542 diag_intstrx(jpi,jpj) , diag_intstry(jpi,jpj) , & 543 diag_sig1(jpi,jpj) , diag_sig2(jpi,jpj) , & 540 544 STAT = ierr(ii) ) 541 545 -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r7506 r7517 129 129 REAL(wp) :: zresm ! Maximal error on ice velocity 130 130 REAL(wp) :: zintb, zintn ! dummy argument 131 REAL(wp) :: zswi 131 132 132 133 REAL(wp), POINTER, DIMENSION(:,:) :: zpresh ! temporary array for ice strength … … 639 640 stress12_i(:,:) = zs12(:,:) 640 641 641 ! SIMIP diagnostic internal stress 642 ! SIMIP diagnostic internal stress terms (N/m2) 642 643 diag_dssh_dx(:,:) = zspgU(:,:) 643 644 diag_dssh_dy(:,:) = zspgV(:,:) … … 649 650 CALL lbc_lnk( diag_intstrx, 'U', -1. ) 650 651 CALL lbc_lnk( diag_intstry, 'V', -1. ) 652 653 ! SIMIP diagnostic stress tensor invariants (normal and shear stress N/m) 654 DO jj = k_j1+1, k_jpj-1 655 DO ji = 2, jpim1 656 zswi = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 1.0e-6 ) ) ! 1 if ice, 0 if no ice 657 diag_sig1(ji,jj) = ( zs1(ji,jj) + zs2(ji,jj) ) * zswi 658 diag_sig2(ji,jj) = SQRT( ( zs1(ji,jj) - zs2(ji,jj) )**2 + 4*zs12(ji,jj)**2 ) * zswi 659 END DO 660 END DO 661 CALL lbc_lnk( diag_sig1, 'T', 1. ) 662 CALL lbc_lnk( diag_sig2, 'T', 1. ) 651 663 652 664 ! … … 686 698 ENDIF 687 699 ENDIF 700 688 701 ! 689 702 CALL wrk_dealloc( jpi,jpj, zpresh, z1_e1t0, z1_e2t0, zp_delt ) -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r7506 r7517 18 18 USE sbc_ice ! Surface boundary condition: ice fields 19 19 USE ice 20 USE dom_ice 20 21 USE limvar 21 22 USE in_out_manager … … 52 53 INTEGER, INTENT(in) :: kindic ! if kindic < 0 there has been an error somewhere 53 54 ! 54 INTEGER :: ji, jj, jk, jl ! dummy loop indices55 INTEGER :: ii, ji, jj, jk, jl ! dummy loop indices 55 56 REAL(wp) :: z1_365 56 57 REAL(wp) :: z2da, z2db, ztmp, zrho1, zrho2 57 REAL(wp) :: zdiag_area_nh, zdiag_extt_nh, zdiag_area_sh, zdiag_extt_sh, zdiag_volu_nh, zdiag_volu_sh58 59 58 REAL(wp), POINTER, DIMENSION(:,:,:) :: zswi2 60 59 REAL(wp), POINTER, DIMENSION(:,:) :: z2d, zswi ! 2D workspace 61 60 61 ! Global ice diagnostics (SIMIP) 62 REAL(wp) :: zdiag_area_nh, & ! area, extent, volume 63 & zdiag_extt_nh, & 64 & zdiag_area_sh, & 65 & zdiag_extt_sh, & 66 & zdiag_volu_nh, & 67 & zdiag_volu_sh 68 69 ! Strait / passage fluxes (SIMIP) 70 REAL(wp), DIMENSION(4) :: & ! Strait fluxes for output 71 & zdiag_area_strait , & ! 1=Fram Strait, 2=CAA, 3= Barents, 4 = Bering 72 & zdiag_mice_strait , & 73 & zdiag_msno_strait 74 75 REAL(wp) :: zfarea_u, zfmice_u, zfmsno_u, zfarea_v, zfmice_v, zfmsno_v ! dummy fluxes 76 77 REAL(wp), DIMENSION(11) :: & 78 & zui, zuj, zvi, zvj ! strait addresses 79 80 INTEGER :: Nu, Nv ! passage size 81 82 INTEGER, PARAMETER :: i_grid = 2 ! grid type (eORCA1 = 1, ORCA2 = 2) 83 62 84 !!------------------------------------------------------------------- 63 85 … … 139 161 140 162 CALL iom_put( "icestr" , strength * zswi ) ! ice strength 141 CALL iom_put( "idive" , divu_i * 1.0e8) ! divergence142 CALL iom_put( "ishear" , shear_i * 1.0e8) ! shear163 CALL iom_put( "idive" , divu_i ) ! divergence 164 CALL iom_put( "ishear" , shear_i ) ! shear 143 165 CALL iom_put( "snowvol" , vt_s * zswi ) ! snow volume 144 166 … … 257 279 CALL iom_put( "intstry" , diag_intstry*zswi ) ! Internal force term in force balance (y-component) 258 280 281 CALL iom_put( "normstr" , diag_sig1 *zswi ) ! Normal stress 282 CALL iom_put( "sheastr" , diag_sig2 *zswi ) ! Shear stress 283 259 284 !-------------------------------- 260 ! Global ice diagnostics 285 ! Global ice diagnostics (SIMIP) 261 286 !-------------------------------- 262 263 IF ( iom_use ( "NH_icearea" ) .OR. ( iom_use( "NH_icevolu" ) ) THEN ! NH ice area 264 265 WHERE( fcor > 0 ); zswi(:,:) = 1.; 266 ELSEWHERE ; zswi(:,:) = 0. 267 END WHERE 268 269 IF ( iom_use ( "NH_icearea" ) THEN 270 zdiag_area_nh = glob_sum( at_i(:,:) * zswi(:,:) * e12t(:,:) ) / 1.0e12 287 ! 288 ! What follows could be a separate routine 289 ! 290 291 IF ( iom_use( "NH_icearea" ) .OR. iom_use( "NH_icevolu" ) ) THEN ! NH ice area 292 293 WHERE( fcor > 0 ); zswi(:,:) = 1.0e-12; 294 ELSEWHERE ; zswi(:,:) = 0. 295 END WHERE 296 297 IF ( iom_use( "NH_icearea" ) ) THEN 298 zdiag_area_nh = glob_sum( at_i(:,:) * zswi(:,:) * e12t(:,:) ) 271 299 CALL iom_put( "NH_icearea", zdiag_area_nh ) 272 300 ENDIF 273 IF ( iom_use ( "NH_icevolu") THEN274 zdiag_volu_nh = glob_sum( vt_i(:,:) * zswi(:,:) * e12t(:,:) ) / 1.0e12301 IF ( iom_use( "NH_icevolu" ) ) THEN 302 zdiag_volu_nh = glob_sum( vt_i(:,:) * zswi(:,:) * e12t(:,:) ) 275 303 CALL iom_put( "NH_icevolu", zdiag_volu_nh ) 276 304 ENDIF … … 278 306 ENDIF 279 307 280 IF ( iom_use ( "NH_iceextt" ) ) THEN! NH ice extt281 282 WHERE( fcor > 0 .AND. at_i > 0.15 ); zswi(:,:) = 1.;283 284 285 286 zdiag_extt_nh = glob_sum( zswi(:,:) * e12t(:,:) ) / 1.0e12287 308 IF ( iom_use( "NH_iceextt" ) ) THEN ! NH ice extt 309 310 WHERE( fcor > 0 .AND. at_i > 0.15 ); zswi(:,:) = 1.0e-12; 311 ELSEWHERE ; zswi(:,:) = 0. 312 END WHERE 313 314 zdiag_extt_nh = glob_sum( zswi(:,:) * e12t(:,:) ) 315 CALL iom_put( "NH_iceextt", zdiag_extt_nh ) 288 316 289 317 ENDIF 290 318 291 IF ( iom_use ( "SH_icearea" ) .OR. ( iom_use( "SH_icevolu" ) ) THEN! SH ice area / volume292 293 WHERE( fcor < 0 ); zswi(:,:) = 1.;294 295 296 297 IF ( iom_use ( "SH_icearea") THEN298 zdiag_area_sh = glob_sum( at_i(:,:) * zswi(:,:) * e12t(:,:) ) / 1.0e12299 300 301 IF ( iom_use ( "SH_icevolu") THEN302 zdiag_volu_sh = glob_sum( vt_i(:,:) * zswi(:,:) * e12t(:,:) ) / 1.0e12303 304 319 IF ( iom_use( "SH_icearea" ) .OR. iom_use( "SH_icevolu" ) ) THEN ! SH ice area / volume 320 321 WHERE( fcor < 0 ); zswi(:,:) = 1.0e-12; 322 ELSEWHERE ; zswi(:,:) = 0. 323 END WHERE 324 325 IF ( iom_use( "SH_icearea" ) ) THEN 326 zdiag_area_sh = glob_sum( at_i(:,:) * zswi(:,:) * e12t(:,:) ) 327 CALL iom_put( "SH_icearea", zdiag_area_sh ) 328 ENDIF 329 IF ( iom_use( "SH_icevolu" ) ) THEN 330 zdiag_volu_sh = glob_sum( vt_i(:,:) * zswi(:,:) * e12t(:,:) ) 331 CALL iom_put( "SH_icevolu", zdiag_volu_sh ) 332 ENDIF 305 333 306 334 ENDIF 307 335 308 IF ( iom_use ( "SH_iceextt" ) ) THEN! SH ice extt309 310 WHERE( fcor < 0 .AND. at_i > 0.15 ); zswi(:,:) = 1.;311 312 313 314 zdiag_extt_sh = glob_sum( zswi(:,:) * e12t(:,:) )/ 1.0e12315 316 336 IF ( iom_use( "SH_iceextt" ) ) THEN ! SH ice extt 337 338 WHERE( fcor < 0 .AND. at_i > 0.15 ); zswi(:,:) = 1.0e-12; 339 ELSEWHERE ; zswi(:,:) = 0. 340 END WHERE 341 342 zdiag_extt_sh = glob_sum( zswi(:,:) * e12t(:,:) ) 343 344 CALL iom_put( "SH_iceextt", zdiag_extt_sh ) 317 345 318 346 ENDIF 319 347 320 !-------------------------------- 321 ! Output values for each category 322 !-------------------------------- 348 !------------------------ 349 ! Fluxes through straits 350 !------------------------ 351 ! 352 ! This piece of code is quite awful and should probably be a separate routine 353 ! 354 ! See Notz et al 2016 for definitions 355 ! 4 Arctic passages are considered (Fram, CAA, Barents, Bering) 356 ! 357 358 IF ( iom_use("strait_arfl") .OR. iom_use("strait_mifl") .OR. iom_use("strait_msfl") ) THEN 359 360 zdiag_area_strait(:) = 0._wp 361 zdiag_mice_strait(:) = 0._wp 362 zdiag_msno_strait(:) = 0._wp 363 364 ! === Fram Strait === 365 IF ( i_grid == 2 ) THEN ! ORCA2 366 Nv = 4 367 zvi(1:Nv) = (/ 133, 134, 135, 136 /) 368 zvj(1:Nv) = (/ 136, 136, 136, 136 /) 369 ENDIF 370 371 IF ( i_grid == 1 ) THEN ! eORCA1 372 Nv = 10 373 zvi(1:Nv) = (/ 268,269,270,271,272,273,274,275,276,277 /) 374 zvj(1:Nv) = (/ 311,311,311,311,311,311,311,311,311,311 /) 375 ENDIF 376 377 DO ii = 1, Nv 378 ji = zvi(ii) 379 jj = zvj(ii) 380 zdiag_area_strait(1) = zdiag_area_strait(1) & ! --- ice area flux --- 381 & + at_i(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) & ! northwards (positive) flow 382 & + at_i(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) ! southwards (negative) flow 383 384 zdiag_mice_strait(1) = zdiag_mice_strait(1) + rhoic * & ! --- ice mass flux --- 385 & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) & ! 386 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) ) ! 387 388 zdiag_msno_strait(1) = zdiag_msno_strait(1) + rhosn * & ! --- snow mass flux --- 389 & ( vt_s(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) & 390 & + vt_s(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) ) 391 END DO 392 393 ! === Bering Strait === 394 IF ( i_grid == 1 ) THEN ! eORCA1 395 Nv = 3 396 zvi(1:Nv) = (/ 113,114,115 /) 397 zvj(1:Nv) = (/ 285,285,285 /) 398 ENDIF 399 400 IF ( i_grid == 2 ) THEN ! ORCA2 401 Nv = 2 402 zvi(1:Nv) = (/ 55 , 56 /) 403 zvj(1:Nv) = (/ 122,122 /) 404 ENDIF 405 406 DO ii = 1, Nv 407 ji = zvi(ii) 408 jj = zvj(ii) 409 zdiag_area_strait(4) = zdiag_area_strait(4) & ! --- ice area flux --- 410 & + at_i(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) & ! northwards (positive) flow 411 & + at_i(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) ! southwards (negative) flow 412 413 zdiag_mice_strait(4) = zdiag_mice_strait(4) + rhoic * & ! --- ice mass flux --- 414 & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) & ! 415 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) ) ! 416 417 zdiag_msno_strait(4) = zdiag_msno_strait(4) + rhosn * & ! --- snow mass flux --- 418 & ( vt_s(ji,jj-1) * e12t(ji,jj-1) * MAX( v_ice(ji,jj-1), 0.0 ) & 419 & + vt_s(ji,jj ) * e12t(ji,jj) * MIN( v_ice(ji,jj-1), 0.0 ) ) 420 END DO 421 422 ! === Barents throughflow (eORCA1) 423 424 ! U-flow 425 IF ( i_grid == 1 ) THEN ! 'eORCA1' 426 Nu = 11 427 zui(1:Nu) = (/ 282,283,284,285,286,286,287,288,289,290,292/) 428 zuj(1:Nu) = (/ 308,307,306,305,304,303,302,301,300,299,298/) 429 ENDIF 430 IF ( i_grid == 2 ) THEN ! 'ORCA2' 431 Nu = 5 432 zui(1:Nu) = (/ 141,142,142,143,144 /) 433 zuj(1:Nu) = (/ 134,133,132,131,130 /) 434 ENDIF 435 zfarea_u = 0._wp 436 zfmice_u = 0._wp 437 zfmsno_u = 0._wp 438 439 DO ii = 1, Nu 440 ji = zui(ii) 441 jj = zuj(ii) 442 zfarea_u = zfarea_u & ! --- ice area zonal flux --- 443 & + at_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & ! --- eastward 444 & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ! --- westward 445 zfmice_u = zfmice_u + rhoic * & ! --- ice mass zonal flux --- 446 & ( vt_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & 447 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ) 448 zfmsno_u = zfmsno_u + rhosn * & ! --- snow mass zonal flux --- 449 & ( vt_s(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & 450 & + vt_s(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ) 451 END DO 452 453 ! V-flow 454 IF ( i_grid == 1 ) THEN ! 'eORCA1' 455 Nv = 9 456 zvi(1:Nv) = (/ 282,283,284,285,286,287,288,289,290/) 457 zvj(1:Nv) = (/ 308,307,306,305,303,302,301,300,299/) 458 ENDIF 459 IF ( i_grid == 2 ) THEN ! 'ORCA2' 460 Nv = 4 461 zvi(1:Nv) = (/ 140,141,142,143 /) 462 zvj(1:Nv) = (/ 135,134,132,131 /) 463 ENDIF 464 zfarea_v = 0._wp 465 zfmice_v = 0._wp 466 zfmsno_v = 0._wp 467 468 DO ii = 1, Nv 469 ji = zvi(ii) 470 jj = zvj(ii) 471 zfarea_v = zfarea_v & ! --- ice area meridian flux --- 472 & + at_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! --- eastward 473 & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ! --- westward 474 zfmice_v = zfmice_v + rhoic * & ! --- ice mass meridian flux --- 475 & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! 476 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) ! 477 zfmsno_v = zfmsno_v + rhosn * & ! --- snow mass meridian flux --- 478 & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! 479 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) ! 480 END DO 481 482 ! Sum U/V contributions 483 zdiag_area_strait(3) = zfarea_u + zfarea_v 484 zdiag_mice_strait(3) = zfmice_u + zfmice_v 485 zdiag_msno_strait(3) = zfmsno_u + zfmsno_v 486 487 ! === CAA throughflow === 488 ! U-flow through Queen Elisabeth Islands and McClure straits 489 IF ( i_grid == 1 ) THEN ! eORCA1 490 Nu = 8 491 zui(1:Nu) = (/ 231,231,231, 132,132,132,132,132 /) 492 zuj(1:Nu) = (/ 328,329,330, 318,319,320,321,322 /) 493 zfarea_u = 0._wp 494 zfmice_u = 0._wp 495 zfmsno_u = 0._wp 496 497 DO ii = 1, Nu 498 ji = zui(ii) 499 jj = zuj(ii) 500 zfarea_u = zfarea_u & ! --- ice area zonal flux --- 501 & + at_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & ! --- eastward 502 & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ! --- westward 503 zfmice_u = zfmice_u + rhoic * & ! --- ice mass zonal flux --- 504 & ( vt_i(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & 505 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ) 506 zfmsno_u = zfmsno_u + rhosn * & ! --- snow mass zonal flux --- 507 & ( vt_s(ji-1,jj) * e12t(ji-1,jj) * MAX( u_ice(ji-1,jj), 0.0 ) & 508 & + vt_s(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji-1,jj), 0.0 ) ) 509 END DO 510 ENDIF 511 512 IF ( i_grid == 2 ) THEN ! ORCA2 513 zfarea_u = 0._wp ! QEI and McClure straits are not resolved in ORCA2 514 zfmice_u = 0._wp 515 zfmsno_u = 0._wp 516 ENDIF 517 518 ! V-flow through Nares Strait 519 IF ( i_grid == 1 ) THEN ! eORCA1 520 Nv = 4 521 zvi(1:Nv) = (/ 254,255,256,257 /) 522 zvj(1:Nv) = (/ 317,317,317,317 /) 523 ENDIF 524 IF ( i_grid == 2 ) THEN ! ORCA2 525 Nv = 2 526 zvi(1:Nv) = (/ 117,118 /) 527 zvj(1:Nv) = (/ 145,145 /) 528 ENDIF 529 zfarea_v = 0._wp 530 zfmice_v = 0._wp 531 zfmsno_v = 0._wp 532 533 DO ii = 1, Nv 534 ji = zvi(ii) 535 jj = zvj(ii) 536 zfarea_v = zfarea_v & ! --- ice area meridian flux --- 537 & + at_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! --- eastward 538 & + at_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ! --- westward 539 zfmice_v = zfmice_v + rhoic * & ! --- ice mass meridian flux --- 540 & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! 541 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) ! 542 zfmsno_v = zfmsno_v + rhosn * & ! --- snow mass meridian flux --- 543 & ( vt_i(ji,jj-1) * e12t(ji,jj-1) * MAX( u_ice(ji,jj-1), 0.0 ) & ! 544 & + vt_i(ji,jj ) * e12t(ji,jj) * MIN( u_ice(ji,jj-1), 0.0 ) ) ! 545 END DO 546 547 ! Sum U/V contributions 548 zdiag_area_strait(2) = zfarea_u + zfarea_v 549 zdiag_mice_strait(2) = zfmice_u + zfmice_v 550 zdiag_msno_strait(2) = zfmsno_u + zfmsno_v 551 552 ! === Write in file 553 IF ( iom_use("strait_arfl") ) CALL iom_put( "strait_arfl", zdiag_area_strait ) 554 IF ( iom_use("strait_mifl") ) CALL iom_put( "strait_mifl", zdiag_mice_strait ) 555 IF ( iom_use("strait_msfl") ) CALL iom_put( "strait_msfl", zdiag_msno_strait ) 556 557 WRITE(numout,*) " area flx ", zdiag_area_strait(:) 558 WRITE(numout,*) " mice flx ", zdiag_mice_strait(:) 559 WRITE(numout,*) " msno flx ", zdiag_msno_strait(:) 560 561 ENDIF 562 563 !---------------------------------- 564 ! Output category-dependent fields 565 !---------------------------------- 323 566 IF ( iom_use( "iceconc_cat" ) ) CALL iom_put( "iceconc_cat" , a_i * zswi2 ) ! area for categories 324 567 IF ( iom_use( "icethic_cat" ) ) CALL iom_put( "icethic_cat" , ht_i * zswi2 ) ! thickness for categories -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r7494 r7517 221 221 #if defined key_lim3 || defined key_lim2 222 222 CALL iom_set_axis_attr( "ncatice", (/ (REAL(ji,wp), ji=1,jpl) /) ) 223 ! SIMIP diagnostics (4 main arctic straits) 224 CALL iom_set_axis_attr( "nstrait", (/ (REAL(ji,wp), ji=1,4) /) ) 223 225 #endif 224 226 CALL iom_set_axis_attr( "icbcla", class_num ) … … 228 230 ! automatic definitions of some of the xml attributs 229 231 CALL set_xmlatt 230 231 CALL set_1point232 232 233 233 ! end file definition … … 1569 1569 zz=REAL(narea,wp) 1570 1570 CALL iom_set_domain_attr('scalarpoint', lonvalue=zz, latvalue=zz) 1571 1571 1572 1572 END SUBROUTINE set_scalar 1573 1574 SUBROUTINE set_1point1575 !!----------------------------------------------------------------------1576 !! *** ROUTINE set_1point ***1577 !!1578 !! ** Purpose : define zoom grid for scalar fields1579 !!1580 !!----------------------------------------------------------------------1581 REAL(wp), DIMENSION(1) :: zz = 1.1582 INTEGER :: ix, iy1583 !!----------------------------------------------------------------------1584 CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! Nearest point to north pole should be ocean1585 CALL iom_set_domain_attr('1point', zoom_ibegin=ix, zoom_jbegin=iy)1586 1587 END SUBROUTINE set_1point1588 1573 1589 1574
Note: See TracChangeset
for help on using the changeset viewer.