Changeset 7698 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
- Timestamp:
- 2017-02-18T10:02:03+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
r7646 r7698 110 110 !---------------------------------------------! 111 111 IF( ln_limdyn ) THEN 112 zu_io(:,:) = u_ice(:,:) - ssu_m(:,:) 113 zv_io(:,:) = v_ice(:,:) - ssv_m(:,:) 112 !$OMP PARALLEL 113 !$OMP DO schedule(static) private(jj,ji) 114 DO jj = 1, jpj 115 DO ji = 1, jpi 116 zu_io(ji,jj) = u_ice(ji,jj) - ssu_m(ji,jj) 117 zv_io(ji,jj) = v_ice(ji,jj) - ssv_m(ji,jj) 118 END DO 119 END DO 120 !$OMP DO schedule(static) private(jj,ji) 114 121 DO jj = 2, jpjm1 115 122 DO ji = fs_2, fs_jpim1 … … 119 126 END DO 120 127 END DO 128 !$OMP END PARALLEL 121 129 ELSE ! if no ice dynamics => transmit directly the atmospheric stress to the ocean 130 !$OMP PARALLEL DO schedule(static) private(jj,ji) 122 131 DO jj = 2, jpjm1 123 132 DO ji = fs_2, fs_jpim1 … … 133 142 ! Initialization and units change 134 143 !----------------------------------! 135 ftr_ice(:,:,:) = 0._wp ! part of solar radiation transmitted through the ice 144 !$OMP PARALLEL 145 DO jl = 1, jpl 146 !$OMP DO schedule(static) private(jj,ji) 147 DO jj = 1, jpj 148 DO ji = 1, jpi 149 ftr_ice(ji,jj,jl) = 0._wp ! part of solar radiation transmitted through the ice 150 END DO 151 END DO 152 END DO 136 153 137 154 ! Change the units of heat content; from J/m2 to J/m3 138 155 DO jl = 1, jpl 139 156 DO jk = 1, nlay_i 157 !$OMP DO schedule(static) private(jj,ji,rswitch) 140 158 DO jj = 1, jpj 141 159 DO ji = 1, jpi … … 147 165 END DO 148 166 DO jk = 1, nlay_s 167 !$OMP DO schedule(static) private(jj,ji,rswitch) 149 168 DO jj = 1, jpj 150 169 DO ji = 1, jpi … … 160 179 ! Partial computation of forcing for the thermodynamic sea ice model 161 180 !--------------------------------------------------------------------! 181 !$OMP DO schedule(static) private(jj,ji,rswitch,zqld,zqfr,zfric_u) 162 182 DO jj = 1, jpj 163 183 DO ji = 1, jpi … … 201 221 END DO 202 222 END DO 223 !$OMP END PARALLEL 203 224 204 225 ! In case we bypass open-water ice formation 205 IF( .NOT. ln_limdO ) qlead(:,:) = 0._wp 226 IF( .NOT. ln_limdO ) THEN 227 !$OMP PARALLEL DO schedule(static) private(jj,ji) 228 DO jj = 1, jpj 229 DO ji = 1, jpi 230 qlead(ji,jj) = 0._wp 231 END DO 232 END DO 233 END IF 206 234 ! In case we bypass growing/melting from top and bottom: we suppose ice is impermeable => ocean is isolated from atmosphere 207 IF( .NOT. ln_limdH ) hfx_in(:,:) = pfrld(:,:) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 208 IF( .NOT. ln_limdH ) fhtur (:,:) = 0._wp ; fhld (:,:) = 0._wp 235 IF( .NOT. ln_limdH ) THEN 236 !$OMP PARALLEL DO schedule(static) private(jj,ji) 237 DO jj = 1, jpj 238 DO ji = 1, jpi 239 hfx_in(ji,jj) = pfrld(ji,jj) * ( qns_oce(ji,jj) + qsr_oce(ji,jj) ) + qemp_oce(ji,jj) 240 fhtur (ji,jj) = 0._wp 241 END DO 242 END DO 243 END IF 244 !$OMP PARALLEL 245 !$OMP DO schedule(static) private(jj,ji) 246 DO jj = 1, jpj 247 DO ji = 1, jpi 248 fhld (ji,jj) = 0._wp 249 END DO 250 END DO 209 251 210 252 ! --------------------------------------------------------------------- … … 214 256 ! Second step in limthd_dh : heat remaining if total melt (zq_rema) 215 257 ! Third step in limsbc : heat from ice-ocean mass exchange (zf_mass) + solar 258 !$OMP DO schedule(static) private(jj,ji) 216 259 DO jj = 1, jpj 217 260 DO ji = 1, jpi … … 223 266 END DO 224 267 END DO 268 !$OMP END PARALLEL 225 269 226 270 !------------------------------------------------------------------------------! … … 288 332 289 333 ! Enthalpies are global variables we have to readjust the units (heat content in J/m2) 334 !$OMP PARALLEL 290 335 DO jl = 1, jpl 291 336 DO jk = 1, nlay_i 292 e_i(:,:,jk,jl) = e_i(:,:,jk,jl) * a_i(:,:,jl) * ht_i(:,:,jl) * r1_nlay_i 337 !$OMP DO schedule(static) private(jj,ji) 338 DO jj = 1, jpj 339 DO ji = 1, jpi 340 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * a_i(ji,jj,jl) * ht_i(ji,jj,jl) * r1_nlay_i 341 END DO 342 END DO 293 343 END DO 294 344 DO jk = 1, nlay_s 295 e_s(:,:,jk,jl) = e_s(:,:,jk,jl) * a_i(:,:,jl) * ht_s(:,:,jl) * r1_nlay_s 296 END DO 297 END DO 298 299 ! Change thickness to volume 300 v_i(:,:,:) = ht_i(:,:,:) * a_i(:,:,:) 301 v_s(:,:,:) = ht_s(:,:,:) * a_i(:,:,:) 302 smv_i(:,:,:) = sm_i(:,:,:) * v_i(:,:,:) 345 !$OMP DO schedule(static) private(jj,ji) 346 DO jj = 1, jpj 347 DO ji = 1, jpi 348 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * a_i(ji,jj,jl) * ht_s(ji,jj,jl) * r1_nlay_s 349 END DO 350 END DO 351 END DO 352 END DO 353 354 ! Change thickness to volume 355 DO jl = 1, jpl 356 !$OMP DO schedule(static) private(jj,ji) 357 DO jj = 1, jpj 358 DO ji = 1, jpi 359 v_i(ji,jj,jl) = ht_i(ji,jj,jl) * a_i(ji,jj,jl) 360 v_s(ji,jj,jl) = ht_s(ji,jj,jl) * a_i(ji,jj,jl) 361 smv_i(ji,jj,jl) = sm_i(ji,jj,jl) * v_i(ji,jj,jl) 362 END DO 363 END DO 364 END DO 303 365 304 366 ! update ice age (in case a_i changed, i.e. becomes 0 or lateral melting in monocat) 305 367 DO jl = 1, jpl 368 !$OMP DO schedule(static) private(jj,ji,rswitch) 306 369 DO jj = 1, jpj 307 370 DO ji = 1, jpi … … 311 374 END DO 312 375 END DO 376 !$OMP END PARALLEL 313 377 314 378 CALL lim_var_zapsmall
Note: See TracChangeset
for help on using the changeset viewer.