Changeset 5951 for branches/2014/dev_r4650_UKMO14.4_OBS_GENERAL_VINTERP/NEMOGCM/NEMO/LIM_SRC_3/limdiahsb.F90
- Timestamp:
- 2015-11-30T12:48:01+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO14.4_OBS_GENERAL_VINTERP/NEMOGCM/NEMO/LIM_SRC_3/limdiahsb.F90
r5950 r5951 71 71 72 72 ! 1/area 73 z1_area = 1._wp / MAX( glob_sum( e1 2t(:,:) * tmask(:,:,1) ), epsi06 )74 75 rswitch = MAX( 0._wp , SIGN( 1._wp , glob_sum( e1 2t(:,:) * tmask(:,:,1) ) - epsi06 ) )73 z1_area = 1._wp / MAX( glob_sum( e1e2t(:,:) * tmask(:,:,1) ), epsi06 ) 74 75 rswitch = MAX( 0._wp , SIGN( 1._wp , glob_sum( e1e2t(:,:) * tmask(:,:,1) ) - epsi06 ) ) 76 76 ! ----------------------- ! 77 77 ! 1 - Content variations ! 78 78 ! ----------------------- ! 79 zbg_ivo = glob_sum( vt_i(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! volume ice80 zbg_svo = glob_sum( vt_s(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! volume snow81 zbg_are = glob_sum( at_i(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! area82 zbg_sal = glob_sum( SUM( smv_i(:,:,:), dim=3 ) * e1 2t(:,:) * tmask(:,:,1) ) ! mean salt content83 zbg_tem = glob_sum( ( tm_i(:,:) - rt0 ) * vt_i(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! mean temp content84 85 !zbg_ihc = glob_sum( et_i(:,:) * e1 2t(:,:) * tmask(:,:,1) ) / MAX( zbg_ivo,epsi06 ) ! ice heat content86 !zbg_shc = glob_sum( et_s(:,:) * e1 2t(:,:) * tmask(:,:,1) ) / MAX( zbg_svo,epsi06 ) ! snow heat content79 zbg_ivo = glob_sum( vt_i(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! volume ice 80 zbg_svo = glob_sum( vt_s(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! volume snow 81 zbg_are = glob_sum( at_i(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! area 82 zbg_sal = glob_sum( SUM( smv_i(:,:,:), dim=3 ) * e1e2t(:,:) * tmask(:,:,1) ) ! mean salt content 83 zbg_tem = glob_sum( ( tm_i(:,:) - rt0 ) * vt_i(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! mean temp content 84 85 !zbg_ihc = glob_sum( et_i(:,:) * e1e2t(:,:) * tmask(:,:,1) ) / MAX( zbg_ivo,epsi06 ) ! ice heat content 86 !zbg_shc = glob_sum( et_s(:,:) * e1e2t(:,:) * tmask(:,:,1) ) / MAX( zbg_svo,epsi06 ) ! snow heat content 87 87 88 88 ! Volume 89 89 ztmp = rswitch * z1_area * r1_rau0 * rday 90 zbg_vfx = ztmp * glob_sum( emp(:,:) * e1 2t(:,:) * tmask(:,:,1) )91 zbg_vfx_bog = ztmp * glob_sum( wfx_bog(:,:) * e1 2t(:,:) * tmask(:,:,1) )92 zbg_vfx_opw = ztmp * glob_sum( wfx_opw(:,:) * e1 2t(:,:) * tmask(:,:,1) )93 zbg_vfx_sni = ztmp * glob_sum( wfx_sni(:,:) * e1 2t(:,:) * tmask(:,:,1) )94 zbg_vfx_dyn = ztmp * glob_sum( wfx_dyn(:,:) * e1 2t(:,:) * tmask(:,:,1) )95 zbg_vfx_bom = ztmp * glob_sum( wfx_bom(:,:) * e1 2t(:,:) * tmask(:,:,1) )96 zbg_vfx_sum = ztmp * glob_sum( wfx_sum(:,:) * e1 2t(:,:) * tmask(:,:,1) )97 zbg_vfx_res = ztmp * glob_sum( wfx_res(:,:) * e1 2t(:,:) * tmask(:,:,1) )98 zbg_vfx_spr = ztmp * glob_sum( wfx_spr(:,:) * e1 2t(:,:) * tmask(:,:,1) )99 zbg_vfx_snw = ztmp * glob_sum( wfx_snw(:,:) * e1 2t(:,:) * tmask(:,:,1) )100 zbg_vfx_sub = ztmp * glob_sum( wfx_sub(:,:) * e1 2t(:,:) * tmask(:,:,1) )90 zbg_vfx = ztmp * glob_sum( emp(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 91 zbg_vfx_bog = ztmp * glob_sum( wfx_bog(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 92 zbg_vfx_opw = ztmp * glob_sum( wfx_opw(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 93 zbg_vfx_sni = ztmp * glob_sum( wfx_sni(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 94 zbg_vfx_dyn = ztmp * glob_sum( wfx_dyn(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 95 zbg_vfx_bom = ztmp * glob_sum( wfx_bom(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 96 zbg_vfx_sum = ztmp * glob_sum( wfx_sum(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 97 zbg_vfx_res = ztmp * glob_sum( wfx_res(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 98 zbg_vfx_spr = ztmp * glob_sum( wfx_spr(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 99 zbg_vfx_snw = ztmp * glob_sum( wfx_snw(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 100 zbg_vfx_sub = ztmp * glob_sum( wfx_sub(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 101 101 102 102 ! Salt 103 zbg_sfx = ztmp * glob_sum( sfx(:,:) * e1 2t(:,:) * tmask(:,:,1) )104 zbg_sfx_bri = ztmp * glob_sum( sfx_bri(:,:) * e1 2t(:,:) * tmask(:,:,1) )105 zbg_sfx_res = ztmp * glob_sum( sfx_res(:,:) * e1 2t(:,:) * tmask(:,:,1) )106 zbg_sfx_dyn = ztmp * glob_sum( sfx_dyn(:,:) * e1 2t(:,:) * tmask(:,:,1) )107 108 zbg_sfx_bog = ztmp * glob_sum( sfx_bog(:,:) * e1 2t(:,:) * tmask(:,:,1) )109 zbg_sfx_opw = ztmp * glob_sum( sfx_opw(:,:) * e1 2t(:,:) * tmask(:,:,1) )110 zbg_sfx_sni = ztmp * glob_sum( sfx_sni(:,:) * e1 2t(:,:) * tmask(:,:,1) )111 zbg_sfx_bom = ztmp * glob_sum( sfx_bom(:,:) * e1 2t(:,:) * tmask(:,:,1) )112 zbg_sfx_sum = ztmp * glob_sum( sfx_sum(:,:) * e1 2t(:,:) * tmask(:,:,1) )103 zbg_sfx = ztmp * glob_sum( sfx(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 104 zbg_sfx_bri = ztmp * glob_sum( sfx_bri(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 105 zbg_sfx_res = ztmp * glob_sum( sfx_res(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 106 zbg_sfx_dyn = ztmp * glob_sum( sfx_dyn(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 107 108 zbg_sfx_bog = ztmp * glob_sum( sfx_bog(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 109 zbg_sfx_opw = ztmp * glob_sum( sfx_opw(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 110 zbg_sfx_sni = ztmp * glob_sum( sfx_sni(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 111 zbg_sfx_bom = ztmp * glob_sum( sfx_bom(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 112 zbg_sfx_sum = ztmp * glob_sum( sfx_sum(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 113 113 114 114 ! Heat budget 115 zbg_ihc = glob_sum( et_i(:,:) * e1 2t(:,:) * 1.e-20 )! ice heat content [1.e20 J]116 zbg_shc = glob_sum( et_s(:,:) * e1 2t(:,:) * 1.e-20 )! snow heat content [1.e20 J]117 zbg_hfx_dhc = glob_sum( diag_heat(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]118 zbg_hfx_spr = glob_sum( hfx_spr(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]119 120 zbg_hfx_thd = glob_sum( hfx_thd(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]121 zbg_hfx_dyn = glob_sum( hfx_dyn(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]122 zbg_hfx_res = glob_sum( hfx_res(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]123 zbg_hfx_sub = glob_sum( hfx_sub(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]124 zbg_hfx_snw = glob_sum( hfx_snw(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]125 zbg_hfx_sum = glob_sum( hfx_sum(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]126 zbg_hfx_bom = glob_sum( hfx_bom(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]127 zbg_hfx_bog = glob_sum( hfx_bog(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]128 zbg_hfx_dif = glob_sum( hfx_dif(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]129 zbg_hfx_opw = glob_sum( hfx_opw(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]130 zbg_hfx_out = glob_sum( hfx_out(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]131 zbg_hfx_in = glob_sum( hfx_in(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! [in W]115 zbg_ihc = glob_sum( et_i(:,:) * e1e2t(:,:) ) * 1.e-20 ! ice heat content [1.e20 J] 116 zbg_shc = glob_sum( et_s(:,:) * e1e2t(:,:) ) * 1.e-20 ! snow heat content [1.e20 J] 117 zbg_hfx_dhc = glob_sum( diag_heat(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 118 zbg_hfx_spr = glob_sum( hfx_spr(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 119 120 zbg_hfx_thd = glob_sum( hfx_thd(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 121 zbg_hfx_dyn = glob_sum( hfx_dyn(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 122 zbg_hfx_res = glob_sum( hfx_res(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 123 zbg_hfx_sub = glob_sum( hfx_sub(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 124 zbg_hfx_snw = glob_sum( hfx_snw(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 125 zbg_hfx_sum = glob_sum( hfx_sum(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 126 zbg_hfx_bom = glob_sum( hfx_bom(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 127 zbg_hfx_bog = glob_sum( hfx_bog(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 128 zbg_hfx_dif = glob_sum( hfx_dif(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 129 zbg_hfx_opw = glob_sum( hfx_opw(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 130 zbg_hfx_out = glob_sum( hfx_out(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 131 zbg_hfx_in = glob_sum( hfx_in(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! [in W] 132 132 133 133 ! --------------------------------------------- ! 134 134 ! 2 - Trends due to forcing and ice growth/melt ! 135 135 ! --------------------------------------------- ! 136 z_frc_vol = r1_rau0 * glob_sum( - emp(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! volume fluxes137 z_frc_sal = r1_rau0 * glob_sum( sfx(:,:) * e1 2t(:,:) * tmask(:,:,1) ) ! salt fluxes136 z_frc_vol = r1_rau0 * glob_sum( - emp(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! volume fluxes 137 z_frc_sal = r1_rau0 * glob_sum( sfx(:,:) * e1e2t(:,:) * tmask(:,:,1) ) ! salt fluxes 138 138 z_bg_grme = glob_sum( - ( wfx_bog(:,:) + wfx_opw(:,:) + wfx_sni(:,:) + wfx_dyn(:,:) + & 139 139 & wfx_bom(:,:) + wfx_sum(:,:) + wfx_res(:,:) + wfx_snw(:,:) + & 140 & wfx_sub(:,:) ) * e1 2t(:,:) * tmask(:,:,1) ) ! volume fluxes140 & wfx_sub(:,:) ) * e1e2t(:,:) * tmask(:,:,1) ) ! volume fluxes 141 141 ! 142 142 frc_vol = frc_vol + z_frc_vol * rdt_ice
Note: See TracChangeset
for help on using the changeset viewer.