Changeset 3523
- Timestamp:
- 2012-11-01T08:58:07+01:00 (12 years ago)
- Location:
- branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90
r3517 r3523 641 641 dmgwi_1d (ji) = dmgwi_1d(ji) + a_i_b(ji) * ( ht_s_b(ji) - zhnnew ) * rhosn 642 642 643 rdm_ice_1d(ji) = rdm_ice_1d(ji) + a_i_b(ji) * ( zhgnew(ji) - ht_i_b(ji) ) * rhoic 643 ! All snow is thrown in the ocean, and seawater is taken to replace the volume 644 rdm_ice_1d(ji) = rdm_ice_1d(ji) + a_i_b(ji) * ( zhgnew(ji) - ht_i_b(ji) ) * rhoic * ( 1. - rhosn / rhoic ) 644 645 rdm_snw_1d(ji) = rdm_snw_1d(ji) + a_i_b(ji) * ( zhnnew - ht_s_b(ji) ) * rhosn 645 646 -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90
r3517 r3523 315 315 CALL tab_2d_1d( nbpac, t_bo_b (1:nbpac) , t_bo , jpi, jpj, npac(1:nbpac) ) 316 316 CALL tab_2d_1d( nbpac, fseqv_1d (1:nbpac) , fseqv , jpi, jpj, npac(1:nbpac) ) 317 CALL tab_2d_1d( nbpac, rdm_ice_1d(1:nbpac) , rdm_ice, jpi, jpj, npac(1:nbpac) ) 317 318 CALL tab_2d_1d( nbpac, hicol_b (1:nbpac) , hicol , jpi, jpj, npac(1:nbpac) ) 318 319 CALL tab_2d_1d( nbpac, zvrel_ac (1:nbpac) , zvrel , jpi, jpj, npac(1:nbpac) ) … … 391 392 ! note that for constant salinity zs_newice() = bulk_sal (see top of the subroutine) 392 393 DO ji = 1, nbpac 393 fseqv_1d(ji) = fseqv_1d(ji) - zs_newice(ji) * rhoic * zv_newice(ji) * r1_rdtice 394 fseqv_1d (ji) = fseqv_1d (ji) - zs_newice(ji) * rhoic * zv_newice(ji) * r1_rdtice 395 rdm_ice_1d(ji) = rdm_ice_1d(ji) + rhoic * zv_newice(ji) 394 396 END DO ! ji 395 397 … … 611 613 END DO 612 614 END DO 613 CALL tab_1d_2d( nbpac, fseqv , npac(1:nbpac), fseqv_1d (1:nbpac) , jpi, jpj ) 615 CALL tab_1d_2d( nbpac, fseqv , npac(1:nbpac), fseqv_1d (1:nbpac), jpi, jpj ) 616 CALL tab_1d_2d( nbpac, rdm_ice, npac(1:nbpac), rdm_ice_1d(1:nbpac), jpi, jpj ) 614 617 ! 615 618 ENDIF ! nbpac > 0 -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_sal.F90
r3517 r3523 150 150 i_ice_switch = 1._wp - MAX( 0._wp, SIGN( 1._wp , - ht_i_b(ji) ) ) 151 151 fsbri_1d(ji) = fsbri_1d(ji) - i_ice_switch * rhoic * a_i_b(ji) * ht_i_b(ji) & 152 & * ( MAX( dsm_i_gd_1d(ji) + dsm_i_fl_1d(ji), sm_i_b(ji) - zsiold(ji) ) ) * r1_rdtice152 & * ( MAX( dsm_i_gd_1d(ji) + dsm_i_fl_1d(ji) , sm_i_b(ji) - zsiold(ji) ) ) * r1_rdtice 153 153 END DO ! ji 154 154 -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r3517 r3523 174 174 ELSE 175 175 DO jk = 1, initad 176 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0ow (:,:), sxopw(:,:), & !--- ice open water area176 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0ow (:,:), sxopw(:,:), & !--- ice open water area 177 177 & sxxopw(:,:), syopw(:,:), syyopw(:,:), sxyopw(:,:) ) 178 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0ow (:,:), sxopw(:,:), &178 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0ow (:,:), sxopw(:,:), & 179 179 & sxxopw(:,:), syopw(:,:), syyopw(:,:), sxyopw(:,:) ) 180 180 DO jl = 1, jpl 181 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0ice(:,:,jl), sxice(:,:,jl), & !--- ice volume ---181 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0ice(:,:,jl), sxice(:,:,jl), & !--- ice volume --- 182 182 & sxxice(:,:,jl), syice(:,:,jl), syyice(:,:,jl), sxyice(:,:,jl) ) 183 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0ice(:,:,jl), sxice(:,:,jl), &183 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0ice(:,:,jl), sxice(:,:,jl), & 184 184 & sxxice(:,:,jl), syice(:,:,jl), syyice(:,:,jl), sxyice(:,:,jl) ) 185 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0sn (:,:,jl), sxsn (:,:,jl), & !--- snow volume ---185 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0sn (:,:,jl), sxsn (:,:,jl), & !--- snow volume --- 186 186 & sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl) ) 187 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0sn (:,:,jl), sxsn (:,:,jl), &187 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0sn (:,:,jl), sxsn (:,:,jl), & 188 188 & sxxsn (:,:,jl), sysn (:,:,jl), syysn (:,:,jl), sxysn (:,:,jl) ) 189 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0sm (:,:,jl), sxsal(:,:,jl), & !--- ice salinity ---189 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0sm (:,:,jl), sxsal(:,:,jl), & !--- ice salinity --- 190 190 & sxxsal(:,:,jl), sysal(:,:,jl), syysal(:,:,jl), sxysal(:,:,jl) ) 191 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0sm (:,:,jl), sxsal(:,:,jl), &191 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0sm (:,:,jl), sxsal(:,:,jl), & 192 192 & sxxsal(:,:,jl), sysal(:,:,jl), syysal(:,:,jl), sxysal(:,:,jl) ) 193 193 194 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0oi (:,:,jl), sxage(:,:,jl), & !--- ice age ---194 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0oi (:,:,jl), sxage(:,:,jl), & !--- ice age --- 195 195 & sxxage(:,:,jl), syage(:,:,jl), syyage(:,:,jl), sxyage(:,:,jl) ) 196 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0oi (:,:,jl), sxage(:,:,jl), &196 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0oi (:,:,jl), sxage(:,:,jl), & 197 197 & sxxage(:,:,jl), syage(:,:,jl), syyage(:,:,jl), sxyage(:,:,jl) ) 198 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0a (:,:,jl), sxa (:,:,jl), & !--- ice concentrations ---198 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0a (:,:,jl), sxa (:,:,jl), & !--- ice concentrations --- 199 199 & sxxa (:,:,jl), sya (:,:,jl), syya (:,:,jl), sxya (:,:,jl) ) 200 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0a (:,:,jl), sxa (:,:,jl), &200 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0a (:,:,jl), sxa (:,:,jl), & 201 201 & sxxa (:,:,jl), sya (:,:,jl), syya (:,:,jl), sxya (:,:,jl) ) 202 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0c0 (:,:,jl), sxc0 (:,:,jl), & !--- snow heat contents ---202 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0c0 (:,:,jl), sxc0 (:,:,jl), & !--- snow heat contents --- 203 203 & sxxc0 (:,:,jl), syc0 (:,:,jl), syyc0 (:,:,jl), sxyc0 (:,:,jl) ) 204 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0c0 (:,:,jl), sxc0 (:,:,jl), &204 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0c0 (:,:,jl), sxc0 (:,:,jl), & 205 205 & sxxc0 (:,:,jl), syc0 (:,:,jl), syyc0 (:,:,jl), sxyc0 (:,:,jl) ) 206 206 DO layer = 1, nlay_i !--- ice heat contents --- 207 CALL lim_adv_y( zusnit, v_ice, r zero, zsm, zs0e(:,:,layer,jl), sxe (:,:,layer,jl), &207 CALL lim_adv_y( zusnit, v_ice, rone , zsm, zs0e(:,:,layer,jl), sxe (:,:,layer,jl), & 208 208 & sxxe(:,:,layer,jl), sye (:,:,layer,jl), & 209 209 & syye(:,:,layer,jl), sxye(:,:,layer,jl) ) 210 CALL lim_adv_x( zusnit, u_ice, r one, zsm, zs0e(:,:,layer,jl), sxe (:,:,layer,jl), &210 CALL lim_adv_x( zusnit, u_ice, rzero, zsm, zs0e(:,:,layer,jl), sxe (:,:,layer,jl), & 211 211 & sxxe(:,:,layer,jl), sye (:,:,layer,jl), & 212 212 & syye(:,:,layer,jl), sxye(:,:,layer,jl) ) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limupdate.F90
r3517 r3523 272 272 ENDIF 273 273 274 at_i(:,:) = 0._wp275 DO jl = 1, jpl276 at_i(:,:) = a _i(:,:,jl) + at_i(:,:)274 at_i(:,:) = a_i(:,:,1) 275 DO jl = 2, jpl 276 at_i(:,:) = at_i(:,:) + a_i(:,:,jl) 277 277 END DO 278 278 … … 347 347 .AND.( ( v_i(ji,jj,1)/MAX(a_i(ji,jj,1),epsi10)*zindb).GT.zhimax ) & 348 348 .AND.( zat_i_old.LT.zacrith ) ) THEN ! new line 349 z_prescr_hi = hi_max(1) / 2.0350 a_i(ji,jj,1) 349 z_prescr_hi = hi_max(1) * 0.5_wp 350 a_i(ji,jj,1) = v_i(ji,jj,1) / z_prescr_hi 351 351 ENDIF 352 352 END DO … … 407 407 ENDIF 408 408 409 at_i(:,:) = 0._wp410 DO jl = 1, jpl411 at_i(:,:) = a _i(:,:,jl) + at_i(:,:)409 at_i(:,:) = a_i(:,:,1) 410 DO jl = 2, jpl 411 at_i(:,:) = at_i(:,:) + a_i(:,:,jl) 412 412 END DO 413 413 … … 447 447 ENDIF 448 448 449 at_i(:,:) = 0._wp450 DO jl = 1, jpl451 at_i(:,:) = a _i(:,:,jl) + at_i(:,:)449 at_i(:,:) = a_i(:,:,1) 450 DO jl = 2, jpl 451 at_i(:,:) = at_i(:,:) + a_i(:,:,jl) 452 452 END DO 453 453 … … 787 787 !----------------------------------------------------- 788 788 zamax = amax 789 ! 2.13.1) individual concentrations cannot exceed zamax 790 !------------------------------------------------------ 791 792 at_i(:,:) = 0.0 793 DO jl = 1, jpl 794 at_i(:,:) = a_i(:,:,jl) + at_i(:,:) 795 END DO 796 797 ! 2.13.2) Total ice concentration cannot exceed zamax 798 !---------------------------------------------------- 789 ! 2.13.1) total (and thus individual) concentrations cannot exceed zamax 790 !----------------------------------------------------------------------- 791 799 792 at_i(:,:) = a_i(:,:,1) 800 793 DO jl = 2, jpl 801 at_i(:,:) = a _i(:,:,jl) + at_i(:,:)794 at_i(:,:) = at_i(:,:) + a_i(:,:,jl) 802 795 END DO 803 796 … … 806 799 807 800 ! 0) Excessive area ? 808 z_da_ex = MAX( at_i(ji,jj) - zamax , 0. 0)801 z_da_ex = MAX( at_i(ji,jj) - zamax , 0._wp ) 809 802 810 803 ! 1) Count the number of existing categories … … 831 824 at_i(:,:) = a_i(:,:,1) 832 825 DO jl = 2, jpl 833 at_i(:,:) = a _i(:,:,jl) + at_i(:,:)826 at_i(:,:) = at_i(:,:) + a_i(:,:,jl) 834 827 END DO 835 828 … … 886 879 at_i(:,:) = a_i(:,:,1) 887 880 DO jl = 2, jpl 888 at_i(:,:) = a _i(:,:,jl) + at_i(:,:)881 at_i(:,:) = at_i(:,:) + a_i(:,:,jl) 889 882 END DO 890 883 … … 894 887 ! Ice drift 895 888 !------------ 889 !!gm BUG ? I don't understand this : it may have a wrong impact on the ice edge advection 890 !!gm and any way there is much faster way to code that... 896 891 DO jj = 2, jpjm1 897 892 DO ji = fs_2, fs_jpim1 … … 905 900 END DO 906 901 !mask velocities 902 !!gm BUG ? here the mask are the one of the beginning of the time step, no? 903 !!gm whereas at this level they should have been updated... To be checked 907 904 u_ice(:,:) = u_ice(:,:) * tmu(:,:) 908 905 v_ice(:,:) = v_ice(:,:) * tmv(:,:)
Note: See TracChangeset
for help on using the changeset viewer.