Changeset 93 for trunk/NEMO/OPA_SRC/istate.F90
- Timestamp:
- 2004-06-25T08:33:00+02:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/istate.F90
r79 r93 10 10 !! istate_sal : analytical profile for initial Salinity 11 11 !! istate_eel : initial state setting of EEL R5 configuration 12 !! istate_gyre : initial state setting of GYRE configuration 12 13 !! istate_uvg : initial velocity in geostropic balance 13 14 !!---------------------------------------------------------------------- … … 98 99 adatrj = 0._wp 99 100 IF( cp_cfg == 'eel' ) THEN 100 CALL istate_eel ! EEL configuration : start from pre-defined 101 ! ! velocity and thermohaline fields 101 CALL istate_eel ! EEL configuration : start from pre-defined 102 ! ! velocity and thermohaline fields 103 ELSEIF( cp_cfg == 'gyre') THEN 104 CALL istate_gyre ! GYRE configuration : start from pre-defined temperature 105 ! ! and salinity fields 102 106 ELSE 103 ! ! Initial temperature and salinity fields107 ! ! Other configurations: Initial temperature and salinity fields 104 108 #if defined key_dtatem 105 109 CALL dta_tem( nit000 ) ! read 3D temperature data … … 375 379 376 380 381 SUBROUTINE istate_gyre 382 !!---------------------------------------------------------------------- 383 !! *** ROUTINE istate_gyre *** 384 !! 385 !! ** Purpose : Initialization of the dynamics and tracers for GYRE 386 !! configuration (double gyre with rotated domain) 387 !! 388 !! ** Method : - set temprature field 389 !! - set salinity field 390 !! 391 !! ** History : 392 !! 9.0 ! 04-05 (A. Koch-Larrouy) Original code 393 !!---------------------------------------------------------------------- 394 !! * Local variables 395 INTEGER :: ji, jj, jk ! dummy loop indices 396 !!---------------------------------------------------------------------- 397 398 IF(lwp) WRITE(numout,*) 399 IF(lwp) WRITE(numout,*) 'istate_gyre : initial analytical T and S profil deduced from LEVITUS ' 400 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 401 402 DO jk = 1, jpk 403 DO jj = 1, jpj 404 DO ji = 1, jpi 405 tn(ji,jj,jk) = ( 16. - 12. * TANH( (fsdept(ji,jj,jk) - 400) / 700 ) ) & 406 & * (-TANH( (500-fsdept(ji,jj,jk)) / 150 ) + 1) / 2 & 407 & + ( 15. * ( 1. - TANH( (fsdept(ji,jj,jk)-50.) / 1500.) ) & 408 & - 1.4 * TANH((fsdept(ji,jj,jk)-100.) / 100.) & 409 & + 7. * (1500. - fsdept(ji,jj,jk)) / 1500. ) & 410 & * (-TANH( (fsdept(ji,jj,jk) - 500) / 150) + 1) / 2 411 tn(ji,jj,jk) = tn(ji,jj,jk) * tmask(ji,jj,jk) 412 tb(ji,jj,jk) = tn(ji,jj,jk) 413 414 sn(ji,jj,jk) = ( 36.25 - 1.13 * TANH( (fsdept(ji,jj,jk) - 305) / 460 ) ) & 415 & * (-TANH((500 - fsdept(ji,jj,jk)) / 150) + 1) / 2 & 416 & + ( 35.55 + 1.25 * (5000. - fsdept(ji,jj,jk)) / 5000. & 417 & - 1.62 * TANH( (fsdept(ji,jj,jk) - 60. ) / 650. ) & 418 & + 0.2 * TANH( (fsdept(ji,jj,jk) - 35. ) / 100. ) & 419 & + 0.2 * TANH( (fsdept(ji,jj,jk) - 1000.) / 5000.) ) & 420 & * (-TANH((fsdept(ji,jj,jk) - 500) / 150) + 1) / 2 421 sn(ji,jj,jk) = sn(ji,jj,jk) * tmask(ji,jj,jk) 422 sb(ji,jj,jk) = sn(ji,jj,jk) 423 END DO 424 END DO 425 END DO 426 427 IF(lwp) THEN 428 WRITE(numout,*) 429 WRITE(numout,*) ' Initial temperature and salinity profiles:' 430 WRITE(numout, "(9x,' level gdept temperature salinity ')" ) 431 WRITE(numout, "(10x, i4, 3f10.2)" ) ( jk, gdept(jk), tn(2,2,jk), sn(2,2,jk), jk = 1, jpk ) 432 ENDIF 433 434 435 END SUBROUTINE istate_gyre 436 437 438 377 439 SUBROUTINE istate_uvg 378 440 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.