- Timestamp:
- 2011-10-06T15:59:49+02:00 (13 years ago)
- Location:
- branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r2715 r2892 93 93 ! 94 94 IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif ) & 95 & CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRA' )! add the eiv transport (if necessary)95 & CALL tra_adv_eiv( kt, nit000, zun, zvn, zwn, 'TRA' ) ! add the eiv transport (if necessary) 96 96 ! 97 97 CALL iom_put( "uocetr_eff", zun ) ! output effective transport … … 100 100 101 101 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 102 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered103 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD104 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsa, jpts ) ! MUSCL105 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2106 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS107 CASE ( 6 ) ; CALL tra_adv_qck ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST102 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt,nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered 103 CASE ( 2 ) ; CALL tra_adv_tvd ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD 104 CASE ( 3 ) ; CALL tra_adv_muscl ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsa, jpts ) ! MUSCL 105 CASE ( 4 ) ; CALL tra_adv_muscl2( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2 106 CASE ( 5 ) ; CALL tra_adv_ubs ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS 107 CASE ( 6 ) ; CALL tra_adv_qck ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST 108 108 ! 109 109 CASE (-1 ) !== esopa: test all possibility with control print ==! 110 CALL tra_adv_cen2 ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )110 CALL tra_adv_cen2 ( kt,nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) 111 111 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv0 - Ta: ', mask1=tmask, & 112 112 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 113 CALL tra_adv_tvd ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )113 CALL tra_adv_tvd ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 114 114 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv1 - Ta: ', mask1=tmask, & 115 115 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 116 CALL tra_adv_muscl ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsa, jpts )116 CALL tra_adv_muscl ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsa, jpts ) 117 117 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv3 - Ta: ', mask1=tmask, & 118 118 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 119 CALL tra_adv_muscl2( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )119 CALL tra_adv_muscl2( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 120 120 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv4 - Ta: ', mask1=tmask, & 121 121 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 122 CALL tra_adv_ubs ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )122 CALL tra_adv_ubs ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 123 123 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv5 - Ta: ', mask1=tmask, & 124 124 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 125 CALL tra_adv_qck ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )125 CALL tra_adv_qck ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 126 126 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv6 - Ta: ', mask1=tmask, & 127 127 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r2830 r2892 32 32 USE trc_oce ! share passive tracers/Ocean variables 33 33 USE lib_mpp ! MPP library 34 #if defined key_top35 USE trc, ONLY: nittrc000 !get first time step for passive tracers36 #endif37 34 38 35 IMPLICIT NONE … … 56 53 CONTAINS 57 54 58 SUBROUTINE tra_adv_cen2( kt, cdtype, pun, pvn, pwn,&55 SUBROUTINE tra_adv_cen2( kt,nit000, cdtype, pun, pvn, pwn, & 59 56 & ptb, ptn, pta, kjpt ) 60 57 !!---------------------------------------------------------------------- … … 119 116 ! 120 117 INTEGER , INTENT(in ) :: kt ! ocean time-step index 118 INTEGER , INTENT(in ) :: nit000 ! first time step index 121 119 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 122 120 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 138 136 ENDIF 139 137 140 #if defined key_top141 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN142 #else143 138 IF( kt == nit000 ) THEN 144 #endif145 139 IF(lwp) WRITE(numout,*) 146 140 IF(lwp) WRITE(numout,*) 'tra_adv_cen2 : 2nd order centered advection scheme on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
r2715 r2892 45 45 CONTAINS 46 46 47 SUBROUTINE tra_adv_eiv( kt, pun, pvn, pwn, cdtype )47 SUBROUTINE tra_adv_eiv( kt,nit000, pun, pvn, pwn, cdtype ) 48 48 !!---------------------------------------------------------------------- 49 49 !! *** ROUTINE tra_adv_eiv *** … … 69 69 #endif 70 70 INTEGER , INTENT(in ) :: kt ! ocean time-step index 71 INTEGER , INTENT(in ) :: nit000 ! first time step index 71 72 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 72 73 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pun ! in : 3 ocean velocity components … … 203 204 !!---------------------------------------------------------------------- 204 205 CONTAINS 205 SUBROUTINE tra_adv_eiv( kt, pun, pvn, pwn, cdtype ) ! Empty routine206 SUBROUTINE tra_adv_eiv( kt,nit000, pun, pvn, pwn, cdtype ) ! Empty routine 206 207 INTEGER :: kt 208 INTEGER :: nit000 207 209 CHARACTER(len=3) :: cdtype 208 210 REAL, DIMENSION(:,:,:) :: pun, pvn, pwn -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r2830 r2892 25 25 USE diaptr ! poleward transport diagnostics 26 26 USE trc_oce ! share passive tracers/Ocean variables 27 #if defined key_top28 USE trc, ONLY: nittrc000 !get first time step for passive tracers29 #endif30 27 31 28 … … 47 44 CONTAINS 48 45 49 SUBROUTINE tra_adv_muscl( kt, 46 SUBROUTINE tra_adv_muscl( kt,nit000,cdtype, p2dt, pun, pvn, pwn, & 50 47 & ptb, pta, kjpt ) 51 48 !!---------------------------------------------------------------------- … … 69 66 ! 70 67 INTEGER , INTENT(in ) :: kt ! ocean time-step index 68 INTEGER , INTENT(in ) :: nit000 ! first time step index 71 69 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 72 70 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 86 84 ENDIF 87 85 88 #if defined key_top89 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN90 #else91 86 IF( kt == nit000 ) THEN 92 #endif93 87 IF(lwp) WRITE(numout,*) 94 88 IF(lwp) WRITE(numout,*) 'tra_adv : MUSCL advection scheme on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r2830 r2892 23 23 USE diaptr ! poleward transport diagnostics 24 24 USE trc_oce ! share passive tracers/Ocean variables 25 #if defined key_top26 USE trc, ONLY: nittrc000 !get first time step for passive tracers27 #endif28 25 29 26 … … 45 42 CONTAINS 46 43 47 SUBROUTINE tra_adv_muscl2( kt, cdtype, p2dt, pun, pvn, pwn, &44 SUBROUTINE tra_adv_muscl2( kt,nit000, cdtype, p2dt, pun, pvn, pwn, & 48 45 & ptb, ptn, pta, kjpt ) 49 46 !!---------------------------------------------------------------------- … … 67 64 !! 68 65 INTEGER , INTENT(in ) :: kt ! ocean time-step index 66 INTEGER , INTENT(in ) :: nit000 ! first time step index 69 67 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 70 68 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 84 82 ENDIF 85 83 86 #if defined key_top87 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN88 #else89 84 IF( kt == nit000 ) THEN 90 #endif91 85 IF(lwp) WRITE(numout,*) 92 86 IF(lwp) WRITE(numout,*) 'tra_adv_muscl2 : MUSCL2 advection scheme on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r2830 r2892 26 26 USE diaptr ! poleward transport diagnostics 27 27 USE trc_oce ! share passive tracers/Ocean variables 28 #if defined key_top29 USE trc, ONLY: nittrc000 !get first time step for passive tracers30 #endif31 28 32 29 IMPLICIT NONE … … 48 45 CONTAINS 49 46 50 SUBROUTINE tra_adv_qck ( kt, cdtype, p2dt, pun, pvn, pwn, &47 SUBROUTINE tra_adv_qck ( kt, nit000, cdtype, p2dt, pun, pvn, pwn, & 51 48 & ptb, ptn, pta, kjpt ) 52 49 !!---------------------------------------------------------------------- … … 85 82 !!---------------------------------------------------------------------- 86 83 INTEGER , INTENT(in ) :: kt ! ocean time-step index 84 INTEGER , INTENT(in ) :: nit000 ! first time step index 87 85 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 88 86 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 93 91 !!---------------------------------------------------------------------- 94 92 95 #if defined key_top96 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN97 #else98 93 IF( kt == nit000 ) THEN 99 #endif100 94 IF(lwp) WRITE(numout,*) 101 95 IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r2830 r2892 32 32 USE diaptr ! poleward transport diagnostics 33 33 USE trc_oce ! share passive tracers/Ocean variables 34 #if defined key_top35 USE trc, ONLY: nittrc000 !get first time step for passive tracers36 #endif37 34 38 35 … … 54 51 CONTAINS 55 52 56 SUBROUTINE tra_adv_tvd ( kt, cdtype, p2dt, pun, pvn, pwn, &53 SUBROUTINE tra_adv_tvd ( kt,nit000, cdtype, p2dt, pun, pvn, pwn, & 57 54 & ptb, ptn, pta, kjpt ) 58 55 !!---------------------------------------------------------------------- … … 74 71 ! 75 72 INTEGER , INTENT(in ) :: kt ! ocean time-step index 73 INTEGER , INTENT(in ) :: nit000 ! first time step index 76 74 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 77 75 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 92 90 ENDIF 93 91 94 #if defined key_top95 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN96 #else97 92 IF( kt == nit000 ) THEN 98 #endif99 93 IF(lwp) WRITE(numout,*) 100 94 IF(lwp) WRITE(numout,*) 'tra_adv_tvd : TVD advection scheme on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r2830 r2892 22 22 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 23 23 USE trc_oce ! share passive tracers/Ocean variables 24 #if defined key_top25 USE trc, ONLY: nittrc000 !get first time step for passive tracers26 #endif27 24 28 25 IMPLICIT NONE … … 43 40 CONTAINS 44 41 45 SUBROUTINE tra_adv_ubs ( kt, cdtype, p2dt, pun, pvn, pwn, &42 SUBROUTINE tra_adv_ubs ( kt, nit000, cdtype, p2dt, pun, pvn, pwn, & 46 43 & ptb, ptn, pta, kjpt ) 47 44 !!---------------------------------------------------------------------- … … 83 80 ! 84 81 INTEGER , INTENT(in ) :: kt ! ocean time-step index 82 INTEGER , INTENT(in ) :: nit000 ! first time step index 85 83 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 86 84 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 100 98 ENDIF 101 99 102 #if defined key_top103 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN104 #else105 100 IF( kt == nit000 ) THEN 106 #endif107 101 IF(lwp) WRITE(numout,*) 108 102 IF(lwp) WRITE(numout,*) 'tra_adv_ubs : horizontal UBS advection scheme on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r2830 r2892 34 34 USE lbclnk ! ocean lateral boundary conditions 35 35 USE prtctl ! Print control 36 #if defined key_top37 USE trc, ONLY: nittrc000 !get first time step for passive tracers38 #endif39 36 40 37 IMPLICIT NONE … … 314 311 315 312 316 SUBROUTINE bbl( kt, cdtype )313 SUBROUTINE bbl( kt, nit000, cdtype ) 317 314 !!---------------------------------------------------------------------- 318 315 !! *** ROUTINE bbl *** … … 346 343 ! 347 344 INTEGER , INTENT(in ) :: kt ! ocean time-step index 345 INTEGER , INTENT(in ) :: nit000 ! first time step index 348 346 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 349 347 !! … … 392 390 ENDIF 393 391 394 #if defined key_top395 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN396 #else397 392 IF( kt == nit000 ) THEN 398 #endif399 393 IF(lwp) WRITE(numout,*) 400 394 IF(lwp) WRITE(numout,*) 'trabbl:bbl : Compute bbl velocities and diffusive coefficients in ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r2715 r2892 68 68 69 69 SELECT CASE ( nldf ) ! compute lateral mixing trend and add it to the general trend 70 CASE ( 0 ) ; CALL tra_ldf_lap ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) ! iso-level laplacian70 CASE ( 0 ) ; CALL tra_ldf_lap ( kt,nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) ! iso-level laplacian 71 71 CASE ( 1 ) ! rotated laplacian 72 72 IF( ln_traldf_grif ) THEN 73 CALL tra_ldf_iso_grif( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) ! Griffies operator73 CALL tra_ldf_iso_grif( kt, nit000,'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) ! Griffies operator 74 74 ELSE 75 CALL tra_ldf_iso ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) ! Madec operator76 ENDIF 77 CASE ( 2 ) ; CALL tra_ldf_bilap ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) ! iso-level bilaplacian78 CASE ( 3 ) ; CALL tra_ldf_bilapg ( kt, 'TRA', tsb, tsa, jpts ) ! s-coord. geopot. bilap.75 CALL tra_ldf_iso ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) ! Madec operator 76 ENDIF 77 CASE ( 2 ) ; CALL tra_ldf_bilap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) ! iso-level bilaplacian 78 CASE ( 3 ) ; CALL tra_ldf_bilapg ( kt, nit000, 'TRA', tsb, tsa, jpts ) ! s-coord. geopot. bilap. 79 79 ! 80 80 CASE ( -1 ) ! esopa: test all possibility with control print 81 CALL tra_ldf_lap ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts )81 CALL tra_ldf_lap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) 82 82 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf0 - Ta: ', mask1=tmask, & 83 83 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 84 84 IF( ln_traldf_grif ) THEN 85 CALL tra_ldf_iso_grif( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )85 CALL tra_ldf_iso_grif( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) 86 86 ELSE 87 CALL tra_ldf_iso ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )87 CALL tra_ldf_iso ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) 88 88 ENDIF 89 89 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf1 - Ta: ', mask1=tmask, & 90 90 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 91 CALL tra_ldf_bilap ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts )91 CALL tra_ldf_bilap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) 92 92 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf2 - Ta: ', mask1=tmask, & 93 93 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 94 CALL tra_ldf_bilapg( kt, 'TRA', tsb, tsa, jpts )94 CALL tra_ldf_bilapg( kt, nit000, 'TRA', tsb, tsa, jpts ) 95 95 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf3 - Ta: ', mask1=tmask, & 96 96 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90
r2830 r2892 29 29 USE trc_oce ! share passive tracers/Ocean variables 30 30 USE lib_mpp ! MPP library 31 #if defined key_top32 USE trc, ONLY: nittrc000 !get first time step for passive tracers33 #endif34 31 35 32 IMPLICIT NONE … … 50 47 CONTAINS 51 48 52 SUBROUTINE tra_ldf_bilap( kt, cdtype, pgu, pgv, &49 SUBROUTINE tra_ldf_bilap( kt, nit000, cdtype, pgu, pgv, & 53 50 & ptb, pta, kjpt ) 54 51 !!---------------------------------------------------------------------- … … 82 79 !! 83 80 INTEGER , INTENT(in ) :: kt ! ocean time-step index 81 INTEGER , INTENT(in ) :: nit000 ! first time step index 84 82 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 85 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 96 94 ENDIF 97 95 98 #if defined key_top99 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN100 #else101 96 IF( kt == nit000 ) THEN 102 #endif103 97 IF(lwp) WRITE(numout,*) 104 98 IF(lwp) WRITE(numout,*) 'tra_ldf_bilap : iso-level biharmonic operator on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilapg.F90
r2830 r2892 25 25 USE trc_oce ! share passive tracers/Ocean variables 26 26 USE lib_mpp ! MPP library 27 #if defined key_top28 USE trc, ONLY: nittrc000 !get first time step for passive tracers29 #endif30 27 31 28 IMPLICIT NONE … … 45 42 CONTAINS 46 43 47 SUBROUTINE tra_ldf_bilapg( kt, cdtype, ptb, pta, kjpt )44 SUBROUTINE tra_ldf_bilapg( kt, nit000, cdtype, ptb, pta, kjpt ) 48 45 !!---------------------------------------------------------------------- 49 46 !! *** ROUTINE tra_ldf_bilapg *** … … 73 70 ! 74 71 INTEGER , INTENT(in ) :: kt ! ocean time-step index 72 INTEGER , INTENT(in ) :: nit000 ! first time step index 75 73 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 76 74 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 85 83 ENDIF 86 84 87 #if defined key_top88 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN89 #else90 85 IF( kt == nit000 ) THEN 91 #endif92 86 IF(lwp) WRITE(numout,*) 93 87 IF(lwp) WRITE(numout,*) 'tra_ldf_bilapg : horizontal biharmonic operator in s-coordinate on ', cdtype … … 352 346 !!---------------------------------------------------------------------- 353 347 CONTAINS 354 SUBROUTINE tra_ldf_bilapg( kt, cdtype, ptb, pta, kjpt ) ! Empty routine 348 SUBROUTINE tra_ldf_bilapg( kt,nit000, cdtype, ptb, pta, kjpt ) ! Empty routine 349 INTEGER :: kt, nit000 355 350 CHARACTER(len=3) :: cdtype 356 351 REAL, DIMENSION(:,:,:,:) :: ptb, pta -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r2830 r2892 32 32 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 33 33 #endif 34 #if defined key_top35 USE trc, ONLY: nittrc000 !get first time step for passive tracers36 #endif37 34 38 35 IMPLICIT NONE … … 52 49 CONTAINS 53 50 54 SUBROUTINE tra_ldf_iso( kt, cdtype, pgu, pgv, &51 SUBROUTINE tra_ldf_iso( kt,nit000, cdtype, pgu, pgv, & 55 52 & ptb, pta, kjpt, pahtb0 ) 56 53 !!---------------------------------------------------------------------- … … 99 96 ! 100 97 INTEGER , INTENT(in ) :: kt ! ocean time-step index 98 INTEGER , INTENT(in ) :: nit000 ! first time step index 101 99 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 102 100 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 124 122 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 125 123 ENDIF 126 #if defined key_top127 IF( kt == nittrc000 .AND. cdtype == 'TRC' ) THEN128 IF(lwp) WRITE(numout,*)129 IF(lwp) WRITE(numout,*) 'tra_ldf_iso : rotated laplacian diffusion operator on ', cdtype130 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~'131 ENDIF132 #endif133 124 ! 134 125 ! ! =========== … … 311 302 !!---------------------------------------------------------------------- 312 303 CONTAINS 313 SUBROUTINE tra_ldf_iso( kt, cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 ) ! Empty routine 304 SUBROUTINE tra_ldf_iso( kt, nit000,cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 ) ! Empty routine 305 INTEGER:: kt, nit000 314 306 CHARACTER(len=3) :: cdtype 315 307 REAL, DIMENSION(:,:,:) :: pgu, pgv ! tracer gradient at pstep levels -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90
r2830 r2892 26 26 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 27 27 USE lib_mpp ! MPP library 28 #if defined key_top29 USE trc, ONLY: nittrc000 !get first time step for passive tracers30 #endif31 28 32 29 IMPLICIT NONE … … 51 48 CONTAINS 52 49 53 SUBROUTINE tra_ldf_iso_grif( kt, cdtype, pgu, pgv, &50 SUBROUTINE tra_ldf_iso_grif( kt, nit000, cdtype, pgu, pgv, & 54 51 & ptb, pta, kjpt, pahtb0 ) 55 52 !!---------------------------------------------------------------------- … … 98 95 ! 99 96 INTEGER , INTENT(in ) :: kt ! ocean time-step index 97 INTEGER , INTENT(in ) :: nit000 ! first time step index 100 98 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 101 99 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 130 128 !zdkt(1:jpi,1:jpj,0:1) => wrk_3d_9(:,:,1:2) 131 129 132 #if defined key_top133 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN134 #else135 130 IF( kt == nit000 ) THEN 136 #endif137 131 IF(lwp) WRITE(numout,*) 138 132 IF(lwp) WRITE(numout,*) 'tra_ldf_iso_grif : rotated laplacian diffusion operator on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90
r2715 r2892 44 44 CONTAINS 45 45 46 SUBROUTINE tra_ldf_lap( kt, cdtype, pgu, pgv, &46 SUBROUTINE tra_ldf_lap( kt, nit000, cdtype, pgu, pgv, & 47 47 & ptb, pta, kjpt ) 48 48 !!---------------------------------------------------------------------- … … 66 66 ! 67 67 INTEGER , INTENT(in ) :: kt ! ocean time-step index 68 INTEGER , INTENT(in ) :: nit000 ! first time step index 68 69 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 69 70 INTEGER , INTENT(in ) :: kjpt ! number of tracers -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r2830 r2892 48 48 USE agrif_opa_interp 49 49 #endif 50 #if defined key_top51 USE trc, ONLY: nittrc000 !get first time step for passive tracers52 #endif53 50 54 51 IMPLICIT NONE … … 151 148 ELSE ! Leap-Frog + Asselin filter time stepping 152 149 ! 153 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt, 'TRA', tsb, tsn, tsa, jpts ) ! variable volume level (vvl)154 ELSE ; CALL tra_nxt_fix( kt, 'TRA', tsb, tsn, tsa, jpts ) ! fixed volume level150 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt,nit000, 'TRA', tsb, tsn, tsa, jpts ) ! variable volume level (vvl) 151 ELSE ; CALL tra_nxt_fix( kt,nit000, 'TRA', tsb, tsn, tsa, jpts ) ! fixed volume level 155 152 ENDIF 156 153 ENDIF … … 182 179 183 180 184 SUBROUTINE tra_nxt_fix( kt, cdtype, ptb, ptn, pta, kjpt )181 SUBROUTINE tra_nxt_fix( kt, nit000, cdtype, ptb, ptn, pta, kjpt ) 185 182 !!---------------------------------------------------------------------- 186 183 !! *** ROUTINE tra_nxt_fix *** … … 206 203 !!---------------------------------------------------------------------- 207 204 INTEGER , INTENT(in ) :: kt ! ocean time-step index 205 INTEGER , INTENT(in ) :: nit000 ! first time step index 208 206 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 209 207 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 217 215 !!---------------------------------------------------------------------- 218 216 219 #if defined key_top220 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN221 #else222 217 IF( kt == nit000 ) THEN 223 #endif224 218 IF(lwp) WRITE(numout,*) 225 219 IF(lwp) WRITE(numout,*) 'tra_nxt_fix : time stepping', cdtype … … 252 246 253 247 254 SUBROUTINE tra_nxt_vvl( kt, cdtype, ptb, ptn, pta, kjpt )248 SUBROUTINE tra_nxt_vvl( kt, nit000, cdtype, ptb, ptn, pta, kjpt ) 255 249 !!---------------------------------------------------------------------- 256 250 !! *** ROUTINE tra_nxt_vvl *** … … 277 271 !!---------------------------------------------------------------------- 278 272 INTEGER , INTENT(in ) :: kt ! ocean time-step index 273 INTEGER , INTENT(in ) :: nit000 ! first time step index 279 274 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 280 275 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 289 284 !!---------------------------------------------------------------------- 290 285 291 #if defined key_top292 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN293 #else294 286 IF( kt == nit000 ) THEN 295 #endif296 287 IF(lwp) WRITE(numout,*) 297 288 IF(lwp) WRITE(numout,*) 'tra_nxt_vvl : time stepping', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
r2715 r2892 76 76 77 77 SELECT CASE ( nzdf ) ! compute lateral mixing trend and add it to the general trend 78 CASE ( 0 ) ; CALL tra_zdf_exp( kt, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) ! explicit scheme79 CASE ( 1 ) ; CALL tra_zdf_imp( kt, 'TRA', r2dtra, tsb, tsa, jpts ) ! implicit scheme78 CASE ( 0 ) ; CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) ! explicit scheme 79 CASE ( 1 ) ; CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra, tsb, tsa, jpts ) ! implicit scheme 80 80 CASE ( -1 ) ! esopa: test all possibility with control print 81 CALL tra_zdf_exp( kt, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts )81 CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) 82 82 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf0 - Ta: ', mask1=tmask, & 83 83 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 84 CALL tra_zdf_imp( kt, 'TRA', r2dtra, tsb, tsa, jpts )84 CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra, tsb, tsa, jpts ) 85 85 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf1 - Ta: ', mask1=tmask, & 86 86 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90
r2830 r2892 31 31 USE in_out_manager ! I/O manager 32 32 USE lib_mpp ! MPP library 33 #if defined key_top34 USE trc, ONLY: nittrc000 !get first time step for passive tracers35 #endif36 33 37 34 IMPLICIT NONE … … 51 48 CONTAINS 52 49 53 SUBROUTINE tra_zdf_exp( kt, cdtype, p2dt, kn_zdfexp, &50 SUBROUTINE tra_zdf_exp( kt,nit000, cdtype, p2dt, kn_zdfexp, & 54 51 & ptb , pta , kjpt ) 55 52 !!---------------------------------------------------------------------- … … 80 77 ! 81 78 INTEGER , INTENT(in ) :: kt ! ocean time-step index 79 INTEGER , INTENT(in ) :: nit000 ! first time step index 82 80 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 83 81 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 96 94 ENDIF 97 95 98 #if defined key_top99 IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC')) THEN100 #else101 96 IF( kt == nit000 ) THEN 102 #endif103 97 IF(lwp) WRITE(numout,*) 104 98 IF(lwp) WRITE(numout,*) 'tra_zdf_exp : explicit vertical mixing on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r2830 r2892 35 35 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 36 36 USE lib_mpp ! MPP library 37 #if defined key_top38 USE trc, ONLY: nittrc000 !get first time step for passive tracers39 #endif40 37 41 38 IMPLICIT NONE … … 58 55 CONTAINS 59 56 60 SUBROUTINE tra_zdf_imp( kt, cdtype, p2dt, ptb, pta, kjpt )57 SUBROUTINE tra_zdf_imp( kt,nit000, cdtype, p2dt, ptb, pta, kjpt ) 61 58 !!---------------------------------------------------------------------- 62 59 !! *** ROUTINE tra_zdf_imp *** … … 82 79 ! 83 80 INTEGER , INTENT(in ) :: kt ! ocean time-step index 81 INTEGER , INTENT(in ) :: nit000 ! first time step index 84 82 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 85 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 105 103 ENDIF 106 104 ENDIF 107 #if defined key_top108 IF( kt == nittrc000 .AND. cdtype == 'TRC' ) THEN109 IF(lwp)WRITE(numout,*)110 IF(lwp)WRITE(numout,*) 'tra_zdf_imp : implicit vertical mixing on ', cdtype111 IF(lwp)WRITE(numout,*) '~~~~~~~~~~~ '112 !113 IF( lk_vvl ) THEN ; r_vvl = 1._wp ! Variable volume indicator114 ELSE ; r_vvl = 0._wp115 ENDIF116 ENDIF117 #endif118 105 ! 119 106 ! ! ============= !
Note: See TracChangeset
for help on using the changeset viewer.