- Timestamp:
- 2015-12-16T10:25:22+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
r5930 r6060 49 49 50 50 !! * Substitutions 51 # include "domzgr_substitute.h90"52 51 # include "vectopt_loop_substitute.h90" 53 52 !!---------------------------------------------------------------------- … … 120 119 ENDIF 121 120 ENDIF 122 ! 123 ! - ML - sshn could be modified by istate_eel, so that initialization of fse3t_b is done here 124 IF( lk_vvl ) THEN 121 ! 122 !!gm This is to be changed !!!! 123 ! - ML - sshn could be modified by istate_eel, so that initialization of e3t_b is done here 124 IF( .NOT.ln_linssh ) THEN 125 125 DO jk = 1, jpk 126 fse3t_b(:,:,jk) = fse3t_n(:,:,jk)126 e3t_b(:,:,jk) = e3t_n(:,:,jk) 127 127 END DO 128 128 ENDIF 129 !!gm 129 130 ! 130 131 ENDIF 131 !132 132 ! 133 133 ! Initialize "now" and "before" barotropic velocities: 134 ! Do it whatever the free surface method, these arrays 135 ! being eventually used 136 ! 134 ! Do it whatever the free surface method, these arrays being eventually used 137 135 ! 138 136 un_b(:,:) = 0._wp ; vn_b(:,:) = 0._wp 139 137 ub_b(:,:) = 0._wp ; vb_b(:,:) = 0._wp 140 138 ! 139 !!gm the use of umsak & vmask is not necessary belox as un, vn, ub, vb are always masked 141 140 DO jk = 1, jpkm1 142 141 DO jj = 1, jpj 143 142 DO ji = 1, jpi 144 un_b(ji,jj) = un_b(ji,jj) + fse3u_n(ji,jj,jk) * un(ji,jj,jk) * umask(ji,jj,jk)145 vn_b(ji,jj) = vn_b(ji,jj) + fse3v_n(ji,jj,jk) * vn(ji,jj,jk) * vmask(ji,jj,jk)143 un_b(ji,jj) = un_b(ji,jj) + e3u_n(ji,jj,jk) * un(ji,jj,jk) * umask(ji,jj,jk) 144 vn_b(ji,jj) = vn_b(ji,jj) + e3v_n(ji,jj,jk) * vn(ji,jj,jk) * vmask(ji,jj,jk) 146 145 ! 147 ub_b(ji,jj) = ub_b(ji,jj) + fse3u_b(ji,jj,jk) * ub(ji,jj,jk) * umask(ji,jj,jk)148 vb_b(ji,jj) = vb_b(ji,jj) + fse3v_b(ji,jj,jk) * vb(ji,jj,jk) * vmask(ji,jj,jk)146 ub_b(ji,jj) = ub_b(ji,jj) + e3u_b(ji,jj,jk) * ub(ji,jj,jk) * umask(ji,jj,jk) 147 vb_b(ji,jj) = vb_b(ji,jj) + e3v_b(ji,jj,jk) * vb(ji,jj,jk) * vmask(ji,jj,jk) 149 148 END DO 150 149 END DO 151 150 END DO 152 151 ! 153 un_b(:,:) = un_b(:,:) * hur (:,:) 154 vn_b(:,:) = vn_b(:,:) * hvr (:,:) 155 ! 156 ub_b(:,:) = ub_b(:,:) * hur_b(:,:) 157 vb_b(:,:) = vb_b(:,:) * hvr_b(:,:) 158 ! 152 un_b(:,:) = un_b(:,:) * r1_hu_n(:,:) 153 vn_b(:,:) = vn_b(:,:) * r1_hv_n(:,:) 154 ! 155 ub_b(:,:) = ub_b(:,:) * r1_hu_b(:,:) 156 vb_b(:,:) = vb_b(:,:) * r1_hv_b(:,:) 159 157 ! 160 158 IF( nn_timing == 1 ) CALL timing_stop('istate_init') … … 184 182 ! 185 183 DO jk = 1, jpk 186 tsn(:,:,jk,jp_tem) = ( ( ( 7.5 - 0. * ABS( gphit(:,:) )/30. ) * ( 1.-TANH(( fsdept(:,:,jk)-80.)/30.) ) &187 & + 10. * ( 5000. - fsdept(:,:,jk) ) /5000.) ) * tmask(:,:,jk)184 tsn(:,:,jk,jp_tem) = ( ( ( 7.5 - 0. * ABS( gphit(:,:) )/30. ) * ( 1.-TANH((gdept_n(:,:,jk)-80.)/30.) ) & 185 & + 10. * ( 5000. - gdept_n(:,:,jk) ) /5000.) ) * tmask(:,:,jk) 188 186 tsb(:,:,jk,jp_tem) = tsn(:,:,jk,jp_tem) 189 187 END DO … … 238 236 ! 239 237 DO jk = 1, jpk 240 tsn(:,:,jk,jp_tem) = ( zt2 + zt1 * exp( - fsdept(:,:,jk) / 1000 ) ) * tmask(:,:,jk)238 tsn(:,:,jk,jp_tem) = ( zt2 + zt1 * exp( - gdept_n(:,:,jk) / 1000 ) ) * tmask(:,:,jk) 241 239 tsb(:,:,jk,jp_tem) = tsn(:,:,jk,jp_tem) 242 240 END DO 243 !244 IF(lwp) CALL prizre( tsn(:,:,:,jp_tem), jpi , jpj , jpk , jpj/2 , &245 & 1 , jpi , 5 , 1 , jpk , &246 & 1 , 1. , numout )247 241 ! 248 242 ! set salinity field to a constant value … … 314 308 tsn(:,:,:,jp_tem) = tsb(:,:,:,jp_tem) ! set nox temperature to tb 315 309 ! 316 IF(lwp) CALL prizre( tsn(:,:,:,jp_tem), jpi , jpj , jpk , jpj/2 , &317 & 1 , jpi , 5 , 1 , jpk , &318 & 1 , 1. , numout )319 !320 310 ! set salinity field to a constant value 321 311 ! -------------------------------------- … … 363 353 DO jj = 1, jpj 364 354 DO ji = 1, jpi 365 tsn(ji,jj,jk,jp_tem) = ( 16. - 12. * TANH( ( fsdept(ji,jj,jk) - 400) / 700 ) ) &366 & * (-TANH( (500- fsdept(ji,jj,jk)) / 150 ) + 1) / 2 &367 & + ( 15. * ( 1. - TANH( ( fsdept(ji,jj,jk)-50.) / 1500.) ) &368 & - 1.4 * TANH(( fsdept(ji,jj,jk)-100.) / 100.) &369 & + 7. * (1500. - fsdept(ji,jj,jk)) / 1500. ) &370 & * (-TANH( ( fsdept(ji,jj,jk) - 500) / 150) + 1) / 2355 tsn(ji,jj,jk,jp_tem) = ( 16. - 12. * TANH( (gdept_n(ji,jj,jk) - 400) / 700 ) ) & 356 & * (-TANH( (500-gdept_n(ji,jj,jk)) / 150 ) + 1) / 2 & 357 & + ( 15. * ( 1. - TANH( (gdept_n(ji,jj,jk)-50.) / 1500.) ) & 358 & - 1.4 * TANH((gdept_n(ji,jj,jk)-100.) / 100.) & 359 & + 7. * (1500. - gdept_n(ji,jj,jk)) / 1500. ) & 360 & * (-TANH( (gdept_n(ji,jj,jk) - 500) / 150) + 1) / 2 371 361 tsn(ji,jj,jk,jp_tem) = tsn(ji,jj,jk,jp_tem) * tmask(ji,jj,jk) 372 362 tsb(ji,jj,jk,jp_tem) = tsn(ji,jj,jk,jp_tem) 373 363 374 tsn(ji,jj,jk,jp_sal) = ( 36.25 - 1.13 * TANH( ( fsdept(ji,jj,jk) - 305) / 460 ) ) &375 & * (-TANH((500 - fsdept(ji,jj,jk)) / 150) + 1) / 2 &376 & + ( 35.55 + 1.25 * (5000. - fsdept(ji,jj,jk)) / 5000. &377 & - 1.62 * TANH( ( fsdept(ji,jj,jk) - 60. ) / 650. ) &378 & + 0.2 * TANH( ( fsdept(ji,jj,jk) - 35. ) / 100. ) &379 & + 0.2 * TANH( ( fsdept(ji,jj,jk) - 1000.) / 5000.) ) &380 & * (-TANH(( fsdept(ji,jj,jk) - 500) / 150) + 1) / 2364 tsn(ji,jj,jk,jp_sal) = ( 36.25 - 1.13 * TANH( (gdept_n(ji,jj,jk) - 305) / 460 ) ) & 365 & * (-TANH((500 - gdept_n(ji,jj,jk)) / 150) + 1) / 2 & 366 & + ( 35.55 + 1.25 * (5000. - gdept_n(ji,jj,jk)) / 5000. & 367 & - 1.62 * TANH( (gdept_n(ji,jj,jk) - 60. ) / 650. ) & 368 & + 0.2 * TANH( (gdept_n(ji,jj,jk) - 35. ) / 100. ) & 369 & + 0.2 * TANH( (gdept_n(ji,jj,jk) - 1000.) / 5000.) ) & 370 & * (-TANH((gdept_n(ji,jj,jk) - 500) / 150) + 1) / 2 381 371 tsn(ji,jj,jk,jp_sal) = tsn(ji,jj,jk,jp_sal) * tmask(ji,jj,jk) 382 372 tsb(ji,jj,jk,jp_sal) = tsn(ji,jj,jk,jp_sal) … … 451 441 zalfg = 0.5 * grav * rau0 452 442 453 zprn(:,:,1) = zalfg * fse3w(:,:,1) * ( 1 + rhd(:,:,1) ) ! Surface value443 zprn(:,:,1) = zalfg * e3w_n(:,:,1) * ( 1 + rhd(:,:,1) ) ! Surface value 454 444 455 445 DO jk = 2, jpkm1 ! Vertical integration from the surface 456 446 zprn(:,:,jk) = zprn(:,:,jk-1) & 457 & + zalfg * fse3w(:,:,jk) * ( 2. + rhd(:,:,jk) + rhd(:,:,jk-1) )447 & + zalfg * e3w_n(:,:,jk) * ( 2. + rhd(:,:,jk) + rhd(:,:,jk-1) ) 458 448 END DO 459 449
Note: See TracChangeset
for help on using the changeset viewer.