Changeset 2892 for branches/2011/dev_r2802_TOP_substepping
- Timestamp:
- 2011-10-06T15:59:49+02:00 (13 years ago)
- Location:
- branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO
- Files:
-
- 1 added
- 2 deleted
- 28 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 ! ! ============= ! -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r2830 r2892 103 103 104 104 ! ! add the eiv transport (if necessary) 105 IF( lk_traldf_eiv ) CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRC' )105 IF( lk_traldf_eiv ) CALL tra_adv_eiv( kt, nittrc000, zun, zvn, zwn, 'TRC' ) 106 106 ! 107 107 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 108 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, 'TRC', zun, zvn, zwn, trb, trn, tra, jptra ) ! 2nd order centered109 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! TVD110 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, tra, jptra ) ! MUSCL111 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! MUSCL2112 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! UBS113 CASE ( 6 ) ; CALL tra_adv_qck ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! QUICKEST108 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nittrc000, 'TRC', zun, zvn, zwn, trb, trn, tra, jptra ) ! 2nd order centered 109 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! TVD 110 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, tra, jptra ) ! MUSCL 111 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! MUSCL2 112 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! UBS 113 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! QUICKEST 114 114 ! 115 115 CASE (-1 ) !== esopa: test all possibility with control print ==! 116 CALL tra_adv_cen2 ( kt, 'TRC', zun, zvn, zwn, trb, trn, tra, jptra )116 CALL tra_adv_cen2 ( kt, nittrc000, 'TRC', zun, zvn, zwn, trb, trn, tra, jptra ) 117 117 WRITE(charout, FMT="('adv1')") ; CALL prt_ctl_trc_info(charout) 118 118 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 119 CALL tra_adv_tvd ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )119 CALL tra_adv_tvd ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) 120 120 WRITE(charout, FMT="('adv2')") ; CALL prt_ctl_trc_info(charout) 121 121 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 122 CALL tra_adv_muscl ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, tra, jptra )122 CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, tra, jptra ) 123 123 WRITE(charout, FMT="('adv3')") ; CALL prt_ctl_trc_info(charout) 124 124 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 125 CALL tra_adv_muscl2( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )125 CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) 126 126 WRITE(charout, FMT="('adv4')") ; CALL prt_ctl_trc_info(charout) 127 127 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 128 CALL tra_adv_ubs ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )128 CALL tra_adv_ubs ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) 129 129 WRITE(charout, FMT="('adv5')") ; CALL prt_ctl_trc_info(charout) 130 130 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 131 CALL tra_adv_qck ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )131 CALL tra_adv_qck ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) 132 132 WRITE(charout, FMT="('adv6')") ; CALL prt_ctl_trc_info(charout) 133 133 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
r2830 r2892 67 67 68 68 SELECT CASE ( nldf ) ! compute lateral mixing trend and add it to the general trend 69 CASE ( 0 ) ; CALL tra_ldf_lap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra ) ! iso-level laplacian70 CASE ( 1 ) ; CALL tra_ldf_iso ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 ) ! rotated laplacian71 CASE ( 2 ) ; CALL tra_ldf_bilap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra ) ! iso-level bilaplacian72 CASE ( 3 ) ; CALL tra_ldf_bilapg( kt, 'TRC', trb, tra, jptra ) ! s-coord. horizontal bilaplacian69 CASE ( 0 ) ; CALL tra_ldf_lap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra ) ! iso-level laplacian 70 CASE ( 1 ) ; CALL tra_ldf_iso ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 ) ! rotated laplacian 71 CASE ( 2 ) ; CALL tra_ldf_bilap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra ) ! iso-level bilaplacian 72 CASE ( 3 ) ; CALL tra_ldf_bilapg( kt, nittrc000, 'TRC', trb, tra, jptra ) ! s-coord. horizontal bilaplacian 73 73 ! 74 74 CASE ( -1 ) ! esopa: test all possibility with control print 75 CALL tra_ldf_lap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra )75 CALL tra_ldf_lap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra ) 76 76 WRITE(charout, FMT="('ldf0 ')") ; CALL prt_ctl_trc_info(charout) 77 77 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 78 CALL tra_ldf_iso ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )78 CALL tra_ldf_iso ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 ) 79 79 WRITE(charout, FMT="('ldf1 ')") ; CALL prt_ctl_trc_info(charout) 80 80 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 81 CALL tra_ldf_bilap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra )81 CALL tra_ldf_bilap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra ) 82 82 WRITE(charout, FMT="('ldf2 ')") ; CALL prt_ctl_trc_info(charout) 83 83 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 84 CALL tra_ldf_bilapg( kt, 'TRC', trb, tra, jptra )84 CALL tra_ldf_bilapg( kt, nittrc000, 'TRC', trb, tra, jptra ) 85 85 WRITE(charout, FMT="('ldf3 ')") ; CALL prt_ctl_trc_info(charout) 86 86 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
r2830 r2892 139 139 ELSE 140 140 ! Leap-Frog + Asselin filter time stepping 141 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt, 'TRC', trb, trn, tra, jptra ) ! variable volume level (vvl)142 ELSE ; CALL tra_nxt_fix( kt, 'TRC', trb, trn, tra, jptra ) ! fixed volume level141 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt,nittrc000, 'TRC', trb, trn, tra, jptra ) ! variable volume level (vvl) 142 ELSE ; CALL tra_nxt_fix( kt,nittrc000, 'TRC', trb, trn, tra, jptra ) ! fixed volume level 143 143 ENDIF 144 144 ENDIF -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90
r2830 r2892 88 88 SELECT CASE ( nzdf ) ! compute lateral mixing trend and add it to the general trend 89 89 CASE ( -1 ) ! esopa: test all possibility with control print 90 CALL tra_zdf_exp( kt, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra )90 CALL tra_zdf_exp( kt,nittrc000, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra ) 91 91 WRITE(charout, FMT="('zdf1 ')") ; CALL prt_ctl_trc_info(charout) 92 92 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 93 CALL tra_zdf_imp( kt, 'TRC', r2dt, trb, tra, jptra )93 CALL tra_zdf_imp( kt,nittrc000, 'TRC', r2dt, trb, tra, jptra ) 94 94 WRITE(charout, FMT="('zdf2 ')") ; CALL prt_ctl_trc_info(charout) 95 95 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 96 CASE ( 0 ) ; CALL tra_zdf_exp( kt, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra ) ! explicit scheme97 CASE ( 1 ) ; CALL tra_zdf_imp( kt, 'TRC', r2dt, trb, tra, jptra ) ! implicit scheme96 CASE ( 0 ) ; CALL tra_zdf_exp( kt,nittrc000, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra ) ! explicit scheme 97 CASE ( 1 ) ; CALL tra_zdf_imp( kt,nittrc000, 'TRC', r2dt, trb, tra, jptra ) ! implicit scheme 98 98 99 99 END SELECT -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
r2830 r2892 108 108 USE dom_oce , ONLY : e3w_0 => e3w_0 !: reference depth of w-points (m) 109 109 USE dom_oce , ONLY : gdepw_0 => gdepw_0 !: reference depth of w-points (m) 110 # if ! defined key_zco 110 111 USE dom_oce , ONLY : gdep3w => gdep3w !: ??? 111 112 USE dom_oce , ONLY : gdept => gdept !: depth of t-points (m) … … 118 119 USE dom_oce , ONLY : e3uw => e3uw !: uw-points (m) 119 120 USE dom_oce , ONLY : e3vw => e3vw !: vw-points (m) 120 121 # endif 121 122 USE dom_oce , ONLY : ln_zps => ln_zps !: partial steps flag 122 123 USE dom_oce , ONLY : ln_sco => ln_sco !: s-coordinate flag -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trc.F90
r2830 r2892 119 119 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: vslp_tm !: j-direction slope at u-, w-points 120 120 #endif 121 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:,:) :: tsn_tm !: t/s average [m/s] 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: fr_i_tm !: average ice fraction [m/s] 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: hmld_tm !: mixed layer depth average [m] 125 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: qsr_tm !: solar radiation average [m] 126 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: wndm_tm !: 10m wind average [m] 127 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: emp_tm !: freshwater budget: volume flux [Kg/m2/s] 128 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: emp_b_hold !:hold emp from the beginning of each sub-stepping[m] 129 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: emps_tm !: freshwater budget:concentration/dilution [Kg/m2/s] 130 # if defined key_zdfddm 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: avs_tm !: salinity vertical diffusivity coeff. at w-point [m/s] 132 # endif 133 #if defined key_traldf_c3d 134 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 3D coefficients ** at T-,U-,V-,W-points 135 #elif defined key_traldf_c2d 136 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 2D coefficients ** at T-,U-,V-,W-points 137 #elif defined key_traldf_c1d 138 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 1D coefficients ** at T-,U-,V-,W-points 139 #else 140 REAL(wp), PUBLIC :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 0D coefficients ** at T-,U-,V-,W-points 141 #endif 142 #if defined key_traldf_eiv 143 # if defined key_traldf_c3d 144 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 3D coefficients ** 145 # elif defined key_traldf_c2d 146 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 2D coefficients ** 147 # elif defined key_traldf_c1d 148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_tm , aeiv_tm, aeiw_tm !: ** 1D coefficients ** 149 # else 150 REAL(wp), PUBLIC :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 0D coefficients ** 151 # endif 152 # endif 153 121 154 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: rnf_tm !: river runoff 122 155 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: h_rnf_tm !: depth in metres to the bottom of the relevant grid box … … 133 166 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:):: hdivn_temp, rotn_temp 134 167 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:):: hdivb_temp, rotb_temp 168 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsn_temp 169 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:):: hmld_temp, qsr_temp, emp_temp, emps_temp,fr_i_temp,wndm_temp,emp_b_temp 170 # if defined key_zdfddm 171 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: avs_temp !: salinity vertical diffusivity coeff. at w-point [m/s] 172 # endif 173 #if defined key_traldf_c3d 174 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp !: ** 3D coefficients ** at T-,U-,V-,W-points 175 #elif defined key_traldf_c2d 176 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp !: ** 2D coefficients ** at T-,U-,V-,W-points 177 #elif defined key_traldf_c1d 178 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp !: ** 1D coefficients ** at T-,U-,V-,W-points 179 #else 180 REAL(wp), PUBLIC :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp !: ** 0D coefficients ** at T-,U-,V-,W-points 181 #endif 182 #if defined key_traldf_eiv 183 # if defined key_traldf_c3d 184 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 3D coefficients ** 185 # elif defined key_traldf_c2d 186 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 2D coefficients ** 187 # elif defined key_traldf_c1d 188 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_temp , aeiv_temp, aeiw_temp !: ** 1D coefficients ** 189 # else 190 REAL(wp), PUBLIC :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 0D coefficients ** 191 # endif 192 # endif 135 193 136 194 !!---------------------------------------------------------------------- -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r2830 r2892 29 29 USE zpshde ! partial step: hor. derivative (zps_hde routine) 30 30 USE prtctl_trc ! Print control passive tracers (prt_ctl_trc_init routine) 31 USE trcsub stp! variables to substep passive tracers31 USE trcsub ! variables to substep passive tracers 32 32 33 33 IMPLICIT NONE … … 174 174 175 175 IF(nn_dttrc .NE. 1) THEN 176 CALL trc_sub_ stp_ini !initialize variables for substepping passive tracers176 CALL trc_sub_ini !initialize variables for substepping passive tracers 177 177 ENDIF 178 178 ! -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r2830 r2892 77 77 ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 2*nn_dttrc + 1) 78 78 ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 2*nn_dttrc + 1 79 IF( kt == nitrst - 2*nn_dttrc + 1 .OR. nstock == nn_dttrc .OR. ( kt == nitend - nn_dttrc + 1.AND. .NOT. lrst_trc ) ) THEN79 IF( kt == nitrst - 2*nn_dttrc .OR. nstock == nn_dttrc .OR. ( kt == nitend - nn_dttrc .AND. .NOT. lrst_trc ) ) THEN 80 80 ! beware of the format used to write kt (default is i8.8, that should be large enough) 81 81 IF( nitrst > 1.0e9 ) THEN ; WRITE(clkt,* ) nitrst … … 151 151 REAL(wp) :: zarak0 152 152 !!---------------------------------------------------------------------- 153 154 153 155 154 CALL trc_rst_cal( kt, 'WRITE' ) ! calendar -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r2830 r2892 22 22 USE iom 23 23 USE in_out_manager 24 USE trcsub stp24 USE trcsub 25 25 26 26 IMPLICIT NONE … … 77 77 ! 78 78 IF(nn_dttrc .NE. 1) THEN 79 CALL trc_sub_ stp_reset(kt)79 CALL trc_sub_reset(kt) 80 80 ENDIF 81 81 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.