- Timestamp:
- 2012-06-15T14:53:43+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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 )
Note: See TracChangeset
for help on using the changeset viewer.