Changeset 8567
- Timestamp:
- 2017-09-27T16:20:05+02:00 (7 years ago)
- 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 38 38 INTEGER :: nn_ice_alb ! type of albedo scheme: 0: Shine & Henderson-Sellers (JGR 1985) 39 39 ! ! 1: "home made" based on Brandt et al. (JClim 2005) 40 ! ! and Grenfell & Perovich (JGR 2004)40 ! ! and Grenfell & Perovich (JGR 2004) 41 41 ! ! 2: Same as 1 but with melt ponds 42 42 REAL(wp) :: rn_alb_sdry ! dry snow albedo -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icectl.F90
r8565 r8567 71 71 REAL(wp) :: zvtrp, zetrp 72 72 REAL(wp) :: zarea, zv_sill, zs_sill, zt_sill 73 REAL(wp), PARAMETER :: ppconv = 1.e-9 ! convert W to GW and kg to Mt73 REAL(wp), PARAMETER :: zconv = 1.e-9 ! convert W to GW and kg to Mt 74 74 !!------------------------------------------------------------------- 75 75 ! … … 79 79 & wfx_opw(:,:) + wfx_res(:,:) + wfx_dyn(:,:) + wfx_lam(:,:) + wfx_ice_sub(:,:) + & 80 80 & wfx_snw_sni(:,:) + wfx_snw_sum(:,:) + wfx_snw_dyn(:,:) + wfx_snw_sub(:,:) + wfx_spr(:,:) & 81 & ) * e1e2t(:,:) ) * ppconv81 & ) * e1e2t(:,:) ) * zconv 82 82 ! 83 83 ! ! salt flux 84 84 pdiag_fs = glob_sum( ( sfx_bri(:,:) + sfx_bog(:,:) + sfx_bom(:,:) + sfx_sum(:,:) + sfx_sni(:,:) + & 85 85 & sfx_opw(:,:) + sfx_res(:,:) + sfx_dyn(:,:) + sfx_sub(:,:) + sfx_lam(:,:) & 86 & ) * e1e2t(:,:) ) * ppconv86 & ) * e1e2t(:,:) ) * zconv 87 87 ! 88 88 ! ! heat flux 89 89 pdiag_ft = glob_sum( ( hfx_sum(:,:) + hfx_bom(:,:) + hfx_bog(:,:) + hfx_dif(:,:) + hfx_opw(:,:) + hfx_snw(:,:) & 90 90 & - hfx_thd(:,:) - hfx_dyn(:,:) - hfx_res(:,:) - hfx_sub(:,:) - hfx_spr(:,:) & 91 & ) * e1e2t(:,:) ) * ppconv92 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 ) 96 96 97 97 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 ) * ppconv98 & + SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 ) ) * e1e2t ) * zconv 99 99 100 100 ELSEIF( icount == 1 ) THEN … … 104 104 & wfx_opw(:,:) + wfx_res(:,:) + wfx_dyn(:,:) + wfx_lam(:,:) + wfx_ice_sub(:,:) + & 105 105 & wfx_snw_sni(:,:) + wfx_snw_sum(:,:) + wfx_snw_dyn(:,:) + wfx_snw_sub(:,:) + wfx_spr(:,:) & 106 & ) * e1e2t(:,:) ) * ppconv - pdiag_fv106 & ) * e1e2t(:,:) ) * zconv - pdiag_fv 107 107 108 108 ! salt flux 109 109 zfs = glob_sum( ( sfx_bri(:,:) + sfx_bog(:,:) + sfx_bom(:,:) + sfx_sum(:,:) + sfx_sni(:,:) + & 110 110 & sfx_opw(:,:) + sfx_res(:,:) + sfx_dyn(:,:) + sfx_sub(:,:) + sfx_lam(:,:) & 111 & ) * e1e2t(:,:) ) * ppconv - pdiag_fs111 & ) * e1e2t(:,:) ) * zconv - pdiag_fs 112 112 113 113 ! heat flux 114 114 zft = glob_sum( ( hfx_sum(:,:) + hfx_bom(:,:) + hfx_bog(:,:) + hfx_dif(:,:) + hfx_opw(:,:) + hfx_snw(:,:) & 115 115 & - hfx_thd(:,:) - hfx_dyn(:,:) - hfx_res(:,:) - hfx_sub(:,:) - hfx_spr(:,:) & 116 & ) * e1e2t(:,:) ) * ppconv - pdiag_ft116 & ) * e1e2t(:,:) ) * zconv - pdiag_ft 117 117 118 118 ! 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 & 120 120 & - pdiag_v ) * r1_rdtice - zfv ) * rday 121 121 122 zs = ( ( glob_sum( SUM( sv_i * rhoic , dim=3 ) * e1e2t ) * ppconv &122 zs = ( ( glob_sum( SUM( sv_i * rhoic , dim=3 ) * e1e2t ) * zconv & 123 123 & - pdiag_s ) * r1_rdtice + zfs ) * rday 124 124 125 125 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 & 127 127 & - pdiag_t ) * r1_rdtice + zft 128 128 129 129 ! 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 * rday131 zetrp = glob_sum( ( diag_trp_ei + diag_trp_es ) * e1e2t ) * ppconv130 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 132 132 133 133 zvmin = glob_min( v_i ) … … 136 136 137 137 ! 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 m2138 zarea = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t ) * zconv ! in 1.e9 m2 139 139 zv_sill = zarea * 2.5e-5 140 140 zs_sill = zarea * 25.e-5 … … 176 176 REAL(wp) :: zhfx, zsfx, zvfx 177 177 REAL(wp) :: zarea, zv_sill, zs_sill, zt_sill 178 REAL(wp), PARAMETER :: ppconv = 1.e-9 ! convert W to GW and kg to Mt178 REAL(wp), PARAMETER :: zconv = 1.e-9 ! convert W to GW and kg to Mt 179 179 !!------------------------------------------------------------------- 180 180 181 181 ! water flux 182 zvfx = glob_sum( ( wfx_ice + wfx_snw + wfx_spr + wfx_sub + diag_vice + diag_vsnw ) * e1e2t ) * ppconv * rday182 zvfx = glob_sum( ( wfx_ice + wfx_snw + wfx_spr + wfx_sub + diag_vice + diag_vsnw ) * e1e2t ) * zconv * rday 183 183 184 184 ! salt flux 185 zsfx = glob_sum( ( sfx + diag_sice ) * e1e2t ) * ppconv * rday185 zsfx = glob_sum( ( sfx + diag_sice ) * e1e2t ) * zconv * rday 186 186 187 187 ! heat flux 188 188 zhfx = glob_sum( ( hfx_in - hfx_out - diag_heat - diag_trp_ei - diag_trp_es & 189 189 ! & - SUM( qevap_ice * a_i_b, dim=3 ) & !!clem: I think this line must be commented (but need check) 190 & ) * e1e2t ) * ppconv190 & ) * e1e2t ) * zconv 191 191 192 192 ! 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 m2193 zarea = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t ) * zconv ! in 1.e9 m2 194 194 zv_sill = zarea * 2.5e-5 195 195 zs_sill = zarea * 25.e-5
Note: See TracChangeset
for help on using the changeset viewer.