- Timestamp:
- 2018-01-06T15:18:23+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ICB/icbclv.F90
r5215 r9190 1 1 MODULE icbclv 2 3 2 !!====================================================================== 4 3 !! *** MODULE icbclv *** … … 11 10 !! - ! 2011-05 (Alderson) budgets into separate module 12 11 !!---------------------------------------------------------------------- 12 13 13 !!---------------------------------------------------------------------- 14 14 !! icb_clv_flx : transfer input flux of ice into iceberg classes … … 45 45 !! 46 46 !!---------------------------------------------------------------------- 47 INTEGER, INTENT(in) ::kt47 INTEGER, INTENT(in) :: kt 48 48 ! 49 REAL(wp) ::zcalving_used, zdist, zfact50 INTEGER ::jn, ji, jj ! loop counters51 INTEGER ::imx ! temporary integer for max berg class52 LOGICAL, SAVE ::ll_first_call = .TRUE.49 REAL(wp) :: zcalving_used, zdist, zfact 50 INTEGER :: jn, ji, jj ! loop counters 51 INTEGER :: imx ! temporary integer for max berg class 52 LOGICAL, SAVE :: ll_first_call = .TRUE. 53 53 !!---------------------------------------------------------------------- 54 54 ! … … 70 70 DO jj = 2, jpjm1 71 71 DO ji = 2, jpim1 72 IF( berg_grid%calving(ji,jj) /= 0._wp ) & ! Need units of J73 berg_grid%stored_heat(ji,jj) = SUM( berg_grid%stored_ice(ji,jj,:) ) * & ! initial stored ice in kg74 berg_grid%calving_hflx(ji,jj) * e1e2t(ji,jj) / & ! J/s/m2 x m^2 = J/s75 berg_grid%calving(ji,jj) !/calving in kg/s72 IF( berg_grid%calving(ji,jj) /= 0._wp ) & ! Need units of J 73 berg_grid%stored_heat(ji,jj) = SUM( berg_grid%stored_ice(ji,jj,:) ) * & ! initial stored ice in kg 74 & berg_grid%calving_hflx(ji,jj) * e1e2t(ji,jj) / berg_grid%calving(ji,jj) ! J/s/m2 x m^2 75 ! ! = J/s/calving in kg/s 76 76 END DO 77 77 END DO … … 80 80 ! assume that all calving flux must be distributed even if distribution array does not sum 81 81 ! to one - this may not be what is intended, but it's what you've got 82 DO jj = 1, jpj83 DO ji = 1, jpi82 DO jj = 1, jpj 83 DO ji = 1, jpi 84 84 imx = berg_grid%maxclass(ji,jj) 85 85 zdist = SUM( rn_distribution(1:nclasses) ) / SUM( rn_distribution(1:imx) ) 86 86 DO jn = 1, imx 87 berg_grid%stored_ice(ji,jj,jn) = berg_grid%stored_ice(ji,jj,jn) +&88 87 berg_grid%stored_ice(ji,jj,jn) = berg_grid%stored_ice(ji,jj,jn) & 88 & + berg_dt * berg_grid%calving(ji,jj) * rn_distribution(jn) * zdist 89 89 END DO 90 90 END DO … … 98 98 ! 99 99 END SUBROUTINE icb_clv_flx 100 100 101 101 102 SUBROUTINE icb_clv() … … 171 172 END DO 172 173 ! 173 DO jn = 1, nclasses174 DO jn = 1, nclasses 174 175 CALL lbc_lnk( berg_grid%stored_ice(:,:,jn), 'T', 1._wp ) 175 176 END DO
Note: See TracChangeset
for help on using the changeset viewer.