Changeset 8152


Ignore:
Timestamp:
2017-06-08T12:43:44+02:00 (3 years ago)
Author:
vancop
Message:

SIMIP diagnostics, phase 2, commit#3

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  
    534534         &      diag_smvi  (jpi,jpj), diag_vice   (jpi,jpj), diag_vsnw  (jpi,jpj), STAT=ierr(ii) ) 
    535535 
    536       ! * SIMIP data request diagnostics 
     536      ! * SIMIP diagnostics 
    537537      ii = ii + 1 
    538538      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  
    670670               &                 + rhosn * vsrft(ij) * ( 1._wp - rn_fsnowrft ) ) * r1_rdtice  ! fresh water source for ocean 
    671671 
    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 
    678674 
    679675            hfx_dyn(ji,jj) = hfx_dyn(ji,jj) + ( - esrdg(ij) * ( 1._wp - rn_fsnowrdg )         &  
     
    774770      END DO ! jl1 (deforming categories) 
    775771 
     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       
    776776      ! 
    777777      CALL wrk_dealloc( jpij,        indxi, indxj ) 
  • branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90

    r8151 r8152  
    149149                                                                             !   ocean surface (ssh_m) if ice is not embedded 
    150150                                                                             !   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 
    152154      REAL(wp), POINTER, DIMENSION(:,:) ::   zswitchU, zswitchV              ! dummy arrays 
    153155      REAL(wp), POINTER, DIMENSION(:,:) ::   zmaskU, zmaskV                  ! mask for ice presence 
     
    165167      CALL wrk_alloc( jpi,jpj, zswitchU, zswitchV, zmaskU, zmaskV, zfmask, zwf ) 
    166168      CALL wrk_alloc( jpi,jpj, zCorx, zCory) 
     169      CALL wrk_alloc( jpi,jpj, ztaux_oi, ztauy_oi) 
    167170 
    168171#if  defined key_lim2 && ! defined key_lim2_vp 
     
    448451                     &                             + ( u_iceV(ji,jj) - u_oceV(ji,jj) ) * ( u_iceV(ji,jj) - u_oceV(ji,jj) ) ) 
    449452 
     453                  ! Ocean-to-Ice stress 
     454                  ztauy_oi(ji,jj) = zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 
     455 
    450456                  ! Coriolis at V-points (energy conserving formulation) 
    451457                  zCory(ji,jj)  = - 0.25_wp * r1_e2v(ji,jj) *  & 
     
    454460 
    455461                  ! 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) + zTauO * ( 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) 
    457463                   
    458464                  ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) 
     
    479485                     &                             + ( v_iceU(ji,jj) - v_oceU(ji,jj) ) * ( v_iceU(ji,jj) - v_oceU(ji,jj) ) ) 
    480486 
     487                  ! Ocean-to-Ice stress 
     488                  ztaux_oi(ji,jj) = zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 
     489 
    481490                  ! Coriolis at U-points (energy conserving formulation) 
    482491                  zCorx(ji,jj)  =   0.25_wp * r1_e1u(ji,jj) *  & 
    483492                     &    ( zmf(ji  ,jj) * ( e1v(ji  ,jj) * v_ice(ji  ,jj) + e1v(ji  ,jj-1) * v_ice(ji  ,jj-1) )  & 
    484493                     &    + 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 
    486495                  ! 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) + zTauO * ( 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) 
    488497 
    489498                  ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) 
     
    512521                     &                             + ( v_iceU(ji,jj) - v_oceU(ji,jj) ) * ( v_iceU(ji,jj) - v_oceU(ji,jj) ) ) 
    513522 
     523                  ! Ocean-to-Ice stress 
     524                  ztaux_oi(ji,jj) = zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 
     525                   
    514526                  ! Coriolis at U-points (energy conserving formulation) 
    515527                  zCorx(ji,jj)  =   0.25_wp * r1_e1u(ji,jj) *  & 
    516528                     &    ( zmf(ji  ,jj) * ( e1v(ji  ,jj) * v_ice(ji  ,jj) + e1v(ji  ,jj-1) * v_ice(ji  ,jj-1) )  & 
    517529                     &    + 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 
    519531                  ! 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) + zTauO * ( 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) 
    521533 
    522534                  ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) 
     
    543555                     &                             + ( u_iceV(ji,jj) - u_oceV(ji,jj) ) * ( u_iceV(ji,jj) - u_oceV(ji,jj) ) ) 
    544556 
     557                  ! Ocean-to-Ice stress 
     558                  ztauy_oi(ji,jj) = zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 
     559 
    545560                  ! Coriolis at V-points (energy conserving formulation) 
    546561                  zCory(ji,jj)  = - 0.25_wp * r1_e2v(ji,jj) *  & 
     
    549564 
    550565                  ! 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) + zTauO * ( 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) 
    552567                   
    553568                  ! ice velocity using implicit formulation (cf Madec doc & Bouillon 2009) 
     
    632647      stress12_i(:,:) = zs12(:,:) 
    633648 
    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                            
    636653      DO jj = k_j1+1, k_jpj-1 
    637654         DO ji = 2, jpim1 
    638655             zswi  = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) ! 1 if ice, 0 if no ice 
    639656 
     657             ! Stress tensor invariants (normal and shear stress N/m) 
    640658             diag_sig1(ji,jj) = ( zs1(ji,jj) + zs2(ji,jj) ) * zswi                                 ! normal stress 
    641659             diag_sig2(ji,jj) = SQRT( ( zs1(ji,jj) - zs2(ji,jj) )**2 + 4*zs12(ji,jj)**2 ) * zswi   ! shear stress 
    642660 
     661             ! Stress terms of the momentum equation (N/m2) 
    643662             diag_dssh_dx(ji,jj) = zspgU(ji,jj) * zswi    ! sea surface slope stress term 
    644663             diag_dssh_dy(ji,jj) = zspgV(ji,jj) * zswi 
     
    649668             diag_intstrx(ji,jj) = zfU(ji,jj)   * zswi    ! internal stress term 
    650669             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 
    651673 
    652674         END DO 
     
    656678                 &        diag_dssh_dx, 'U', -1., diag_dssh_dy, 'V', -1., & 
    657679                 &        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 
    672686      !------------------------------------------------------------------------------! 
    673687      ! 
     
    710724      CALL wrk_dealloc( jpi,jpj, zds, zs1, zs2, zs12, zu_ice, zv_ice, zresr, zpice ) 
    711725      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 ) 
    713728 
    714729   END SUBROUTINE lim_rhg 
  • branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r8150 r8152  
    277277      !                                      !==  every ocean time-step  ==! 
    278278      ! 
    279       ! SIMIP diags 
    280       !diag_utau_oi(:,:) = 0._wp 
    281       !diag_vtau_oi(:,:) = 0._wp 
    282279      DO jj = 2, jpjm1                                !* update the stress WITHOUT a ice-ocean rotation angle 
    283280         DO ji = fs_2, fs_jpim1   ! Vect. Opt. 
     
    290287            utau(ji,jj) = ( 1._wp - zat_u ) * utau_oce(ji,jj) + zat_u * zutau_ice 
    291288            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 ice 
    294             diag_vtau_oi(ji,jj) = - zvtau_ice 
    295289         END DO 
    296290      END DO 
    297291      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 condition 
    299292      ! 
    300293      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  
    103103      zsm(:,:) = e12t(:,:) 
    104104 
    105       ! SIMIP diags 
    106       diag_dmtx_dyn(:,:) = 0._wp ; diag_dmty_dyn(:,:) = 0._wp 
    107        
    108105      !                             !-------------------------------------! 
    109106      IF( ln_limdyn ) THEN          !   Advection of sea ice properties   ! 
     
    119116         zeiold(:,:)    = SUM( SUM( e_i(:,:,1:nlay_i,:), dim=4 ), dim=3 )  
    120117         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 
    121121 
    122122         !--- Thickness correction init. ------------------------------- 
     
    192192                  &                                       sxxopw(:,:)  , syopw(:,:), syyopw(:,:), sxyopw(:,:)  ) 
    193193               DO jl = 1, jpl 
     194 
    194195                  ! SIMIP mass transport diags 
    195196                  diag_dmtx_dyn(:,:) = diag_dmtx_dyn(:,:) - ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 
     197 
    196198                  CALL lim_adv_x( zusnit, u_ice, 1._wp, zsm, z0ice (:,:,jl), sxice(:,:,jl),   &    !--- ice volume  --- 
    197199                     &                                       sxxice(:,:,jl), syice(:,:,jl), syyice(:,:,jl), sxyice(:,:,jl)  ) 
    198200                  CALL lim_adv_x( zusnit, u_ice, 1._wp, zsm, z0snw (:,:,jl), sxsn (:,:,jl),   &    !--- snow volume  --- 
    199201                     &                                       sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl)  ) 
     202 
    200203                  diag_dmtx_dyn(:,:) = diag_dmtx_dyn(:,:) + ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 
    201204 
    202205                  diag_dmty_dyn(:,:) = diag_dmty_dyn(:,:) - ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 
     206 
    203207                  CALL lim_adv_y( zusnit, v_ice, 0._wp, zsm, z0ice (:,:,jl), sxice(:,:,jl),   &    !--- ice volume 
    204208                     &                                       sxxice(:,:,jl), syice(:,:,jl), syyice(:,:,jl), sxyice(:,:,jl)  ) 
    205209                  CALL lim_adv_y( zusnit, v_ice, 0._wp, zsm, z0snw (:,:,jl), sxsn (:,:,jl),   &    !--- snow volume 
    206210                     &                                       sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl)  ) 
     211 
    207212                  diag_dmty_dyn(:,:) = diag_dmty_dyn(:,:) + ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 
    208                   ! END SIMIP mass transport diags 
     213 
    209214                  CALL lim_adv_x( zusnit, u_ice, 1._wp, zsm, z0smi (:,:,jl), sxsal(:,:,jl),   &    !--- ice salinity --- 
    210215                     &                                       sxxsal(:,:,jl), sysal(:,:,jl), syysal(:,:,jl), sxysal(:,:,jl)  ) 
     
    240245                  &                                       sxxopw(:,:)  , syopw(:,:), syyopw(:,:), sxyopw(:,:)  ) 
    241246               DO jl = 1, jpl 
     247 
    242248                  ! SIMIP mass transport diags 
    243249                  diag_dmty_dyn(:,:) = diag_dmty_dyn(:,:) - ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 
     
    249255 
    250256                  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  --- 
    252258                     &                                       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  --- 
    254260                     &                                       sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl)  ) 
    255261                  diag_dmtx_dyn(:,:) = diag_dmtx_dyn(:,:) + ( rhoic * z0ice(:,:,jl) + rhosn * z0snw(:,:,jl) ) 
    256                   ! END SIMIP mass transport diags 
    257262 
    258263                  CALL lim_adv_y( zusnit, v_ice, 1._wp, zsm, z0smi (:,:,jl), sxsal(:,:,jl),   &    !--- ice salinity --- 
     
    386391               diag_trp_vs (ji,jj) = SUM(   v_s(ji,jj,:) -  zvsold(ji,jj,:) ) * r1_rdtice 
    387392               diag_trp_smv(ji,jj) = SUM( smv_i(ji,jj,:) - zsmvold(ji,jj,:) ) * r1_rdtice 
    388  
    389                ! SIMIP diagnostics 
    390                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) 
    392393            END DO 
    393394         END DO 
  • branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90

    r8150 r8152  
    116116         tm_i(:,:)  = 0._wp 
    117117         tm_su(:,:) = 0._wp 
    118          tm_si(:,:) = 0._wp ! MV SIMIP 2016 
     118         tm_si(:,:) = 0._wp 
    119119         om_i (:,:) = 0._wp 
    120120         DO jl = 1, jpl 
  • branches/2016/v3_6_CMIP6_ice_diagnostics/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90

    r8151 r8152  
    159159      CALL iom_put( "micesalt"    , smt_i   * zswi      )        ! mean ice salinity 
    160160 
    161       CALL iom_put( "icestr"      , strength * zswi )    ! ice strength 
    162       CALL iom_put( "idive"       , divu_i              )    ! divergence 
    163       CALL iom_put( "ishear"      , shear_i             )    ! shear 
     161      CALL iom_put( "icestr"      , strength * zswi )            ! ice strength 
     162      CALL iom_put( "idive"       , divu_i              )        ! divergence 
     163      CALL iom_put( "ishear"      , shear_i             )        ! shear 
    164164      CALL iom_put( "snowvol"     , vt_s   * zswi       )        ! snow volume 
    165165       
     
    248248      zrho1 = ( rau0 - rhoic ) / rau0; zrho2 = rhosn / rau0 
    249249 
    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 
    261260      IF  ( iom_use( "dmithd"   ) ) CALL iom_put( "dmithd"      , - wfx_bog - wfx_bom - wfx_sum   &     ! Sea-ice mass change from thermodynamics 
    262261              &                     - wfx_sni - wfx_opw - wfx_res ) 
     
    268267      IF  ( iom_use( "dmibom"   ) ) CALL iom_put( "dmibom"      , - wfx_bom                  )          ! Sea-ice mass change through bottom melting 
    269268      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 
    280280 
    281281      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  
    105105 
    106106   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 2016 
     107   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   t_si_1d       !: <==> the 2D  t_si 
    108108   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   a_i_1d        !: <==> the 2D  a_i 
    109109   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   ht_i_1d       !: <==> the 2D  ht_s 
     
    128128   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   h_i_old  !: ice thickness layer (m) 
    129129 
    130    INTEGER , PUBLIC ::   jiindex_1d   ! 1D index of debugging point 
    131  
    132    ! Extra SIMIP data request diagnostics 
     130   ! Conduction flux diagnostics (SIMIP) 
    133131   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   diag_fc_bo_1d      !: <==> the 2D  diag_fc_bo 
    134132   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 
    135135 
    136136   !!---------------------------------------------------------------------- 
     
    178178         &      q_i_1d(jpij,nlay_i+1) , q_s_1d(jpij,nlay_s) ,                        & 
    179179         &      qh_i_old(jpij,0:nlay_i+1), h_i_old(jpij,0:nlay_i+1) , STAT=ierr(3) ) 
    180       ! Extra SIMIP diagnostics 
     180 
    181181      ALLOCATE( diag_fc_bo_1d(jpij)      , diag_fc_su_1d(jpij)      , STAT=ierr(4) ) 
    182182 
Note: See TracChangeset for help on using the changeset viewer.