New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 8567 – NEMO

Changeset 8567


Ignore:
Timestamp:
2017-09-27T16:20:05+02:00 (7 years ago)
Author:
clem
Message:

bug fix

Location:
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icealb.F90

    r8565 r8567  
    3838   INTEGER  ::   nn_ice_alb       ! type of albedo scheme: 0: Shine & Henderson-Sellers (JGR 1985) 
    3939   !                                      !                         1: "home made" based on Brandt et al. (JClim 2005) 
    40    !                                      !                             and Grenfell & Perovich (JGR 2004) 
     40   !                                      !                                             and Grenfell & Perovich (JGR 2004) 
    4141   !                                      !                         2: Same as 1 but with melt ponds 
    4242   REAL(wp) ::   rn_alb_sdry      ! dry snow albedo 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icectl.F90

    r8565 r8567  
    7171      REAL(wp) ::   zvtrp, zetrp 
    7272      REAL(wp) ::   zarea, zv_sill, zs_sill, zt_sill 
    73       REAL(wp), PARAMETER ::   ppconv = 1.e-9 ! convert W to GW and kg to Mt 
     73      REAL(wp), PARAMETER ::   zconv = 1.e-9 ! convert W to GW and kg to Mt 
    7474      !!------------------------------------------------------------------- 
    7575      ! 
     
    7979            &                    wfx_opw(:,:) + wfx_res(:,:)     + wfx_dyn(:,:)     + wfx_lam(:,:)     + wfx_ice_sub(:,:) +  & 
    8080            &                    wfx_snw_sni(:,:) + wfx_snw_sum(:,:) + wfx_snw_dyn(:,:) + wfx_snw_sub(:,:) + wfx_spr(:,:)    & 
    81             &                  ) * e1e2t(:,:) ) * ppconv 
     81            &                  ) * e1e2t(:,:) ) * zconv 
    8282         ! 
    8383         !                          ! salt flux 
    8484         pdiag_fs = glob_sum(  ( sfx_bri(:,:) + sfx_bog(:,:) + sfx_bom(:,:) + sfx_sum(:,:) + sfx_sni(:,:) +  & 
    8585            &                    sfx_opw(:,:) + sfx_res(:,:) + sfx_dyn(:,:) + sfx_sub(:,:) + sfx_lam(:,:)    & 
    86             &                  ) *  e1e2t(:,:) ) * ppconv  
     86            &                  ) *  e1e2t(:,:) ) * zconv  
    8787         ! 
    8888         !                          ! heat flux 
    8989         pdiag_ft = glob_sum(  ( hfx_sum(:,:) + hfx_bom(:,:) + hfx_bog(:,:) + hfx_dif(:,:) + hfx_opw(:,:) + hfx_snw(:,:)  &  
    9090            &                  - hfx_thd(:,:) - hfx_dyn(:,:) - hfx_res(:,:) - hfx_sub(:,:) - hfx_spr(:,:)   & 
    91             &                  ) *  e1e2t(:,:) ) * ppconv 
    92  
    93          pdiag_v = glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) * e1e2t * ppconv ) 
    94  
    95          pdiag_s = glob_sum( SUM( sv_i * rhoic            , dim=3 ) * e1e2t * ppconv ) 
     91            &                  ) *  e1e2t(:,:) ) * zconv 
     92 
     93         pdiag_v = glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) * e1e2t * zconv ) 
     94 
     95         pdiag_s = glob_sum( SUM( sv_i * rhoic             , dim=3 ) * e1e2t * zconv ) 
    9696 
    9797         pdiag_t = glob_sum( (  SUM( SUM( e_i(:,:,1:nlay_i,:), dim=4 ), dim=3 )     & 
    98             &                 + SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 )   ) * e1e2t ) * ppconv 
     98            &                 + SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 )   ) * e1e2t ) * zconv 
    9999 
    100100      ELSEIF( icount == 1 ) THEN 
     
    104104            &                wfx_opw(:,:) + wfx_res(:,:)     + wfx_dyn(:,:)     + wfx_lam(:,:)     + wfx_ice_sub(:,:) +  & 
    105105            &                wfx_snw_sni(:,:) + wfx_snw_sum(:,:) + wfx_snw_dyn(:,:) + wfx_snw_sub(:,:) + wfx_spr(:,:)        & 
    106             &              ) * e1e2t(:,:) ) * ppconv - pdiag_fv 
     106            &              ) * e1e2t(:,:) ) * zconv - pdiag_fv 
    107107 
    108108         ! salt flux 
    109109         zfs  = glob_sum(  ( sfx_bri(:,:) + sfx_bog(:,:) + sfx_bom(:,:) + sfx_sum(:,:) + sfx_sni(:,:) +  & 
    110110            &                sfx_opw(:,:) + sfx_res(:,:) + sfx_dyn(:,:) + sfx_sub(:,:) + sfx_lam(:,:)    &  
    111             &              ) * e1e2t(:,:) ) * ppconv - pdiag_fs 
     111            &              ) * e1e2t(:,:) ) * zconv - pdiag_fs 
    112112 
    113113         ! heat flux 
    114114         zft  = glob_sum(  ( hfx_sum(:,:) + hfx_bom(:,:) + hfx_bog(:,:) + hfx_dif(:,:) + hfx_opw(:,:) + hfx_snw(:,:)  &  
    115115            &              - hfx_thd(:,:) - hfx_dyn(:,:) - hfx_res(:,:) - hfx_sub(:,:) - hfx_spr(:,:)   & 
    116             &              ) * e1e2t(:,:) ) * ppconv - pdiag_ft 
     116            &              ) * e1e2t(:,:) ) * zconv - pdiag_ft 
    117117  
    118118         ! outputs 
    119          zv = ( ( glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) * e1e2t  ) * ppconv  & 
     119         zv = ( ( glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) * e1e2t  ) * zconv  & 
    120120            &     - pdiag_v ) * r1_rdtice - zfv ) * rday 
    121121 
    122          zs = ( ( glob_sum( SUM( sv_i * rhoic            , dim=3 ) * e1e2t ) * ppconv  & 
     122         zs = ( ( glob_sum( SUM( sv_i * rhoic            , dim=3 ) * e1e2t ) * zconv  & 
    123123            &     - pdiag_s ) * r1_rdtice + zfs ) * rday 
    124124 
    125125         zt = ( glob_sum( (  SUM( SUM( e_i(:,:,1:nlay_i,:), dim=4 ), dim=3 )   & 
    126             &                + SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 ) ) * e1e2t ) * ppconv   & 
     126            &                + SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 ) ) * e1e2t ) * zconv   & 
    127127            &   - pdiag_t ) * r1_rdtice + zft 
    128128 
    129129         ! zvtrp and zetrp must be close to 0 if the advection scheme is conservative 
    130          zvtrp = glob_sum( ( diag_trp_vi * rhoic + diag_trp_vs * rhosn ) * e1e2t  ) * ppconv * rday  
    131          zetrp = glob_sum( ( diag_trp_ei         + diag_trp_es         ) * e1e2t  ) * ppconv 
     130         zvtrp = glob_sum( ( diag_trp_vi * rhoic + diag_trp_vs * rhosn ) * e1e2t  ) * zconv * rday  
     131         zetrp = glob_sum( ( diag_trp_ei         + diag_trp_es         ) * e1e2t  ) * zconv 
    132132 
    133133         zvmin = glob_min( v_i ) 
     
    136136 
    137137         ! set threshold values and calculate the ice area (+epsi10 to set a threshold > 0 when there is no ice)  
    138          zarea   = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t ) * ppconv ! in 1.e9 m2 
     138         zarea   = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t ) * zconv ! in 1.e9 m2 
    139139         zv_sill = zarea * 2.5e-5 
    140140         zs_sill = zarea * 25.e-5 
     
    176176      REAL(wp)                        :: zhfx, zsfx, zvfx 
    177177      REAL(wp)                        :: zarea, zv_sill, zs_sill, zt_sill 
    178       REAL(wp), PARAMETER             :: ppconv = 1.e-9 ! convert W to GW and kg to Mt 
     178      REAL(wp), PARAMETER             :: zconv = 1.e-9 ! convert W to GW and kg to Mt 
    179179      !!------------------------------------------------------------------- 
    180180 
    181181      ! water flux 
    182       zvfx  = glob_sum( ( wfx_ice + wfx_snw + wfx_spr + wfx_sub + diag_vice + diag_vsnw ) * e1e2t ) * ppconv * rday 
     182      zvfx  = glob_sum( ( wfx_ice + wfx_snw + wfx_spr + wfx_sub + diag_vice + diag_vsnw ) * e1e2t ) * zconv * rday 
    183183 
    184184      ! salt flux 
    185       zsfx  = glob_sum( ( sfx + diag_sice ) * e1e2t ) * ppconv * rday 
     185      zsfx  = glob_sum( ( sfx + diag_sice ) * e1e2t ) * zconv * rday 
    186186 
    187187      ! heat flux 
    188188      zhfx  = glob_sum( ( hfx_in - hfx_out - diag_heat - diag_trp_ei - diag_trp_es   & 
    189189      !  &              - SUM( qevap_ice * a_i_b, dim=3 )                           & !!clem: I think this line must be commented (but need check) 
    190          &              ) * e1e2t ) * ppconv 
     190         &              ) * e1e2t ) * zconv 
    191191 
    192192      ! set threshold values and calculate the ice area (+epsi10 to set a threshold > 0 when there is no ice)  
    193       zarea   = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t ) * ppconv ! in 1.e9 m2 
     193      zarea   = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t ) * zconv ! in 1.e9 m2 
    194194      zv_sill = zarea * 2.5e-5 
    195195      zs_sill = zarea * 25.e-5 
Note: See TracChangeset for help on using the changeset viewer.