- Timestamp:
- 2011-12-11T16:00:26+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
r2715 r3211 50 50 PUBLIC istate_init ! routine called by step.F90 51 51 52 !! * Control permutation of array indices 53 # include "oce_ftrans.h90" 54 # include "dom_oce_ftrans.h90" 55 # include "ldftra_oce_ftrans.h90" 56 # include "zdf_oce_ftrans.h90" 57 # include "dtatem_ftrans.h90" 58 # include "dtasal_ftrans.h90" 59 # include "domvvl_ftrans.h90" 60 52 61 !! * Substitutions 53 62 # include "domzgr_substitute.h90" … … 67 76 !!---------------------------------------------------------------------- 68 77 ! - ML - needed for initialization of e3t_b 69 INTEGER :: j k ! dummy loop indice78 INTEGER :: ji, jj, jk ! dummy loop indices 70 79 71 80 IF(lwp) WRITE(numout,*) … … 134 143 ! - ML - sshn could be modified by istate_eel, so that initialization of fse3t_b is done here 135 144 IF( lk_vvl ) THEN 145 #if defined key_z_first 146 fse3t_b(:,:,:) = fse3t_n(:,:,:) 147 #else 136 148 DO jk = 1, jpk 137 149 fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 138 150 ENDDO 151 #endif 139 152 ENDIF 140 153 ! … … 169 182 IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 170 183 ! 184 #if defined key_z_first 185 DO jj = 1, jpj 186 DO ji = 1, jpi 187 DO jk = 1, jpk 188 #else 171 189 DO jk = 1, jpk 172 190 DO jj = 1, jpj 173 191 DO ji = 1, jpi 192 #endif 174 193 tn(ji,jj,jk) = ( ( ( 7.5 - 0.*ABS(gphit(ji,jj))/30. ) & 175 194 & *( 1.-TANH((fsdept(ji,jj,jk)-80.)/30.) ) & … … 253 272 zcst = ( zt1 * ( zh1 - zh2) - ( zt1 - zt2 ) * zh1 ) / ( zh1 - zh2 ) 254 273 ! 274 #if defined key_z_first 275 DO jj = 1, jpj 276 DO ji = 1, jpi 277 DO jk = 1, jpk 278 tn(ji,jj,jk) = ( zt2 + zt1 * exp( - fsdept(ji,jj,jk) / 1000 ) ) * tmask(ji,jj,jk) 279 tb(ji,jj,jk) = tn(ji,jj,jk) 280 END DO 281 END DO 282 END DO 283 #else 255 284 DO jk = 1, jpk 256 285 tn(:,:,jk) = ( zt2 + zt1 * exp( - fsdept(:,:,jk) / 1000 ) ) * tmask(:,:,jk) 257 286 tb(:,:,jk) = tn(:,:,jk) 258 287 END DO 288 #endif 259 289 ! 260 290 IF(lwp) CALL prizre( tn , jpi , jpj , jpk , jpj/2 , & … … 294 324 DO jj = 1, nlcj 295 325 DO ji = 1, nlci 326 #if defined key_z_first 327 sshb(ji,jj) = zssh( mig(ji) , mjg(jj) ) * tmask_1(ji,jj) 328 #else 296 329 sshb(ji,jj) = zssh( mig(ji) , mjg(jj) ) * tmask(ji,jj,1) 330 #endif 297 331 END DO 298 332 END DO … … 374 408 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 375 409 410 #if defined key_z_first 411 DO jj = 1, jpj 412 DO ji = 1, jpi 413 DO jk = 1, jpk 414 #else 376 415 DO jk = 1, jpk 377 416 DO jj = 1, jpj 378 417 DO ji = 1, jpi 418 #endif 379 419 tn(ji,jj,jk) = ( 16. - 12. * TANH( (fsdept(ji,jj,jk) - 400) / 700 ) ) & 380 420 & * (-TANH( (500-fsdept(ji,jj,jk)) / 150 ) + 1) / 2 & … … 448 488 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 449 489 USE wrk_nemo, ONLY: zprn => wrk_3d_1 ! 3D workspace 490 !! DCSE_NEMO: wrk_3d_1 renamed, need additional directive 491 !FTRANS zprn :I :I :z 450 492 451 493 USE dynspg ! surface pressure gradient (dyn_spg routine) … … 473 515 zprn(:,:,1) = zalfg * fse3w(:,:,1) * ( 1 + rhd(:,:,1) ) ! Surface value 474 516 517 #if defined key_z_first 518 DO jj = 1, jpj 519 DO ji = 1, jpi 520 DO jk = 2, jpkm1 ! Vertical integration from the surface 521 zprn(ji,jj,jk) = zprn(ji,jj,jk-1) & 522 & + zalfg * fse3w(ji,jj,jk) * ( 2. + rhd(ji,jj,jk) + rhd(ji,jj,jk-1) ) 523 END DO 524 END DO 525 END DO 526 #else 475 527 DO jk = 2, jpkm1 ! Vertical integration from the surface 476 528 zprn(:,:,jk) = zprn(:,:,jk-1) & 477 529 & + zalfg * fse3w(:,:,jk) * ( 2. + rhd(:,:,jk) + rhd(:,:,jk-1) ) 478 530 END DO 531 #endif 479 532 480 533 ! Compute geostrophic balance 481 534 ! --------------------------- 535 #if defined key_z_first 536 DO jj = 2, jpjm1 537 DO ji = 2, jpim1 538 DO jk = 1, jpkm1 539 #else 482 540 DO jk = 1, jpkm1 483 541 DO jj = 2, jpjm1 484 DO ji = fs_2, fs_jpim1 ! vertor opt. 542 DO ji = fs_2, fs_jpim1 ! vector opt. 543 #endif 485 544 zmsv = 1. / MAX( umask(ji-1,jj+1,jk) + umask(ji ,jj+1,jk) & 486 545 + umask(ji-1,jj ,jk) + umask(ji ,jj ,jk) , 1. ) … … 511 570 ! to have a zero bottom velocity 512 571 572 #if defined key_z_first 573 DO jj = 1, jpj 574 DO ji = 1, jpi 575 DO jk = 1, jpkm1 576 un(ji,jj,jk) = ( un(ji,jj,jk) - un(ji,jj,jpkm1) ) * umask(ji,jj,jk) 577 vn(ji,jj,jk) = ( vn(ji,jj,jk) - vn(ji,jj,jpkm1) ) * vmask(ji,jj,jk) 578 END DO 579 END DO 580 END DO 581 #else 513 582 DO jk = 1, jpkm1 514 583 un(:,:,jk) = ( un(:,:,jk) - un(:,:,jpkm1) ) * umask(:,:,jk) 515 584 vn(:,:,jk) = ( vn(:,:,jk) - vn(:,:,jpkm1) ) * vmask(:,:,jk) 516 585 END DO 586 #endif 517 587 518 588 CALL lbc_lnk( un, 'U', -1. )
Note: See TracChangeset
for help on using the changeset viewer.