Changeset 3414
- Timestamp:
- 2012-06-15T14:53:43+02:00 (12 years ago)
- Location:
- branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/ice_2.F90
r3396 r3414 158 158 & rdm_ice(jpi,jpj) , rdq_ice(jpi,jpj) , & 159 159 & qldif (jpi,jpj) , qcmif (jpi,jpj) , fdtcn (jpi,jpj) , & 160 & qldif (jpi,jpj) , qcmif (jpi,jpj) , fdtcn (jpi,jpj) , &161 160 & qdtcn (jpi,jpj) , thcm (jpi,jpj) , STAT=ierr(4) ) 162 161 -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90
r3294 r3414 30 30 USE in_out_manager ! I/O manager 31 31 USE prtctl ! Print control 32 USE oce, ONLY : snwice_mass, snwice_mass_b 32 33 33 34 IMPLICIT NONE … … 80 81 REAL(wp) :: zs21_11, zs21_12, zs21_21, zs21_22 81 82 REAL(wp) :: zs22_11, zs22_12, zs22_21, zs22_22 83 REAL(wp) :: zintb, zintn 82 84 REAL(wp), POINTER, DIMENSION(:,:) :: zfrld, zmass, zcorl 83 85 REAL(wp), POINTER, DIMENSION(:,:) :: za1ct, za2ct, zresr 84 86 REAL(wp), POINTER, DIMENSION(:,:) :: zc1u, zc1v, zc2u, zc2v 85 REAL(wp), POINTER, DIMENSION(:,:) :: zsang 87 REAL(wp), POINTER, DIMENSION(:,:) :: zsang, zpice 86 88 REAL(wp), POINTER, DIMENSION(:,:) :: zu0, zv0 87 89 REAL(wp), POINTER, DIMENSION(:,:) :: zu_n, zv_n … … 93 95 94 96 CALL wrk_alloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 95 CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang )97 CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 96 98 CALL wrk_alloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 97 99 CALL wrk_alloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) … … 129 131 !i zviszeta(:,jpj+1) = 0._wp ; zviseta(:,jpj+1) = 0._wp 130 132 133 IF( nn_ice_embd == 2 ) THEN !== embedded sea ice: compute representative ice top surface ==! 134 ! 135 ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} 136 ! = (1/nn_fsbc)^2 * {SUM[n], n=0,nn_fsbc-1} 137 zintn = REAL( nn_fsbc - 1 ) / REAL( nn_fsbc ) * 0.5_wp 138 ! 139 ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[1-n/nn_fsbc], n=0,nn_fsbc-1} 140 ! = (1/nn_fsbc)^2 * (nn_fsbc^2 - {SUM[n], n=0,nn_fsbc-1}) 141 zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 142 ! 143 zpice(:,:) = ssh_m(:,:) + ( zintn * snwice_mass(:,:) + zintb * snwice_mass_b(:,:) ) * r1_rau0 144 ! 145 ! 146 ELSE !== non-embedded sea ice: use ocean surface for slope calculation ==! 147 zpice(:,:) = ssh_m(:,:) 148 ENDIF 131 149 132 150 ! Ice mass, ice strength, and wind stress at the center | … … 196 214 197 215 ! Gradient of the sea surface height 198 zgsshx = ( ( ssh_m(ji ,jj ) - ssh_m(ji-1,jj ))/e1u(ji-1,jj ) &199 & + ( ssh_m(ji ,jj-1) - ssh_m(ji-1,jj-1))/e1u(ji-1,jj-1) ) * 0.5_wp200 zgsshy = ( ( ssh_m(ji ,jj ) - ssh_m(ji ,jj-1))/e2v(ji ,jj-1) &201 & + ( ssh_m(ji-1,jj ) - ssh_m(ji-1,jj-1))/e2v(ji-1,jj-1) ) * 0.5_wp216 zgsshx = ( (zpice(ji ,jj ) - zpice(ji-1,jj ))/e1u(ji-1,jj ) & 217 & + (zpice(ji ,jj-1) - zpice(ji-1,jj-1))/e1u(ji-1,jj-1) ) * 0.5_wp 218 zgsshy = ( (zpice(ji ,jj ) - zpice(ji ,jj-1))/e2v(ji ,jj-1) & 219 & + (zpice(ji-1,jj ) - zpice(ji-1,jj-1))/e2v(ji-1,jj-1) ) * 0.5_wp 202 220 203 221 ! Computation of the velocity field taking into account the ice-ice interaction. … … 575 593 576 594 CALL wrk_dealloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 577 CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang )595 CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 578 596 CALL wrk_dealloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 579 597 CALL wrk_dealloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90
r3402 r3414 470 470 ENDIF 471 471 IF( nn_ice_embd == 2 .AND. & ! full embedment (case 2) & no restart : 472 & .NOT.ln_rstart ) THEN ! deplete the initial ssh bel ew sea-ice area472 & .NOT.ln_rstart ) THEN ! deplete the initial ssh below sea-ice area 473 473 sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 474 474 sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r3294 r3414 35 35 USE dom_ice_2 ! LIM2: ice domain 36 36 #endif 37 USE oce, ONLY : snwice_mass, snwice_mass_b 37 38 38 39 IMPLICIT NONE … … 124 125 REAL(wp) :: zindb ! ice (1) or not (0) 125 126 REAL(wp) :: zdummy ! dummy argument 127 REAL(wp) :: zintb, zintn ! dummy argument 126 128 127 129 REAL(wp), POINTER, DIMENSION(:,:) :: zpresh ! temporary array for ice strength … … 144 146 REAL(wp), POINTER, DIMENSION(:,:) :: zs12 ! Non-diagonal stress tensor component zs12 145 147 REAL(wp), POINTER, DIMENSION(:,:) :: zu_ice, zv_ice, zresr ! Local error on velocity 148 REAL(wp), POINTER, DIMENSION(:,:) :: zpice ! array used for the calculation of ice surface slope: 149 ! ocean surface (ssh_m) if ice is not embedded 150 ! ice top surface if ice is embedded 146 151 147 152 !!------------------------------------------------------------------- … … 150 155 CALL wrk_alloc( jpi,jpj, zc1 , u_oce1, u_oce2, u_ice2, zusw , v_oce1 , v_oce2, v_ice1 ) 151 156 CALL wrk_alloc( jpi,jpj, zf1 , deltat, zu_ice, zf2 , deltac, zv_ice , zdd , zdt , zds ) 152 CALL wrk_alloc( jpi,jpj, zdd , zdt , zds , zs1 , zs2 , zs12 , zresr 157 CALL wrk_alloc( jpi,jpj, zdd , zdt , zds , zs1 , zs2 , zs12 , zresr , zpice ) 153 158 154 159 #if defined key_lim2 && ! defined key_lim2_vp … … 231 236 ! v_oce2: ocean v component on v points 232 237 238 IF( nn_ice_embd == 2 ) THEN !== embedded sea ice: compute representative ice top surface ==! 239 ! 240 ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} 241 ! = (1/nn_fsbc)^2 * {SUM[n], n=0,nn_fsbc-1} 242 zintn = REAL( nn_fsbc - 1 ) / REAL( nn_fsbc ) * 0.5_wp 243 ! 244 ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[1-n/nn_fsbc], n=0,nn_fsbc-1} 245 ! = (1/nn_fsbc)^2 * (nn_fsbc^2 - {SUM[n], n=0,nn_fsbc-1}) 246 zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 247 ! 248 zpice(:,:) = ssh_m(:,:) + ( zintn * snwice_mass(:,:) + zintb * snwice_mass_b(:,:) ) * r1_rau0 249 ! 250 ELSE !== non-embedded sea ice: use ocean surface for slope calculation ==! 251 zpice(:,:) = ssh_m(:,:) 252 ENDIF 253 233 254 DO jj = k_j1+1, k_jpj-1 234 255 DO ji = fs_2, fs_jpim1 … … 273 294 ! include it later 274 295 275 zdsshx = ( ssh_m(ji+1,jj) - ssh_m(ji,jj) ) / e1u(ji,jj)276 zdsshy = ( ssh_m(ji,jj+1) - ssh_m(ji,jj) ) / e2v(ji,jj)296 zdsshx = ( zpice(ji+1,jj) - zpice(ji,jj) ) / e1u(ji,jj) 297 zdsshy = ( zpice(ji,jj+1) - zpice(ji,jj) ) / e2v(ji,jj) 277 298 278 299 za1ct(ji,jj) = ztagnx - zmass1(ji,jj) * grav * zdsshx … … 746 767 CALL wrk_dealloc( jpi,jpj, zc1 , u_oce1, u_oce2, u_ice2, zusw , v_oce1 , v_oce2, v_ice1 ) 747 768 CALL wrk_dealloc( jpi,jpj, zf1 , deltat, zu_ice, zf2 , deltac, zv_ice , zdd , zdt , zds ) 748 CALL wrk_dealloc( jpi,jpj, zdd , zdt , zds , zs1 , zs2 , zs12 , zresr 769 CALL wrk_dealloc( jpi,jpj, zdd , zdt , zds , zs1 , zs2 , zs12 , zresr , zpice ) 749 770 750 771 END SUBROUTINE lim_rhg -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
r3294 r3414 255 255 wndm(:,:) = sf_dyn(jf_wnd)%fnow(:,:,1) * tmask(:,:,1) ! wind speed - needed for gas exchange 256 256 emp (:,:) = sf_dyn(jf_emp)%fnow(:,:,1) * tmask(:,:,1) ! E-P 257 emps(:,:) = emp(:,:)257 sfx (:,:) = emp(:,:) 258 258 fr_i(:,:) = sf_dyn(jf_ice)%fnow(:,:,1) * tmask(:,:,1) ! Sea-ice fraction 259 259 qsr (:,:) = sf_dyn(jf_qsr)%fnow(:,:,1) * tmask(:,:,1) ! solar radiation … … 302 302 CALL prt_ctl(tab2d_1=fr_i , clinfo1=' fr_i - : ', mask1=tmask, ovlap=1 ) 303 303 CALL prt_ctl(tab2d_1=hmld , clinfo1=' hmld - : ', mask1=tmask, ovlap=1 ) 304 CALL prt_ctl(tab2d_1= emps , clinfo1=' emps- : ', mask1=tmask, ovlap=1 )304 CALL prt_ctl(tab2d_1=sfx , clinfo1=' sfx - : ', mask1=tmask, ovlap=1 ) 305 305 CALL prt_ctl(tab2d_1=wndm , clinfo1=' wspd - : ', mask1=tmask, ovlap=1 ) 306 306 CALL prt_ctl(tab2d_1=qsr , clinfo1=' qsr - : ', mask1=tmask, ovlap=1 )
Note: See TracChangeset
for help on using the changeset viewer.