Changeset 5836 for trunk/NEMOGCM/NEMO/LIM_SRC_3
- Timestamp:
- 2015-10-26T15:49:40+01:00 (9 years ago)
- Location:
- trunk/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/limadv.F90
r5429 r5836 97 97 98 98 ! Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 99 psm (:,:) = MAX( pcrh * e1 2t(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 )99 psm (:,:) = MAX( pcrh * e1e2t(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 ) 100 100 101 101 ! Calculate fluxes and moments between boxes i<-->i+1 … … 282 282 283 283 ! Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 284 psm(:,:) = MAX( pcrh * e1 2t(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 )284 psm(:,:) = MAX( pcrh * e1e2t(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 ) 285 285 286 286 ! Calculate fluxes and moments between boxes j<-->j+1 -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limcons.F90
r5183 r5836 185 185 zfs_b = glob_sum( ( sfx_bri(:,:) + sfx_bog(:,:) + sfx_bom(:,:) + sfx_sum(:,:) + sfx_sni(:,:) + & 186 186 & sfx_opw(:,:) + sfx_res(:,:) + sfx_dyn(:,:) & 187 & ) * e1 2t(:,:) * tmask(:,:,1) * zconv )187 & ) * e1e2t(:,:) * tmask(:,:,1) * zconv ) 188 188 189 189 ! water flux 190 190 zfw_b = glob_sum( -( wfx_bog(:,:) + wfx_bom(:,:) + wfx_sum(:,:) + wfx_sni(:,:) + wfx_opw(:,:) + & 191 191 & wfx_res(:,:) + wfx_dyn(:,:) + wfx_snw(:,:) + wfx_sub(:,:) + wfx_spr(:,:) & 192 & ) * e1 2t(:,:) * tmask(:,:,1) * zconv )192 & ) * e1e2t(:,:) * tmask(:,:,1) * zconv ) 193 193 194 194 ! heat flux 195 195 zft_b = glob_sum( ( hfx_sum(:,:) + hfx_bom(:,:) + hfx_bog(:,:) + hfx_dif(:,:) + hfx_opw(:,:) + hfx_snw(:,:) & 196 196 & - hfx_thd(:,:) - hfx_dyn(:,:) - hfx_res(:,:) - hfx_sub(:,:) - hfx_spr(:,:) & 197 & ) * e1 2t(:,:) * tmask(:,:,1) * zconv )198 199 zvi_b = glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) * e1 2t * tmask(:,:,1) * zconv )200 201 zsmv_b = glob_sum( SUM( smv_i * rhoic , dim=3 ) * e1 2t * tmask(:,:,1) * zconv )197 & ) * e1e2t(:,:) * tmask(:,:,1) * zconv ) 198 199 zvi_b = glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) * e1e2t * tmask(:,:,1) * zconv ) 200 201 zsmv_b = glob_sum( SUM( smv_i * rhoic , dim=3 ) * e1e2t * tmask(:,:,1) * zconv ) 202 202 203 203 zei_b = glob_sum( ( SUM( SUM( e_i(:,:,1:nlay_i,:), dim=4 ), dim=3 ) + & 204 204 & SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 ) & 205 ) * e1 2t * tmask(:,:,1) * zconv )205 ) * e1e2t * tmask(:,:,1) * zconv ) 206 206 207 207 ELSEIF( icount == 1 ) THEN … … 210 210 zfs = glob_sum( ( sfx_bri(:,:) + sfx_bog(:,:) + sfx_bom(:,:) + sfx_sum(:,:) + sfx_sni(:,:) + & 211 211 & sfx_opw(:,:) + sfx_res(:,:) + sfx_dyn(:,:) & 212 & ) * e1 2t(:,:) * tmask(:,:,1) * zconv ) - zfs_b212 & ) * e1e2t(:,:) * tmask(:,:,1) * zconv ) - zfs_b 213 213 214 214 ! water flux 215 215 zfw = glob_sum( -( wfx_bog(:,:) + wfx_bom(:,:) + wfx_sum(:,:) + wfx_sni(:,:) + wfx_opw(:,:) + & 216 216 & wfx_res(:,:) + wfx_dyn(:,:) + wfx_snw(:,:) + wfx_sub(:,:) + wfx_spr(:,:) & 217 & ) * e1 2t(:,:) * tmask(:,:,1) * zconv ) - zfw_b217 & ) * e1e2t(:,:) * tmask(:,:,1) * zconv ) - zfw_b 218 218 219 219 ! heat flux 220 220 zft = glob_sum( ( hfx_sum(:,:) + hfx_bom(:,:) + hfx_bog(:,:) + hfx_dif(:,:) + hfx_opw(:,:) + hfx_snw(:,:) & 221 221 & - hfx_thd(:,:) - hfx_dyn(:,:) - hfx_res(:,:) - hfx_sub(:,:) - hfx_spr(:,:) & 222 & ) * e1 2t(:,:) * tmask(:,:,1) * zconv ) - zft_b222 & ) * e1e2t(:,:) * tmask(:,:,1) * zconv ) - zft_b 223 223 224 224 ! outputs 225 225 zvi = ( ( glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) & 226 & * e1 2t * tmask(:,:,1) * zconv ) - zvi_b ) * r1_rdtice - zfw ) * rday226 & * e1e2t * tmask(:,:,1) * zconv ) - zvi_b ) * r1_rdtice - zfw ) * rday 227 227 228 228 zsmv = ( ( glob_sum( SUM( smv_i * rhoic , dim=3 ) & 229 & * e1 2t * tmask(:,:,1) * zconv ) - zsmv_b ) * r1_rdtice + zfs ) * rday229 & * e1e2t * tmask(:,:,1) * zconv ) - zsmv_b ) * r1_rdtice + zfs ) * rday 230 230 231 231 zei = glob_sum( ( SUM( SUM( e_i(:,:,1:nlay_i,:), dim=4 ), dim=3 ) + & 232 232 & SUM( SUM( e_s(:,:,1:nlay_s,:), dim=4 ), dim=3 ) & 233 & ) * e1 2t * tmask(:,:,1) * zconv ) * r1_rdtice - zei_b * r1_rdtice + zft233 & ) * e1e2t * tmask(:,:,1) * zconv ) * r1_rdtice - zei_b * r1_rdtice + zft 234 234 235 235 ! zvtrp and zetrp must be close to 0 if the advection scheme is conservative 236 zvtrp = glob_sum( ( diag_trp_vi * rhoic + diag_trp_vs * rhosn ) * e1 2t * tmask(:,:,1) * zconv ) * rday237 zetrp = glob_sum( ( diag_trp_ei + diag_trp_es ) * e1 2t * tmask(:,:,1) * zconv )236 zvtrp = glob_sum( ( diag_trp_vi * rhoic + diag_trp_vs * rhosn ) * e1e2t * tmask(:,:,1) * zconv ) * rday 237 zetrp = glob_sum( ( diag_trp_ei + diag_trp_es ) * e1e2t * tmask(:,:,1) * zconv ) 238 238 239 239 zvmin = glob_min( v_i ) … … 242 242 243 243 ! set threshold values and calculate the ice area (+epsi10 to set a threshold > 0 when there is no ice) 244 zarea = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1 2t * zconv ) ! in 1.e9 m2244 zarea = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t * zconv ) ! in 1.e9 m2 245 245 zv_sill = zarea * 2.5e-5 246 246 zs_sill = zarea * 25.e-5 … … 286 286 #if ! defined key_bdy 287 287 ! heat flux 288 zhfx = glob_sum( ( hfx_in - hfx_out - diag_heat - diag_trp_ei - diag_trp_es - hfx_sub ) * e1 2t * tmask(:,:,1) * zconv )288 zhfx = glob_sum( ( hfx_in - hfx_out - diag_heat - diag_trp_ei - diag_trp_es - hfx_sub ) * e1e2t * tmask(:,:,1) * zconv ) 289 289 ! salt flux 290 zsfx = glob_sum( ( sfx + diag_smvi ) * e1 2t * tmask(:,:,1) * zconv ) * rday290 zsfx = glob_sum( ( sfx + diag_smvi ) * e1e2t * tmask(:,:,1) * zconv ) * rday 291 291 ! water flux 292 zvfx = glob_sum( ( wfx_ice + wfx_snw + wfx_spr + wfx_sub + diag_vice + diag_vsnw ) * e1 2t * tmask(:,:,1) * zconv ) * rday292 zvfx = glob_sum( ( wfx_ice + wfx_snw + wfx_spr + wfx_sub + diag_vice + diag_vsnw ) * e1e2t * tmask(:,:,1) * zconv ) * rday 293 293 294 294 ! set threshold values and calculate the ice area (+epsi10 to set a threshold > 0 when there is no ice) 295 zarea = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1 2t * zconv ) ! in 1.e9 m2295 zarea = glob_sum( SUM( a_i + epsi10, dim=3 ) * e1e2t * zconv ) ! in 1.e9 m2 296 296 zv_sill = zarea * 2.5e-5 297 297 zs_sill = zarea * 25.e-5 -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limctl.F90
r5167 r5836 306 306 WRITE(numout,*) ' - Cell values ' 307 307 WRITE(numout,*) ' ~~~~~~~~~~~ ' 308 WRITE(numout,*) ' cell area : ', e1 2t(ji,jj)308 WRITE(numout,*) ' cell area : ', e1e2t(ji,jj) 309 309 WRITE(numout,*) ' at_i : ', at_i(ji,jj) 310 310 WRITE(numout,*) ' vt_i : ', vt_i(ji,jj) … … 350 350 WRITE(numout,*) ' - Cell values ' 351 351 WRITE(numout,*) ' ~~~~~~~~~~~ ' 352 WRITE(numout,*) ' cell area : ', e1 2t(ji,jj)352 WRITE(numout,*) ' cell area : ', e1e2t(ji,jj) 353 353 WRITE(numout,*) ' at_i : ', at_i(ji,jj) 354 354 WRITE(numout,*) ' vt_i : ', vt_i(ji,jj) -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limdiahsb.F90
r5215 r5836 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 -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90
r5123 r5836 191 191 CALL prt_ctl(tab2d_1=delta_i , clinfo1=' lim_dyn : delta_i :') 192 192 CALL prt_ctl(tab2d_1=strength , clinfo1=' lim_dyn : strength :') 193 CALL prt_ctl(tab2d_1=e1 2t, clinfo1=' lim_dyn : cell area :')193 CALL prt_ctl(tab2d_1=e1e2t , clinfo1=' lim_dyn : cell area :') 194 194 CALL prt_ctl(tab2d_1=at_i , clinfo1=' lim_dyn : at_i :') 195 195 CALL prt_ctl(tab2d_1=vt_i , clinfo1=' lim_dyn : vt_i :') -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limhdf.F90
r5429 r5836 76 76 DO jj = 2, jpjm1 77 77 DO ji = fs_2 , fs_jpim1 ! vector opt. 78 efact(ji,jj) = ( e2u(ji,jj) + e2u(ji-1,jj) + e1v(ji,jj) + e1v(ji,jj-1) ) * r1_e1 2t(ji,jj)78 efact(ji,jj) = ( e2u(ji,jj) + e2u(ji-1,jj) + e1v(ji,jj) + e1v(ji,jj-1) ) * r1_e1e2t(ji,jj) 79 79 END DO 80 80 END DO … … 107 107 DO jj= 2, jpjm1 ! diffusive trend : divergence of the fluxes 108 108 DO ji = fs_2 , fs_jpim1 ! vector opt. 109 zdiv(ji,jj) = ( zflu(ji,jj) - zflu(ji-1,jj) + zflv(ji,jj) - zflv(ji,jj-1) ) * r1_e1 2t(ji,jj)109 zdiv(ji,jj) = ( zflu(ji,jj) - zflu(ji-1,jj) + zflv(ji,jj) - zflv(ji,jj-1) ) * r1_e1e2t(ji,jj) 110 110 END DO 111 111 END DO … … 149 149 DO jj= 2, jpjm1 ! diffusive trend : divergence of the fluxes 150 150 DO ji = fs_2 , fs_jpim1 ! vector opt. 151 zdiv(ji,jj) = ( zflu(ji,jj) - zflu(ji-1,jj) + zflv(ji,jj) - zflv(ji,jj-1) ) * r1_e1 2t(ji,jj)151 zdiv(ji,jj) = ( zflu(ji,jj) - zflu(ji-1,jj) + zflv(ji,jj) - zflv(ji,jj-1) ) * r1_e1e2t(ji,jj) 152 152 ptab(ji,jj) = ztab0(ji,jj) + 0.5 * ( zdiv(ji,jj) + zdiv0(ji,jj) ) 153 153 END DO -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r5202 r5836 377 377 CALL prt_ctl_info(' - Cell values : ') 378 378 CALL prt_ctl_info(' ~~~~~~~~~~~~~ ') 379 CALL prt_ctl(tab2d_1=e1 2t, clinfo1=' lim_itd_me : cell area :')379 CALL prt_ctl(tab2d_1=e1e2t, clinfo1=' lim_itd_me : cell area :') 380 380 CALL prt_ctl(tab2d_1=at_i , clinfo1=' lim_itd_me : at_i :') 381 381 CALL prt_ctl(tab2d_1=vt_i , clinfo1=' lim_itd_me : vt_i :') -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r5429 r5836 355 355 divu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj) * u_ice(ji-1,jj) & 356 356 & + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) & 357 & ) * r1_e1 2t(ji,jj)357 & ) * r1_e1e2t(ji,jj) 358 358 359 359 zdt(ji,jj) = ( ( u_ice(ji,jj) * r1_e2u(ji,jj) - u_ice(ji-1,jj) * r1_e2u(ji-1,jj) ) * e2t(ji,jj) * e2t(ji,jj) & 360 360 & - ( v_ice(ji,jj) * r1_e1v(ji,jj) - v_ice(ji,jj-1) * r1_e1v(ji,jj-1) ) * e1t(ji,jj) * e1t(ji,jj) & 361 & ) * r1_e1 2t(ji,jj)361 & ) * r1_e1e2t(ji,jj) 362 362 363 363 ! 364 364 zds(ji,jj) = ( ( u_ice(ji,jj+1) * r1_e1u(ji,jj+1) - u_ice(ji,jj) * r1_e1u(ji,jj) ) * e1f(ji,jj) * e1f(ji,jj) & 365 365 & + ( v_ice(ji+1,jj) * r1_e2v(ji+1,jj) - v_ice(ji,jj) * r1_e2v(ji,jj) ) * e2f(ji,jj) * e2f(ji,jj) & 366 & ) * r1_e1 2f(ji,jj) * ( 2._wp - fmask(ji,jj,1) ) &366 & ) * r1_e1e2f(ji,jj) * ( 2._wp - fmask(ji,jj,1) ) & 367 367 & * zmask(ji,jj) * zmask(ji,jj+1) * zmask(ji+1,jj) * zmask(ji+1,jj+1) 368 368 … … 386 386 zdst = ( e2u(ji,jj) * v_ice1(ji,jj) - e2u(ji-1,jj ) * v_ice1(ji-1,jj ) & 387 387 & + e1v(ji,jj) * u_ice2(ji,jj) - e1v(ji ,jj-1) * u_ice2(ji ,jj-1) & 388 & ) * r1_e1 2t(ji,jj)388 & ) * r1_e1e2t(ji,jj) 389 389 390 390 delta = SQRT( divu_i(ji,jj)**2 + ( zdt(ji,jj)**2 + zdst**2 ) * usecc2 ) … … 394 394 zddc = ( ( v_ice1(ji,jj+1) * r1_e1u(ji,jj+1) - v_ice1(ji,jj) * r1_e1u(ji,jj) ) * e1f(ji,jj) * e1f(ji,jj) & 395 395 & + ( u_ice2(ji+1,jj) * r1_e2v(ji+1,jj) - u_ice2(ji,jj) * r1_e2v(ji,jj) ) * e2f(ji,jj) * e2f(ji,jj) & 396 & ) * r1_e1 2f(ji,jj)396 & ) * r1_e1e2f(ji,jj) 397 397 398 398 zdtc = (- ( v_ice1(ji,jj+1) * r1_e1u(ji,jj+1) - v_ice1(ji,jj) * r1_e1u(ji,jj) ) * e1f(ji,jj) * e1f(ji,jj) & 399 399 & + ( u_ice2(ji+1,jj) * r1_e2v(ji+1,jj) - u_ice2(ji,jj) * r1_e2v(ji,jj) ) * e2f(ji,jj) * e2f(ji,jj) & 400 & ) * r1_e1 2f(ji,jj)400 & ) * r1_e1e2f(ji,jj) 401 401 402 402 zddc = SQRT( zddc**2 + ( zdtc**2 + zds(ji,jj)**2 ) * usecc2 ) + rn_creepl … … 423 423 & + ( zs2(ji+1,jj) * e2t(ji+1,jj)**2 - zs2(ji,jj) * e2t(ji,jj)**2 ) * r1_e2u(ji,jj) & 424 424 & + 2.0 * ( zs12(ji,jj) * e1f(ji,jj)**2 - zs12(ji,jj-1) * e1f(ji,jj-1)**2 ) * r1_e1u(ji,jj) & 425 & ) * r1_e1 2u(ji,jj)425 & ) * r1_e1e2u(ji,jj) 426 426 ! contribution of zs1, zs2 and zs12 to zf2 427 427 zf2(ji,jj) = 0.5 * ( ( zs1(ji,jj+1) - zs1(ji,jj) ) * e1v(ji,jj) & 428 428 & - ( zs2(ji,jj+1) * e1t(ji,jj+1)**2 - zs2(ji,jj) * e1t(ji,jj)**2 ) * r1_e1v(ji,jj) & 429 429 & + 2.0 * ( zs12(ji,jj) * e2f(ji,jj)**2 - zs12(ji-1,jj) * e2f(ji-1,jj)**2 ) * r1_e2v(ji,jj) & 430 & ) * r1_e1 2v(ji,jj)430 & ) * r1_e1e2v(ji,jj) 431 431 END DO 432 432 END DO … … 607 607 divu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj ) * u_ice(ji-1,jj ) & 608 608 & + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji ,jj-1) * v_ice(ji ,jj-1) & 609 & ) * r1_e1 2t(ji,jj)609 & ) * r1_e1e2t(ji,jj) 610 610 611 611 zdt(ji,jj) = ( ( u_ice(ji,jj) * r1_e2u(ji,jj) - u_ice(ji-1,jj) * r1_e2u(ji-1,jj) ) * e2t(ji,jj) * e2t(ji,jj) & 612 612 & -( v_ice(ji,jj) * r1_e1v(ji,jj) - v_ice(ji,jj-1) * r1_e1v(ji,jj-1) ) * e1t(ji,jj) * e1t(ji,jj) & 613 & ) * r1_e1 2t(ji,jj)613 & ) * r1_e1e2t(ji,jj) 614 614 ! 615 615 ! SB modif because ocean has no slip boundary condition 616 616 zds(ji,jj) = ( ( u_ice(ji,jj+1) * r1_e1u(ji,jj+1) - u_ice(ji,jj) * r1_e1u(ji,jj) ) * e1f(ji,jj) * e1f(ji,jj) & 617 617 & +( v_ice(ji+1,jj) * r1_e2v(ji+1,jj) - v_ice(ji,jj) * r1_e2v(ji,jj) ) * e2f(ji,jj) * e2f(ji,jj) & 618 & ) * r1_e1 2f(ji,jj) * ( 2.0 - fmask(ji,jj,1) ) &618 & ) * r1_e1e2f(ji,jj) * ( 2.0 - fmask(ji,jj,1) ) & 619 619 & * zmask(ji,jj) * zmask(ji,jj+1) * zmask(ji+1,jj) * zmask(ji+1,jj+1) 620 620 621 621 zdst = ( e2u(ji,jj) * v_ice1(ji,jj) - e2u(ji-1,jj ) * v_ice1(ji-1,jj ) & 622 & + e1v(ji,jj) * u_ice2(ji,jj) - e1v(ji ,jj-1) * u_ice2(ji ,jj-1) ) * r1_e1 2t(ji,jj)622 & + e1v(ji,jj) * u_ice2(ji,jj) - e1v(ji ,jj-1) * u_ice2(ji ,jj-1) ) * r1_e1e2t(ji,jj) 623 623 624 624 delta = SQRT( divu_i(ji,jj)**2 + ( zdt(ji,jj)**2 + zdst**2 ) * usecc2 ) … … 637 637 DO ji = fs_2, fs_jpim1 638 638 zdst = ( e2u(ji,jj) * v_ice1(ji,jj) - e2u( ji-1, jj ) * v_ice1(ji-1,jj) & 639 & + e1v(ji,jj) * u_ice2(ji,jj) - e1v( ji , jj-1 ) * u_ice2(ji,jj-1) ) * r1_e1 2t(ji,jj)639 & + e1v(ji,jj) * u_ice2(ji,jj) - e1v( ji , jj-1 ) * u_ice2(ji,jj-1) ) * r1_e1e2t(ji,jj) 640 640 shear_i(ji,jj) = SQRT( zdt(ji,jj) * zdt(ji,jj) + zdst * zdst ) 641 641 END DO -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
r5407 r5836 325 325 CALL prt_ctl_info(' - Cell values : ') 326 326 CALL prt_ctl_info(' ~~~~~~~~~~~~~ ') 327 CALL prt_ctl(tab2d_1=e1 2t, clinfo1=' lim_thd : cell area :')327 CALL prt_ctl(tab2d_1=e1e2t, clinfo1=' lim_thd : cell area :') 328 328 CALL prt_ctl(tab2d_1=at_i , clinfo1=' lim_thd : at_i :') 329 329 CALL prt_ctl(tab2d_1=vt_i , clinfo1=' lim_thd : vt_i :') … … 382 382 CALL prt_ctl_info(' - Cell values : ') 383 383 CALL prt_ctl_info(' ~~~~~~~~~~~~~ ') 384 CALL prt_ctl(tab2d_1=e1 2t, clinfo1=' lim_itd_th : cell area :')384 CALL prt_ctl(tab2d_1=e1e2t, clinfo1=' lim_itd_th : cell area :') 385 385 CALL prt_ctl(tab2d_1=at_i , clinfo1=' lim_itd_th : at_i :') 386 386 CALL prt_ctl(tab2d_1=vt_i , clinfo1=' lim_itd_th : vt_i :') -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r5202 r5836 95 95 ENDIF 96 96 97 zsm(:,:) = e1 2t(:,:)97 zsm(:,:) = e1e2t(:,:) 98 98 99 99 ! !-------------------------------------! … … 162 162 ! transported fields 163 163 !------------------------- 164 z0opw(:,:,1) = ato_i(:,:) * e1 2t(:,:) ! Open water area165 DO jl = 1, jpl 166 z0snw (:,:,jl) = v_s (:,:, jl) * e12t(:,:)! Snow volume167 z0ice(:,:,jl) = v_i (:,:, jl) * e12t(:,:)! Ice volume168 z0ai (:,:,jl) = a_i (:,:, jl) * e12t(:,:)! Ice area169 z0smi (:,:,jl) = smv_i(:,:, jl) * e12t(:,:)! Salt content170 z0oi (:,:,jl) = oa_i (:,:, jl) * e12t(:,:)! Age content171 z0es (:,:,jl) = e_s (:,:,1,jl) * e1 2t(:,:) ! Snow heat content164 z0opw(:,:,1) = ato_i(:,:) * e1e2t(:,:) ! Open water area 165 DO jl = 1, jpl 166 z0snw (:,:,jl) = v_s (:,:, jl) * e1e2t(:,:) ! Snow volume 167 z0ice(:,:,jl) = v_i (:,:, jl) * e1e2t(:,:) ! Ice volume 168 z0ai (:,:,jl) = a_i (:,:, jl) * e1e2t(:,:) ! Ice area 169 z0smi (:,:,jl) = smv_i(:,:, jl) * e1e2t(:,:) ! Salt content 170 z0oi (:,:,jl) = oa_i (:,:, jl) * e1e2t(:,:) ! Age content 171 z0es (:,:,jl) = e_s (:,:,1,jl) * e1e2t(:,:) ! Snow heat content 172 172 DO jk = 1, nlay_i 173 z0ei (:,:,jk,jl) = e_i (:,:,jk,jl) * e1 2t(:,:) ! Ice heat content173 z0ei (:,:,jk,jl) = e_i (:,:,jk,jl) * e1e2t(:,:) ! Ice heat content 174 174 END DO 175 175 END DO … … 263 263 ! Recover the properties from their contents 264 264 !------------------------------------------- 265 ato_i(:,:) = z0opw(:,:,1) * r1_e1 2t(:,:)266 DO jl = 1, jpl 267 v_i (:,:, jl) = z0ice(:,:,jl) * r1_e12t(:,:)268 v_s (:,:, jl) = z0snw(:,:,jl) * r1_e12t(:,:)269 smv_i(:,:, jl) = z0smi(:,:,jl) * r1_e12t(:,:)270 oa_i (:,:, jl) = z0oi (:,:,jl) * r1_e12t(:,:)271 a_i (:,:, jl) = z0ai (:,:,jl) * r1_e12t(:,:)272 e_s (:,:,1,jl) = z0es (:,:,jl) * r1_e1 2t(:,:)265 ato_i(:,:) = z0opw(:,:,1) * r1_e1e2t(:,:) 266 DO jl = 1, jpl 267 v_i (:,:, jl) = z0ice(:,:,jl) * r1_e1e2t(:,:) 268 v_s (:,:, jl) = z0snw(:,:,jl) * r1_e1e2t(:,:) 269 smv_i(:,:, jl) = z0smi(:,:,jl) * r1_e1e2t(:,:) 270 oa_i (:,:, jl) = z0oi (:,:,jl) * r1_e1e2t(:,:) 271 a_i (:,:, jl) = z0ai (:,:,jl) * r1_e1e2t(:,:) 272 e_s (:,:,1,jl) = z0es (:,:,jl) * r1_e1e2t(:,:) 273 273 DO jk = 1, nlay_i 274 e_i(:,:,jk,jl) = z0ei(:,:,jk,jl) * r1_e1 2t(:,:)274 e_i(:,:,jk,jl) = z0ei(:,:,jk,jl) * r1_e1e2t(:,:) 275 275 END DO 276 276 END DO -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limupdate1.F90
r5215 r5836 146 146 CALL prt_ctl_info(' - Cell values : ') 147 147 CALL prt_ctl_info(' ~~~~~~~~~~~~~ ') 148 CALL prt_ctl(tab2d_1=e1 2t, clinfo1=' lim_update1 : cell area :')148 CALL prt_ctl(tab2d_1=e1e2t , clinfo1=' lim_update1 : cell area :') 149 149 CALL prt_ctl(tab2d_1=at_i , clinfo1=' lim_update1 : at_i :') 150 150 CALL prt_ctl(tab2d_1=vt_i , clinfo1=' lim_update1 : vt_i :') -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90
r5410 r5836 191 191 CALL prt_ctl_info(' - Cell values : ') 192 192 CALL prt_ctl_info(' ~~~~~~~~~~~~~ ') 193 CALL prt_ctl(tab2d_1=e1 2t, clinfo1=' lim_update2 : cell area :')193 CALL prt_ctl(tab2d_1=e1e2t , clinfo1=' lim_update2 : cell area :') 194 194 CALL prt_ctl(tab2d_1=at_i , clinfo1=' lim_update2 : at_i :') 195 195 CALL prt_ctl(tab2d_1=vt_i , clinfo1=' lim_update2 : vt_i :')
Note: See TracChangeset
for help on using the changeset viewer.