- Timestamp:
- 2012-04-30T12:50:36+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3337_NOCS10_ICB/NEMOGCM/NEMO/OPA_SRC/ICB/icbdia.F90
r3370 r3372 14 14 !!---------------------------------------------------------------------- 15 15 !!---------------------------------------------------------------------- 16 !! icb_ budget_end : end iceberg budgeting17 !! icb_ budget_init : initialise iceberg budgeting16 !! icb_dia_end : end iceberg budgeting 17 !! icb_dia_init : initialise iceberg budgeting 18 18 !!---------------------------------------------------------------------- 19 19 USE par_oce ! ocean parameters … … 28 28 PRIVATE 29 29 30 PUBLIC icb_ budget_end! routine called in icbrun.F90 module31 PUBLIC icb_ budget_init! routine called in icbini.F90 module32 PUBLIC icb_ budget! routine called in icbrun.F90 module33 PUBLIC icb_ budget_step! routine called in icbrun.F90 module34 PUBLIC icb_ budget_put! routine called in icbrun.F90 module35 PUBLIC melt_budget! routine called in icbthm.F90 module36 PUBLIC size_budget! routine called in icbthm.F90 module37 PUBLIC speed_budget! routine called in icbdyn.F90 module38 PUBLIC calving_budget! routine called in icbclv.F90 module39 PUBLIC i ncoming_budget! routine called in icbclv.F90 module30 PUBLIC icb_dia_end ! routine called in icbrun.F90 module 31 PUBLIC icb_dia_init ! routine called in icbini.F90 module 32 PUBLIC icb_dia ! routine called in icbrun.F90 module 33 PUBLIC icb_dia_step ! routine called in icbrun.F90 module 34 PUBLIC icb_dia_put ! routine called in icbrun.F90 module 35 PUBLIC icb_dia_melt ! routine called in icbthm.F90 module 36 PUBLIC icb_dia_size ! routine called in icbthm.F90 module 37 PUBLIC icb_dia_speed ! routine called in icbdyn.F90 module 38 PUBLIC icb_dia_calve ! routine called in icbclv.F90 module 39 PUBLIC icb_dia_income ! routine called in icbclv.F90 module 40 40 41 41 REAL(wp), DIMENSION(:,:) , POINTER, PUBLIC :: berg_melt => NULL() ! Melting+erosion rate of icebergs [kg/s/m2] … … 83 83 CONTAINS 84 84 85 SUBROUTINE icb_ budget_end85 SUBROUTINE icb_dia_end 86 86 !!---------------------------------------------------------------------- 87 87 ! … … 103 103 ENDIF 104 104 ! 105 END SUBROUTINE icb_budget_end 106 107 !!------------------------------------------------------------------------- 108 109 SUBROUTINE icb_budget_init( ) 105 END SUBROUTINE icb_dia_end 106 107 108 SUBROUTINE icb_dia_init( ) 110 109 !!---------------------------------------------------------------------- 111 110 !!---------------------------------------------------------------------- … … 160 159 bits_src_net = 0._wp 161 160 162 floating_mass_start = sum_mass( first_berg )163 bergs_mass_start = sum_mass( first_berg, justbergs=.true. )164 bits_mass_start = sum_mass( first_berg, justbits=.true. )161 floating_mass_start = icb_utl_mass( first_berg ) 162 bergs_mass_start = icb_utl_mass( first_berg, justbergs=.true. ) 163 bits_mass_start = icb_utl_mass( first_berg, justbits=.true. ) 165 164 IF( lk_mpp ) THEN 166 165 ALLOCATE( rsumbuf(23) ) ; rsumbuf(:) = 0._wp … … 175 174 ENDIF 176 175 ! 177 END SUBROUTINE icb_ budget_init178 179 180 SUBROUTINE icb_ budget( ld_budge )176 END SUBROUTINE icb_dia_init 177 178 179 SUBROUTINE icb_dia( ld_budge ) 181 180 !!---------------------------------------------------------------------- 182 181 !!---------------------------------------------------------------------- … … 207 206 stored_end = SUM( berg_grid%stored_ice(:,:,:) ) 208 207 stored_heat_end = SUM( berg_grid%stored_heat(:,:) ) 209 floating_mass_end = sum_mass( first_berg )210 bergs_mass_end = sum_mass( first_berg,justbergs=.true. )211 bits_mass_end = sum_mass( first_berg,justbits=.true. )212 floating_heat_end = sum_heat( first_berg )213 214 nbergs_end = count_bergs()208 floating_mass_end = icb_utl_mass( first_berg ) 209 bergs_mass_end = icb_utl_mass( first_berg,justbergs=.true. ) 210 bits_mass_end = icb_utl_mass( first_berg,justbits=.true. ) 211 floating_heat_end = icb_utl_heat( first_berg ) 212 213 nbergs_end = icb_utl_count() 215 214 zgrdd_berg_mass = SUM( berg_mass (:,:)*e1e2t(:,:)*tmask_i(:,:) ) 216 215 zgrdd_bits_mass = SUM( bits_mass(:,:)*e1e2t(:,:)*tmask_i(:,:) ) … … 364 363 ENDIF 365 364 ! 366 END SUBROUTINE icb_ budget367 368 369 SUBROUTINE icb_ budget_step365 END SUBROUTINE icb_dia 366 367 368 SUBROUTINE icb_dia_step 370 369 !!---------------------------------------------------------------------- 371 370 !! things to reset at the beginning of each timestep … … 385 384 real_calving (:,:,:) = 0._wp 386 385 ! 387 END SUBROUTINE icb_ budget_step388 389 390 SUBROUTINE icb_ budget_put386 END SUBROUTINE icb_dia_step 387 388 389 SUBROUTINE icb_dia_put 391 390 !!---------------------------------------------------------------------- 392 391 !!---------------------------------------------------------------------- … … 405 404 CALL iom_put( "berg_real_calving", real_calving(:,:,:) ) ! Calving into iceberg class [kg/s] 406 405 ! 407 END SUBROUTINE icb_ budget_put408 409 410 SUBROUTINE calving_budget( ki, kj, kn, pcalved, pheated )406 END SUBROUTINE icb_dia_put 407 408 409 SUBROUTINE icb_dia_calve( ki, kj, kn, pcalved, pheated ) 411 410 !!---------------------------------------------------------------------- 412 411 !!---------------------------------------------------------------------- … … 423 422 heat_to_bergs_net = heat_to_bergs_net + pheated 424 423 ! 425 END SUBROUTINE calving_budget426 427 428 SUBROUTINE i ncoming_budget( kt, pcalving_used, pheat_used )424 END SUBROUTINE icb_dia_calve 425 426 427 SUBROUTINE icb_dia_income( kt, pcalving_used, pheat_used ) 429 428 !!---------------------------------------------------------------------- 430 429 !!---------------------------------------------------------------------- … … 439 438 stored_start = SUM( berg_grid%stored_ice(:,:,:) ) 440 439 IF( lk_mpp ) CALL mpp_sum( stored_start ) 441 WRITE(numicb,'(a,es13.6,a)') ' accumulate_calving: initial stored mass=',stored_start,' kg'440 WRITE(numicb,'(a,es13.6,a)') 'icb_dia_income: initial stored mass=',stored_start,' kg' 442 441 ! 443 442 stored_heat_start = SUM( berg_grid%stored_heat(:,:) ) 444 443 IF( lk_mpp ) CALL mpp_sum( stored_heat_start ) 445 WRITE(numicb,'(a,es13.6,a)') ' accumulate_calving: initial stored heat=',stored_heat_start,' J'444 WRITE(numicb,'(a,es13.6,a)') 'icb_dia_income: initial stored heat=',stored_heat_start,' J' 446 445 ENDIF 447 446 ! … … 453 452 calving_src_heat_used_net = calving_src_heat_used_net + SUM( pheat_used(:,:) ) 454 453 ! 455 END SUBROUTINE i ncoming_budget456 457 458 SUBROUTINE size_budget(ki, kj, pWn, pLn, pAbits, &459 & pmass_scale, pMnew, pnMbits, pz1_e1e2)454 END SUBROUTINE icb_dia_income 455 456 457 SUBROUTINE icb_dia_size(ki, kj, pWn, pLn, pAbits, & 458 & pmass_scale, pMnew, pnMbits, pz1_e1e2) 460 459 !!---------------------------------------------------------------------- 461 460 !!---------------------------------------------------------------------- … … 469 468 bits_mass(ki,kj) = bits_mass(ki,kj) + pnMbits * pz1_e1e2 ! kg/m2 470 469 ! 471 END SUBROUTINE size_budget472 473 474 SUBROUTINE speed_budget()470 END SUBROUTINE icb_dia_size 471 472 473 SUBROUTINE icb_dia_speed() 475 474 !!---------------------------------------------------------------------- 476 475 !!---------------------------------------------------------------------- … … 479 478 nspeeding_tickets = nspeeding_tickets + 1 480 479 ! 481 END SUBROUTINE speed_budget482 483 484 SUBROUTINE melt_budget(ki, kj, pmnew, pheat, pmass_scale, &480 END SUBROUTINE icb_dia_speed 481 482 483 SUBROUTINE icb_dia_melt(ki, kj, pmnew, pheat, pmass_scale, & 485 484 & pdM, pdMbitsE, pdMbitsM, pdMb, pdMe, & 486 485 & pdMv, pz1_dt_e1e2 ) … … 503 502 IF( pmnew <= 0._wp ) nbergs_melted = nbergs_melted + 1 ! Delete the berg if completely melted 504 503 ! 505 END SUBROUTINE melt_budget504 END SUBROUTINE icb_dia_melt 506 505 507 506
Note: See TracChangeset
for help on using the changeset viewer.