- Timestamp:
- 2017-06-08T12:43:44+02:00 (7 years ago)
- Location:
- branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r8151 r8152 534 534 & diag_smvi (jpi,jpj), diag_vice (jpi,jpj), diag_vsnw (jpi,jpj), STAT=ierr(ii) ) 535 535 536 ! * SIMIP d ata request diagnostics536 ! * SIMIP diagnostics 537 537 ii = ii + 1 538 538 ALLOCATE( t_si (jpi,jpj,jpl) , tm_si(jpi,jpj) , & -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r8150 r8152 670 670 & + rhosn * vsrft(ij) * ( 1._wp - rn_fsnowrft ) ) * r1_rdtice ! fresh water source for ocean 671 671 672 wfx_snw_dyn(ji,jj) = wfx_snw(ji,jj) + zwfx_snw 673 wfx_snw(ji,jj) = wfx_snw(ji,jj) + zwfx_snw 674 675 ! SIMIP diagnostic 676 diag_dms_dyn(ji,jj) = - wfx_dyn(ji,jj) + diag_trp_vi(ji,jj) 677 diag_dmi_dyn(ji,jj) = - wfx_snw_dyn(ji,jj) + diag_trp_vs(ji,jj) 672 wfx_snw_dyn(ji,jj) = wfx_snw_dyn(ji,jj) + zwfx_snw 673 wfx_snw(ji,jj) = wfx_snw(ji,jj) + zwfx_snw 678 674 679 675 hfx_dyn(ji,jj) = hfx_dyn(ji,jj) + ( - esrdg(ij) * ( 1._wp - rn_fsnowrdg ) & … … 774 770 END DO ! jl1 (deforming categories) 775 771 772 ! SIMIP diagnostics 773 diag_dmi_dyn(:,:) = - wfx_dyn(:,:) + rhoic * diag_trp_vi(:,:) 774 diag_dms_dyn(:,:) = - wfx_snw_dyn(:,:) + rhosn * diag_trp_vs(:,:) 775 776 776 ! 777 777 CALL wrk_dealloc( jpij, indxi, indxj ) -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r8151 r8152 149 149 ! ocean surface (ssh_m) if ice is not embedded 150 150 ! ice top surface if ice is embedded 151 REAL(wp), POINTER, DIMENSION(:,:) :: zCorx, zCory ! Coriolis stress array (SIMIP) 151 REAL(wp), POINTER, DIMENSION(:,:) :: zCorx, zCory ! Coriolis stress array 152 REAL(wp), POINTER, DIMENSION(:,:) :: ztaux_oi, ztauy_oi ! Ocean-to-ice stress array 153 152 154 REAL(wp), POINTER, DIMENSION(:,:) :: zswitchU, zswitchV ! dummy arrays 153 155 REAL(wp), POINTER, DIMENSION(:,:) :: zmaskU, zmaskV ! mask for ice presence … … 165 167 CALL wrk_alloc( jpi,jpj, zswitchU, zswitchV, zmaskU, zmaskV, zfmask, zwf ) 166 168 CALL wrk_alloc( jpi,jpj, zCorx, zCory) 169 CALL wrk_alloc( jpi,jpj, ztaux_oi, ztauy_oi) 167 170 168 171 #if defined key_lim2 && ! defined key_lim2_vp … … 448 451 & + ( u_iceV(ji,jj) - u_oceV(ji,jj) ) * ( u_iceV(ji,jj) - u_oceV(ji,jj) ) ) 449 452 453 ! Ocean-to-Ice stress 454 ztauy_oi(ji,jj) = zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 455 450 456 ! Coriolis at V-points (energy conserving formulation) 451 457 zCory(ji,jj) = - 0.25_wp * r1_e2v(ji,jj) * & … … 454 460 455 461 ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 456 zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCory(ji,jj) + zspgV(ji,jj) + z TauO * ( v_oce(ji,jj) - v_ice(ji,jj))462 zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCory(ji,jj) + zspgV(ji,jj) + ztauy_oi(ji,jj) 457 463 458 464 ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) … … 479 485 & + ( v_iceU(ji,jj) - v_oceU(ji,jj) ) * ( v_iceU(ji,jj) - v_oceU(ji,jj) ) ) 480 486 487 ! Ocean-to-Ice stress 488 ztaux_oi(ji,jj) = zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 489 481 490 ! Coriolis at U-points (energy conserving formulation) 482 491 zCorx(ji,jj) = 0.25_wp * r1_e1u(ji,jj) * & 483 492 & ( zmf(ji ,jj) * ( e1v(ji ,jj) * v_ice(ji ,jj) + e1v(ji ,jj-1) * v_ice(ji ,jj-1) ) & 484 493 & + zmf(ji+1,jj) * ( e1v(ji+1,jj) * v_ice(ji+1,jj) + e1v(ji+1,jj-1) * v_ice(ji+1,jj-1) ) ) 485 494 486 495 ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 487 zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCorx(ji,jj) + zspgU(ji,jj) + z TauO * ( u_oce(ji,jj) - u_ice(ji,jj))496 zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCorx(ji,jj) + zspgU(ji,jj) + ztaux_oi(ji,jj) 488 497 489 498 ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) … … 512 521 & + ( v_iceU(ji,jj) - v_oceU(ji,jj) ) * ( v_iceU(ji,jj) - v_oceU(ji,jj) ) ) 513 522 523 ! Ocean-to-Ice stress 524 ztaux_oi(ji,jj) = zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 525 514 526 ! Coriolis at U-points (energy conserving formulation) 515 527 zCorx(ji,jj) = 0.25_wp * r1_e1u(ji,jj) * & 516 528 & ( zmf(ji ,jj) * ( e1v(ji ,jj) * v_ice(ji ,jj) + e1v(ji ,jj-1) * v_ice(ji ,jj-1) ) & 517 529 & + zmf(ji+1,jj) * ( e1v(ji+1,jj) * v_ice(ji+1,jj) + e1v(ji+1,jj-1) * v_ice(ji+1,jj-1) ) ) 518 530 519 531 ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 520 zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCorx(ji,jj) + zspgU(ji,jj) + z TauO * ( u_oce(ji,jj) - u_ice(ji,jj))532 zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCorx(ji,jj) + zspgU(ji,jj) + ztaux_oi(ji,jj) 521 533 522 534 ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) … … 543 555 & + ( u_iceV(ji,jj) - u_oceV(ji,jj) ) * ( u_iceV(ji,jj) - u_oceV(ji,jj) ) ) 544 556 557 ! Ocean-to-Ice stress 558 ztauy_oi(ji,jj) = zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 559 545 560 ! Coriolis at V-points (energy conserving formulation) 546 561 zCory(ji,jj) = - 0.25_wp * r1_e2v(ji,jj) * & … … 549 564 550 565 ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 551 zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCory(ji,jj) + zspgV(ji,jj) + z TauO * ( v_oce(ji,jj) - v_ice(ji,jj))566 zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCory(ji,jj) + zspgV(ji,jj) + ztauy_oi(ji,jj) 552 567 553 568 ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) … … 632 647 stress12_i(:,:) = zs12(:,:) 633 648 634 ! SIMIP diagnostics: sea surface sloop stress, coriolis and internal stress terms (N/m2) 635 ! stress tensor invariants (normal and shear stress N/m) 649 !------------------------------------------------------------------------------! 650 ! 5) SIMIP diagnostics 651 !------------------------------------------------------------------------------! 652 636 653 DO jj = k_j1+1, k_jpj-1 637 654 DO ji = 2, jpim1 638 655 zswi = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) ! 1 if ice, 0 if no ice 639 656 657 ! Stress tensor invariants (normal and shear stress N/m) 640 658 diag_sig1(ji,jj) = ( zs1(ji,jj) + zs2(ji,jj) ) * zswi ! normal stress 641 659 diag_sig2(ji,jj) = SQRT( ( zs1(ji,jj) - zs2(ji,jj) )**2 + 4*zs12(ji,jj)**2 ) * zswi ! shear stress 642 660 661 ! Stress terms of the momentum equation (N/m2) 643 662 diag_dssh_dx(ji,jj) = zspgU(ji,jj) * zswi ! sea surface slope stress term 644 663 diag_dssh_dy(ji,jj) = zspgV(ji,jj) * zswi … … 649 668 diag_intstrx(ji,jj) = zfU(ji,jj) * zswi ! internal stress term 650 669 diag_intstry(ji,jj) = zfV(ji,jj) * zswi 670 671 diag_utau_oi(ji,jj) = ztaux_oi(ji,jj) * zswi ! oceanic stress 672 diag_vtau_oi(ji,jj) = ztauy_oi(ji,jj) * zswi 651 673 652 674 END DO … … 656 678 & diag_dssh_dx, 'U', -1., diag_dssh_dy, 'V', -1., & 657 679 & diag_corstrx, 'U', -1., diag_corstry, 'V', -1., & 658 & diag_intstrx, 'U', -1., diag_intstry, 'V', -1. ) 659 660 ! CALL lbc_lnk( diag_dssh_dx, 'U', -1. ) 661 ! CALL lbc_lnk( diag_dssh_dy, 'V', -1. ) 662 663 ! CALL lbc_lnk( diag_intstrx, 'U', -1. ) 664 ! CALL lbc_lnk( diag_intstry, 'V', -1. ) 665 666 ! CALL lbc_lnk( diag_corstrx, 'U', -1. ) 667 ! CALL lbc_lnk( diag_corstry, 'V', -1. ) 668 669 ! 670 !------------------------------------------------------------------------------! 671 ! 5) Control prints of residual and charge ellipse 680 & diag_intstrx, 'U', -1., diag_intstry, 'V', -1. & 681 & diag_utau_oi, 'U', -1., diag_vtau_oi, 'V', -1. ) 682 683 ! 684 !------------------------------------------------------------------------------! 685 ! 6) Control prints of residual and charge ellipse 672 686 !------------------------------------------------------------------------------! 673 687 ! … … 710 724 CALL wrk_dealloc( jpi,jpj, zds, zs1, zs2, zs12, zu_ice, zv_ice, zresr, zpice ) 711 725 CALL wrk_dealloc( jpi,jpj, zswitchU, zswitchV, zmaskU, zmaskV, zfmask, zwf ) 712 CALL wrk_dealloc( jpi,jpj, zCorx, zCory) 726 CALL wrk_dealloc( jpi,jpj, zCorx, zCory ) 727 CALL wrk_dealloc( jpi,jpj, ztaux_oi, ztauy_oi ) 713 728 714 729 END SUBROUTINE lim_rhg -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90
r8150 r8152 277 277 ! !== every ocean time-step ==! 278 278 ! 279 ! SIMIP diags280 !diag_utau_oi(:,:) = 0._wp281 !diag_vtau_oi(:,:) = 0._wp282 279 DO jj = 2, jpjm1 !* update the stress WITHOUT a ice-ocean rotation angle 283 280 DO ji = fs_2, fs_jpim1 ! Vect. Opt. … … 290 287 utau(ji,jj) = ( 1._wp - zat_u ) * utau_oce(ji,jj) + zat_u * zutau_ice 291 288 vtau(ji,jj) = ( 1._wp - zat_v ) * vtau_oce(ji,jj) + zat_v * zvtau_ice 292 293 diag_utau_oi(ji,jj) = - zutau_ice ! diagnostic oceanic stress on sea ice294 diag_vtau_oi(ji,jj) = - zvtau_ice295 289 END DO 296 290 END DO 297 291 CALL lbc_lnk( utau, 'U', -1. ) ; CALL lbc_lnk( vtau, 'V', -1. ) ! lateral boundary condition 298 CALL lbc_lnk( diag_utau_oi, 'U', -1. ) ; CALL lbc_lnk( diag_vtau_oi, 'V', -1. ) ! lateral boundary condition299 292 ! 300 293 IF(ln_ctl) CALL prt_ctl( tab2d_1=utau, clinfo1=' lim_sbc: utau : ', mask1=umask, & -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r8150 r8152 103 103 zsm(:,:) = e12t(:,:) 104 104 105 ! SIMIP diags106 diag_dmtx_dyn(:,:) = 0._wp ; diag_dmty_dyn(:,:) = 0._wp107 108 105 ! !-------------------------------------! 109 106 IF( ln_limdyn ) THEN ! Advection of sea ice properties ! … … 119 116 zeiold(:,:) = SUM( SUM( e_i(:,:,1:nlay_i,:), dim=4 ), dim=3 ) 120 117 zesold(:,:) = SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 ) 118 119 ! SIMIP diags init 120 diag_dmtx_dyn(:,:) = 0._wp ; diag_dmty_dyn(:,:) = 0._wp 121 121 122 122 !--- Thickness correction init. ------------------------------- … … 192 192 & sxxopw(:,:) , syopw(:,:), syyopw(:,:), sxyopw(:,:) ) 193 193 DO jl = 1, jpl 194 194 195 ! SIMIP mass transport diags 195 196 diag_dmtx_dyn(:,:) = diag_dmtx_dyn(:,:) - ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 197 196 198 CALL lim_adv_x( zusnit, u_ice, 1._wp, zsm, z0ice (:,:,jl), sxice(:,:,jl), & !--- ice volume --- 197 199 & sxxice(:,:,jl), syice(:,:,jl), syyice(:,:,jl), sxyice(:,:,jl) ) 198 200 CALL lim_adv_x( zusnit, u_ice, 1._wp, zsm, z0snw (:,:,jl), sxsn (:,:,jl), & !--- snow volume --- 199 201 & sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl) ) 202 200 203 diag_dmtx_dyn(:,:) = diag_dmtx_dyn(:,:) + ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 201 204 202 205 diag_dmty_dyn(:,:) = diag_dmty_dyn(:,:) - ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 206 203 207 CALL lim_adv_y( zusnit, v_ice, 0._wp, zsm, z0ice (:,:,jl), sxice(:,:,jl), & !--- ice volume 204 208 & sxxice(:,:,jl), syice(:,:,jl), syyice(:,:,jl), sxyice(:,:,jl) ) 205 209 CALL lim_adv_y( zusnit, v_ice, 0._wp, zsm, z0snw (:,:,jl), sxsn (:,:,jl), & !--- snow volume 206 210 & sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl) ) 211 207 212 diag_dmty_dyn(:,:) = diag_dmty_dyn(:,:) + ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 208 ! END SIMIP mass transport diags 213 209 214 CALL lim_adv_x( zusnit, u_ice, 1._wp, zsm, z0smi (:,:,jl), sxsal(:,:,jl), & !--- ice salinity --- 210 215 & sxxsal(:,:,jl), sysal(:,:,jl), syysal(:,:,jl), sxysal(:,:,jl) ) … … 240 245 & sxxopw(:,:) , syopw(:,:), syyopw(:,:), sxyopw(:,:) ) 241 246 DO jl = 1, jpl 247 242 248 ! SIMIP mass transport diags 243 249 diag_dmty_dyn(:,:) = diag_dmty_dyn(:,:) - ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) … … 249 255 250 256 diag_dmtx_dyn(:,:) = diag_dmtx_dyn(:,:) - ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 251 CALL lim_adv_x( zusnit, u_ice, 0._wp, zsm, z0ice (:,:,jl), sxice(:,:,jl), & 257 CALL lim_adv_x( zusnit, u_ice, 0._wp, zsm, z0ice (:,:,jl), sxice(:,:,jl), & !--- ice volume --- 252 258 & sxxice(:,:,jl), syice(:,:,jl), syyice(:,:,jl), sxyice(:,:,jl) ) 253 CALL lim_adv_x( zusnit, u_ice, 0._wp, zsm, z0snw (:,:,jl), sxsn (:,:,jl), & 259 CALL lim_adv_x( zusnit, u_ice, 0._wp, zsm, z0snw (:,:,jl), sxsn (:,:,jl), & !--- snow volume --- 254 260 & sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl) ) 255 261 diag_dmtx_dyn(:,:) = diag_dmtx_dyn(:,:) + ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 256 ! END SIMIP mass transport diags257 262 258 263 CALL lim_adv_y( zusnit, v_ice, 1._wp, zsm, z0smi (:,:,jl), sxsal(:,:,jl), & !--- ice salinity --- … … 386 391 diag_trp_vs (ji,jj) = SUM( v_s(ji,jj,:) - zvsold(ji,jj,:) ) * r1_rdtice 387 392 diag_trp_smv(ji,jj) = SUM( smv_i(ji,jj,:) - zsmvold(ji,jj,:) ) * r1_rdtice 388 389 ! SIMIP diagnostics390 diag_dms_dyn(ji,jj) = diag_dms_dyn(ji,jj) + rhosn * diag_trp_vs(ji,jj)391 diag_dmi_dyn(ji,jj) = diag_dmi_dyn(ji,jj) + rhoic * diag_trp_vi(ji,jj)392 393 END DO 393 394 END DO -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
r8150 r8152 116 116 tm_i(:,:) = 0._wp 117 117 tm_su(:,:) = 0._wp 118 tm_si(:,:) = 0._wp ! MV SIMIP 2016118 tm_si(:,:) = 0._wp 119 119 om_i (:,:) = 0._wp 120 120 DO jl = 1, jpl -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r8151 r8152 159 159 CALL iom_put( "micesalt" , smt_i * zswi ) ! mean ice salinity 160 160 161 CALL iom_put( "icestr" , strength * zswi ) ! ice strength162 CALL iom_put( "idive" , divu_i ) ! divergence163 CALL iom_put( "ishear" , shear_i ) ! shear161 CALL iom_put( "icestr" , strength * zswi ) ! ice strength 162 CALL iom_put( "idive" , divu_i ) ! divergence 163 CALL iom_put( "ishear" , shear_i ) ! shear 164 164 CALL iom_put( "snowvol" , vt_s * zswi ) ! snow volume 165 165 … … 248 248 zrho1 = ( rau0 - rhoic ) / rau0; zrho2 = rhosn / rau0 249 249 250 IF ( iom_use( "icethic" ) ) CALL iom_put( "icethic" , htm_i * zswi ) ! ice thickness 251 IF ( iom_use( "icepres" ) ) CALL iom_put( "icepres" , zswi ) ! ice presence (1 or 0) 252 IF ( iom_use( "snowthic" ) ) CALL iom_put( "snowthic" , htm_s * zswi ) ! snow thickness 253 IF ( iom_use( "icemass" ) ) CALL iom_put( "icemass" , rhoic * vt_i(:,:) * zswi ) ! ice mass per cell area 254 IF ( iom_use( "snomass" ) ) CALL iom_put( "snomass" , rhosn * vt_s(:,:) * zswi ) ! snow mass per cell area 255 IF ( iom_use( "icesnt" ) ) CALL iom_put( "icesnt" , ( tm_si - rt0 ) * zswi ) ! snow-ice interface temperature 256 IF ( iom_use( "icebot" ) ) CALL iom_put( "icebot" , ( t_bo - rt0 ) * zswi ) ! ice bottom temperature 257 IF ( iom_use( "icesmass" ) ) CALL iom_put( "icesmass" , SUM( smv_i, DIM = 3 ) * rhoic / 1000. * zswi ) ! mass of salt in sea ice per cell area 258 IF ( iom_use( "icefb" ) ) CALL iom_put( "icefb" , ( zrho1 * htm_i(:,:) - zrho2 * htm_s(:,:) ) * zswi ) ! ice freeboard 259 260 IF ( iom_use( "wfxsum" ) ) CALL iom_put( "wfxsum" , wfx_sum ) ! Freshwater flux from sea-ice surface 250 IF ( iom_use( "icethic" ) ) CALL iom_put( "icethic" , htm_i * zswi ) ! Ice thickness 251 IF ( iom_use( "icepres" ) ) CALL iom_put( "icepres" , zswi ) ! Ice presence (1 or 0) 252 IF ( iom_use( "snowthic" ) ) CALL iom_put( "snowthic" , htm_s * zswi ) ! Snow thickness 253 IF ( iom_use( "icemass" ) ) CALL iom_put( "icemass" , rhoic * vt_i(:,:) * zswi ) ! Ice mass per cell area 254 IF ( iom_use( "snomass" ) ) CALL iom_put( "snomass" , rhosn * vt_s(:,:) * zswi ) ! Snow mass per cell area 255 IF ( iom_use( "icesnt" ) ) CALL iom_put( "icesnt" , ( tm_si - rt0 ) * zswi ) ! Snow-ice interface temperature 256 IF ( iom_use( "icebot" ) ) CALL iom_put( "icebot" , ( t_bo - rt0 ) * zswi ) ! Ice bottom temperature 257 IF ( iom_use( "icesmass" ) ) CALL iom_put( "icesmass" , SUM( smv_i, DIM = 3 ) * rhoic / 1000. * zswi ) ! Mass of salt in sea ice per cell area 258 IF ( iom_use( "icefb" ) ) CALL iom_put( "icefb" , ( zrho1 * htm_i(:,:) - zrho2 * htm_s(:,:) ) * zswi ) ! Ice freeboard 259 261 260 IF ( iom_use( "dmithd" ) ) CALL iom_put( "dmithd" , - wfx_bog - wfx_bom - wfx_sum & ! Sea-ice mass change from thermodynamics 262 261 & - wfx_sni - wfx_opw - wfx_res ) … … 268 267 IF ( iom_use( "dmibom" ) ) CALL iom_put( "dmibom" , - wfx_bom ) ! Sea-ice mass change through bottom melting 269 268 IF ( iom_use( "dmtsub" ) ) CALL iom_put( "dmtsub" , - wfx_sub ) ! Sea-ice mass change through evaporation and sublimation 270 IF ( iom_use( "dmsspr" ) ) CALL iom_put( "dmsspr" , - wfx_spr ) ! snow mass change through snow fall 271 IF ( iom_use( "dmsssi" ) ) CALL iom_put( "dmsssi" , wfx_sni*rhosn/rhoic ) ! snow mass change through snow-to-ice conversion 272 273 IF ( iom_use( "dmsmel" ) ) CALL iom_put( "dmsmel" , - wfx_snw_sum ) ! snow mass change through melt 274 IF ( iom_use( "dmsdyn" ) ) CALL iom_put( "dmsdyn" , diag_dms_dyn ) ! snow mass change through dynamics 275 276 IF ( iom_use( "hfxconbo" ) ) CALL iom_put( "hfxconbo" , diag_fc_bo ) ! bottom conduction flux 277 IF ( iom_use( "hfxconsu" ) ) CALL iom_put( "hfxconsu" , diag_fc_su ) ! surface conduction flux 278 279 IF ( iom_use( "wfxtot" ) ) CALL iom_put( "wfxtot" , -wfx_ice ) ! total freshwater flux from sea ice 269 IF ( iom_use( "dmsspr" ) ) CALL iom_put( "dmsspr" , - wfx_spr ) ! Snow mass change through snow fall 270 IF ( iom_use( "dmsssi" ) ) CALL iom_put( "dmsssi" , wfx_sni*rhosn/rhoic ) ! Snow mass change through snow-to-ice conversion 271 272 IF ( iom_use( "dmsmel" ) ) CALL iom_put( "dmsmel" , - wfx_snw_sum ) ! Snow mass change through melt 273 IF ( iom_use( "dmsdyn" ) ) CALL iom_put( "dmsdyn" , diag_dms_dyn ) ! Snow mass change through dynamics 274 275 IF ( iom_use( "hfxconbo" ) ) CALL iom_put( "hfxconbo" , diag_fc_bo ) ! Bottom conduction flux 276 IF ( iom_use( "hfxconsu" ) ) CALL iom_put( "hfxconsu" , diag_fc_su ) ! Surface conduction flux 277 278 IF ( iom_use( "wfxtot" ) ) CALL iom_put( "wfxtot" , wfx_ice ) ! Total freshwater flux from sea ice 279 IF ( iom_use( "wfxsum" ) ) CALL iom_put( "wfxsum" , wfx_sum ) ! Freshwater flux from sea-ice surface 280 280 281 281 IF ( iom_use( "dmtxdyn" ) ) CALL iom_put( "dmtxdyn" , diag_dmtx_dyn ) ! X-component of sea-ice mass transport -
branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90
r8151 r8152 105 105 106 106 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_su_1d !: <==> the 2D t_su 107 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_si_1d !: <==> the 2D t_si MV SIMIP 2016107 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_si_1d !: <==> the 2D t_si 108 108 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_i_1d !: <==> the 2D a_i 109 109 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ht_i_1d !: <==> the 2D ht_s … … 128 128 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: h_i_old !: ice thickness layer (m) 129 129 130 INTEGER , PUBLIC :: jiindex_1d ! 1D index of debugging point 131 132 ! Extra SIMIP data request diagnostics 130 ! Conduction flux diagnostics (SIMIP) 133 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: diag_fc_bo_1d !: <==> the 2D diag_fc_bo 134 132 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: diag_fc_su_1d !: <==> the 2D diag_fc_su 133 134 INTEGER , PUBLIC :: jiindex_1d ! 1D index of debugging point 135 135 136 136 !!---------------------------------------------------------------------- … … 178 178 & q_i_1d(jpij,nlay_i+1) , q_s_1d(jpij,nlay_s) , & 179 179 & qh_i_old(jpij,0:nlay_i+1), h_i_old(jpij,0:nlay_i+1) , STAT=ierr(3) ) 180 ! Extra SIMIP diagnostics 180 181 181 ALLOCATE( diag_fc_bo_1d(jpij) , diag_fc_su_1d(jpij) , STAT=ierr(4) ) 182 182
Note: See TracChangeset
for help on using the changeset viewer.