Changeset 3067
- Timestamp:
- 2011-11-09T14:14:18+01:00 (13 years ago)
- Location:
- branches/2011/dev_UKM0_2011/NEMOGCM/NEMO
- Files:
-
- 51 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r2715 r3067 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_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r2715 r3067 53 53 CONTAINS 54 54 55 SUBROUTINE tra_adv_cen2( kt, cdtype, pun, pvn, pwn,&55 SUBROUTINE tra_adv_cen2( kt, kit000, cdtype, pun, pvn, pwn, & 56 56 & ptb, ptn, pta, kjpt ) 57 57 !!---------------------------------------------------------------------- … … 116 116 ! 117 117 INTEGER , INTENT(in ) :: kt ! ocean time-step index 118 INTEGER , INTENT(in ) :: kit000 ! first time step index 118 119 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 119 120 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 131 132 !!---------------------------------------------------------------------- 132 133 133 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 1,2) ) THEN134 IF( wrk_in_use(2, 35) .OR. wrk_in_use(3, 14,15) ) THEN 134 135 CALL ctl_stop('tra_adv_cen2: requested workspace arrays unavailable') ; RETURN 135 136 ENDIF 136 137 137 IF( kt == nit000 ) THEN138 IF( kt == kit000 ) THEN 138 139 IF(lwp) WRITE(numout,*) 139 140 IF(lwp) WRITE(numout,*) 'tra_adv_cen2 : 2nd order centered advection scheme on ', cdtype … … 141 142 IF(lwp) WRITE(numout,*) 142 143 ! 143 ALLOCATE( upsmsk(jpi,jpj), STAT=ierr ) 144 IF( ierr /= 0 ) CALL ctl_stop('STOP', 'tra_adv_cen2: unable to allocate array') 144 IF (.not. ALLOCATED(upsmsk))THEN 145 ALLOCATE( upsmsk(jpi,jpj), STAT=ierr ) 146 IF( ierr /= 0 ) CALL ctl_stop('STOP', 'tra_adv_cen2: unable to allocate array') 147 ENDIF 148 145 149 ! 146 150 upsmsk(:,:) = 0._wp ! not upstream by default … … 275 279 ENDIF 276 280 ! 277 IF( wrk_not_released(2, 1) .OR. &278 wrk_not_released(3, 1 ,2) ) CALL ctl_stop('tra_adv_cen2: failed to release workspace arrays')281 IF( wrk_not_released(2, 35) .OR. & 282 wrk_not_released(3, 14,15) ) CALL ctl_stop('tra_adv_cen2: failed to release workspace arrays') 279 283 ! 280 284 END SUBROUTINE tra_adv_cen2 -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
r2715 r3067 45 45 CONTAINS 46 46 47 SUBROUTINE tra_adv_eiv( kt, pun, pvn, pwn, cdtype )47 SUBROUTINE tra_adv_eiv( kt, kit000, 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 ) :: kit000 ! 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 … … 90 91 ENDIF 91 92 92 IF( kt == nit000 ) THEN93 IF( kt == kit000 ) THEN 93 94 IF(lwp) WRITE(numout,*) 94 95 IF(lwp) WRITE(numout,*) 'tra_adv_eiv : eddy induced advection on ', cdtype,' :' … … 203 204 !!---------------------------------------------------------------------- 204 205 CONTAINS 205 SUBROUTINE tra_adv_eiv( kt, pun, pvn, pwn, cdtype ) ! Empty routine206 SUBROUTINE tra_adv_eiv( kt, kit000, pun, pvn, pwn, cdtype ) ! Empty routine 206 207 INTEGER :: kt 208 INTEGER :: kit000 207 209 CHARACTER(len=3) :: cdtype 208 210 REAL, DIMENSION(:,:,:) :: pun, pvn, pwn -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r2715 r3067 44 44 CONTAINS 45 45 46 SUBROUTINE tra_adv_muscl( kt, cdtype, p2dt, pun, pvn, pwn, &46 SUBROUTINE tra_adv_muscl( kt, kit000, cdtype, p2dt, pun, pvn, pwn, & 47 47 & ptb, pta, kjpt ) 48 48 !!---------------------------------------------------------------------- … … 66 66 ! 67 67 INTEGER , INTENT(in ) :: kt ! ocean time-step index 68 INTEGER , INTENT(in ) :: kit000 ! 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 … … 83 84 ENDIF 84 85 85 IF( kt == nit000 ) THEN86 IF( kt == kit000 ) THEN 86 87 IF(lwp) WRITE(numout,*) 87 88 IF(lwp) WRITE(numout,*) 'tra_adv : MUSCL advection scheme on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r2715 r3067 42 42 CONTAINS 43 43 44 SUBROUTINE tra_adv_muscl2( kt, cdtype, p2dt, pun, pvn, pwn, &44 SUBROUTINE tra_adv_muscl2( kt, kit000, cdtype, p2dt, pun, pvn, pwn, & 45 45 & ptb, ptn, pta, kjpt ) 46 46 !!---------------------------------------------------------------------- … … 64 64 !! 65 65 INTEGER , INTENT(in ) :: kt ! ocean time-step index 66 INTEGER , INTENT(in ) :: kit000 ! first time step index 66 67 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 67 68 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 81 82 ENDIF 82 83 83 IF( kt == nit000 ) THEN84 IF( kt == kit000 ) THEN 84 85 IF(lwp) WRITE(numout,*) 85 86 IF(lwp) WRITE(numout,*) 'tra_adv_muscl2 : MUSCL2 advection scheme on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r2715 r3067 45 45 CONTAINS 46 46 47 SUBROUTINE tra_adv_qck ( kt, cdtype, p2dt, pun, pvn, pwn, &47 SUBROUTINE tra_adv_qck ( kt, kit000, cdtype, p2dt, pun, pvn, pwn, & 48 48 & ptb, ptn, pta, kjpt ) 49 49 !!---------------------------------------------------------------------- … … 82 82 !!---------------------------------------------------------------------- 83 83 INTEGER , INTENT(in ) :: kt ! ocean time-step index 84 INTEGER , INTENT(in ) :: kit000 ! first time step index 84 85 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 85 86 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 90 91 !!---------------------------------------------------------------------- 91 92 92 IF( kt == nit000 ) THEN93 IF( kt == kit000 ) THEN 93 94 IF(lwp) WRITE(numout,*) 94 95 IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r2715 r3067 51 51 CONTAINS 52 52 53 SUBROUTINE tra_adv_tvd ( kt, cdtype, p2dt, pun, pvn, pwn, &53 SUBROUTINE tra_adv_tvd ( kt, kit000, cdtype, p2dt, pun, pvn, pwn, & 54 54 & ptb, ptn, pta, kjpt ) 55 55 !!---------------------------------------------------------------------- … … 71 71 ! 72 72 INTEGER , INTENT(in ) :: kt ! ocean time-step index 73 INTEGER , INTENT(in ) :: kit000 ! first time step index 73 74 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 74 75 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 89 90 ENDIF 90 91 91 IF( kt == nit000 ) THEN92 IF( kt == kit000 ) THEN 92 93 IF(lwp) WRITE(numout,*) 93 94 IF(lwp) WRITE(numout,*) 'tra_adv_tvd : TVD advection scheme on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r2715 r3067 40 40 CONTAINS 41 41 42 SUBROUTINE tra_adv_ubs ( kt, cdtype, p2dt, pun, pvn, pwn, &42 SUBROUTINE tra_adv_ubs ( kt, kit000, cdtype, p2dt, pun, pvn, pwn, & 43 43 & ptb, ptn, pta, kjpt ) 44 44 !!---------------------------------------------------------------------- … … 80 80 ! 81 81 INTEGER , INTENT(in ) :: kt ! ocean time-step index 82 INTEGER , INTENT(in ) :: kit000 ! first time step index 82 83 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 83 84 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 97 98 ENDIF 98 99 99 IF( kt == nit000 ) THEN100 IF( kt == kit000 ) THEN 100 101 IF(lwp) WRITE(numout,*) 101 102 IF(lwp) WRITE(numout,*) 'tra_adv_ubs : horizontal UBS advection scheme on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r2715 r3067 106 106 !!---------------------------------------------------------------------- 107 107 108 IF( l_trdtra ) THEN !* Save ta and sa trends108 IF( l_trdtra ) THEN !* Save ta and sa trends 109 109 ALLOCATE( ztrdt(jpi,jpj,jpk) ) ; ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 110 110 ALLOCATE( ztrds(jpi,jpj,jpk) ) ; ztrds(:,:,:) = tsa(:,:,:,jp_sal) 111 111 ENDIF 112 112 113 IF( l_bbl ) CALL bbl( kt, 'TRA' )!* bbl coef. and transport (only if not already done in trcbbl)114 115 116 IF( nn_bbl_ldf == 1 ) THEN !* Diffusive bbl113 IF( l_bbl ) CALL bbl( kt, nit000, 'TRA' ) !* bbl coef. and transport (only if not already done in trcbbl) 114 115 116 IF( nn_bbl_ldf == 1 ) THEN !* Diffusive bbl 117 117 CALL tra_bbl_dif( tsb, tsa, jpts ) 118 118 IF( ln_ctl ) & … … 311 311 312 312 313 SUBROUTINE bbl( kt, cdtype )313 SUBROUTINE bbl( kt, kit000, cdtype ) 314 314 !!---------------------------------------------------------------------- 315 315 !! *** ROUTINE bbl *** … … 343 343 ! 344 344 INTEGER , INTENT(in ) :: kt ! ocean time-step index 345 INTEGER , INTENT(in ) :: kit000 ! first time step index 345 346 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 346 347 !! … … 389 390 ENDIF 390 391 391 IF( kt == nit000 ) THEN392 IF( kt == kit000 ) THEN 392 393 IF(lwp) WRITE(numout,*) 393 394 IF(lwp) WRITE(numout,*) 'trabbl:bbl : Compute bbl velocities and diffusive coefficients in ', cdtype … … 537 538 !! 538 539 !! ** Method : Read the nambbl namelist and check the parameters 539 !! called by nemo_init at the first timestep ( nit000)540 !! called by nemo_init at the first timestep (kit000) 540 541 !!---------------------------------------------------------------------- 541 542 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r2715 r3067 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' ) … … 297 297 ! Compute the ldf trends 298 298 ! ---------------------- 299 CALL tra_ldf( nit000 +1 ) ! horizontal components (+1: no more init)300 CALL tra_zdf( nit000 ) ! vertical component (if necessary nit000 to performed the init)299 CALL tra_ldf( nit000 + 1 ) ! horizontal components (+1: no more init) 300 CALL tra_zdf( nit000 ) ! vertical component (if necessary nit000 to performed the init) 301 301 302 302 ! finalise the computation and recover all arrays -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90
r2715 r3067 47 47 CONTAINS 48 48 49 SUBROUTINE tra_ldf_bilap( kt, cdtype, pgu, pgv, &49 SUBROUTINE tra_ldf_bilap( kt, kit000, cdtype, pgu, pgv, & 50 50 & ptb, pta, kjpt ) 51 51 !!---------------------------------------------------------------------- … … 79 79 !! 80 80 INTEGER , INTENT(in ) :: kt ! ocean time-step index 81 INTEGER , INTENT(in ) :: kit000 ! first time step index 81 82 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 82 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 93 94 ENDIF 94 95 95 IF( kt == nit000 ) THEN96 IF( kt == kit000 ) THEN 96 97 IF(lwp) WRITE(numout,*) 97 98 IF(lwp) WRITE(numout,*) 'tra_ldf_bilap : iso-level biharmonic operator on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilapg.F90
r2715 r3067 42 42 CONTAINS 43 43 44 SUBROUTINE tra_ldf_bilapg( kt, cdtype, ptb, pta, kjpt )44 SUBROUTINE tra_ldf_bilapg( kt, kit000, cdtype, ptb, pta, kjpt ) 45 45 !!---------------------------------------------------------------------- 46 46 !! *** ROUTINE tra_ldf_bilapg *** … … 70 70 ! 71 71 INTEGER , INTENT(in ) :: kt ! ocean time-step index 72 INTEGER , INTENT(in ) :: kit000 ! first time step index 72 73 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 73 74 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 82 83 ENDIF 83 84 84 IF( kt == nit000 ) THEN85 IF( kt == kit000 ) THEN 85 86 IF(lwp) WRITE(numout,*) 86 87 IF(lwp) WRITE(numout,*) 'tra_ldf_bilapg : horizontal biharmonic operator in s-coordinate on ', cdtype … … 345 346 !!---------------------------------------------------------------------- 346 347 CONTAINS 347 SUBROUTINE tra_ldf_bilapg( kt, cdtype, ptb, pta, kjpt ) ! Empty routine 348 SUBROUTINE tra_ldf_bilapg( kt, kit000, cdtype, ptb, pta, kjpt ) ! Empty routine 349 INTEGER :: kt, kit000 348 350 CHARACTER(len=3) :: cdtype 349 351 REAL, DIMENSION(:,:,:,:) :: ptb, pta 350 WRITE(*,*) 'tra_ldf_iso: You should not have seen this print! error?', kt, cdtype, ptb(1,1,1,1), pta(1,1,1,1), kjpt 352 WRITE(*,*) 'tra_ldf_iso: You should not have seen this print! error?', & 353 & kt, kit000, cdtype, ptb(1,1,1,1), pta(1,1,1,1), kjpt 351 354 END SUBROUTINE tra_ldf_bilapg 352 355 #endif -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r2715 r3067 49 49 CONTAINS 50 50 51 SUBROUTINE tra_ldf_iso( kt, cdtype, pgu, pgv, &51 SUBROUTINE tra_ldf_iso( kt, kit000, cdtype, pgu, pgv, & 52 52 & ptb, pta, kjpt, pahtb0 ) 53 53 !!---------------------------------------------------------------------- … … 96 96 ! 97 97 INTEGER , INTENT(in ) :: kt ! ocean time-step index 98 INTEGER , INTENT(in ) :: kit000 ! first time step index 98 99 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 99 100 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 116 117 ENDIF 117 118 118 IF( kt == nit000 ) THEN119 IF( kt == kit000 ) THEN 119 120 IF(lwp) WRITE(numout,*) 120 121 IF(lwp) WRITE(numout,*) 'tra_ldf_iso : rotated laplacian diffusion operator on ', cdtype … … 301 302 !!---------------------------------------------------------------------- 302 303 CONTAINS 303 SUBROUTINE tra_ldf_iso( kt, cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 ) ! Empty routine 304 SUBROUTINE tra_ldf_iso( kt, kit000,cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 ) ! Empty routine 305 INTEGER:: kt, kit000 304 306 CHARACTER(len=3) :: cdtype 305 307 REAL, DIMENSION(:,:,:) :: pgu, pgv ! tracer gradient at pstep levels 306 308 REAL, DIMENSION(:,:,:,:) :: ptb, pta 307 WRITE(*,*) 'tra_ldf_iso: You should not have seen this print! error?', kt, cdtype, pgu(1,1,1), pgv(1,1,1), &308 & 309 WRITE(*,*) 'tra_ldf_iso: You should not have seen this print! error?', kt, kit000, cdtype, & 310 & pgu(1,1,1), pgv(1,1,1), ptb(1,1,1,1), pta(1,1,1,1), kjpt, pahtb0 309 311 END SUBROUTINE tra_ldf_iso 310 312 #endif -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90
r2715 r3067 48 48 CONTAINS 49 49 50 SUBROUTINE tra_ldf_iso_grif( kt, cdtype, pgu, pgv, &50 SUBROUTINE tra_ldf_iso_grif( kt, kit000, cdtype, pgu, pgv, & 51 51 & ptb, pta, kjpt, pahtb0 ) 52 52 !!---------------------------------------------------------------------- … … 95 95 ! 96 96 INTEGER , INTENT(in ) :: kt ! ocean time-step index 97 INTEGER , INTENT(in ) :: kit000 ! first time step index 97 98 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 98 99 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 127 128 !zdkt(1:jpi,1:jpj,0:1) => wrk_3d_9(:,:,1:2) 128 129 129 IF( kt == nit000 ) THEN130 IF( kt == kit000 ) THEN 130 131 IF(lwp) WRITE(numout,*) 131 132 IF(lwp) WRITE(numout,*) 'tra_ldf_iso_grif : rotated laplacian diffusion operator on ', cdtype 132 133 IF(lwp) WRITE(numout,*) ' WARNING: STILL UNDER TEST, NOT RECOMMENDED. USE AT YOUR OWN PERIL' 133 134 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 134 ALLOCATE( ah_wslp2(jpi,jpj,jpk) , zdkt(jpi,jpj,0:1), STAT=ierr ) 135 IF (.not. ALLOCATED(ah_wslp2))THEN 136 ALLOCATE( ah_wslp2(jpi,jpj,jpk) , zdkt(jpi,jpj,0:1), STAT=ierr ) 137 ENDIF 135 138 IF( lk_mpp ) CALL mpp_sum ( ierr ) 136 139 IF( ierr > 0 ) CALL ctl_stop('STOP', 'tra_ldf_iso_grif: unable to allocate arrays') 137 140 IF( ln_traldf_gdia ) THEN 138 ALLOCATE( psix_eiv(jpi,jpj,jpk) , psiy_eiv(jpi,jpj,jpk) , STAT=ierr ) 139 IF( lk_mpp ) CALL mpp_sum ( ierr ) 140 IF( ierr > 0 ) CALL ctl_stop('STOP', 'tra_ldf_iso_grif: unable to allocate diagnostics') 141 IF (.not. ALLOCATED(psix_eiv))THEN 142 ALLOCATE( psix_eiv(jpi,jpj,jpk) , psiy_eiv(jpi,jpj,jpk) , STAT=ierr ) 143 IF( lk_mpp ) CALL mpp_sum ( ierr ) 144 IF( ierr > 0 ) CALL ctl_stop('STOP', 'tra_ldf_iso_grif: unable to allocate diagnostics') 145 ENDIF 141 146 ENDIF 142 147 ENDIF -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90
r2715 r3067 44 44 CONTAINS 45 45 46 SUBROUTINE tra_ldf_lap( kt, cdtype, pgu, pgv, &46 SUBROUTINE tra_ldf_lap( kt, kit000, 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 ) :: kit000 ! 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 … … 77 78 !!---------------------------------------------------------------------- 78 79 79 IF( kt == nit000 ) THEN80 IF( kt == kit000 ) THEN 80 81 IF(lwp) WRITE(numout,*) 81 82 IF(lwp) WRITE(numout,*) 'tra_ldf_lap : iso-level laplacian diffusion on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r3062 r3067 146 146 ELSE ! Leap-Frog + Asselin filter time stepping 147 147 ! 148 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt, 'TRA', tsb, tsn, tsa, jpts ) ! variable volume level (vvl)149 ELSE ; CALL tra_nxt_fix( kt, 'TRA', tsb, tsn, tsa, jpts ) ! fixed volume level148 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt, nit000, 'TRA', tsb, tsn, tsa, jpts ) ! variable volume level (vvl) 149 ELSE ; CALL tra_nxt_fix( kt, nit000, 'TRA', tsb, tsn, tsa, jpts ) ! fixed volume level 150 150 ENDIF 151 151 ENDIF … … 177 177 178 178 179 SUBROUTINE tra_nxt_fix( kt, cdtype, ptb, ptn, pta, kjpt )179 SUBROUTINE tra_nxt_fix( kt, kit000, cdtype, ptb, ptn, pta, kjpt ) 180 180 !!---------------------------------------------------------------------- 181 181 !! *** ROUTINE tra_nxt_fix *** … … 201 201 !!---------------------------------------------------------------------- 202 202 INTEGER , INTENT(in ) :: kt ! ocean time-step index 203 INTEGER , INTENT(in ) :: kit000 ! first time step index 203 204 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 204 205 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 212 213 !!---------------------------------------------------------------------- 213 214 214 IF( kt == nit000 ) THEN215 IF( kt == kit000 ) THEN 215 216 IF(lwp) WRITE(numout,*) 216 IF(lwp) WRITE(numout,*) 'tra_nxt_fix : time stepping' 217 IF(lwp) WRITE(numout,*) 'tra_nxt_fix : time stepping', cdtype 217 218 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 218 219 ENDIF … … 243 244 244 245 245 SUBROUTINE tra_nxt_vvl( kt, cdtype, ptb, ptn, pta, kjpt )246 SUBROUTINE tra_nxt_vvl( kt, kit000, cdtype, ptb, ptn, pta, kjpt ) 246 247 !!---------------------------------------------------------------------- 247 248 !! *** ROUTINE tra_nxt_vvl *** … … 268 269 !!---------------------------------------------------------------------- 269 270 INTEGER , INTENT(in ) :: kt ! ocean time-step index 271 INTEGER , INTENT(in ) :: kit000 ! first time step index 270 272 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 271 273 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 280 282 !!---------------------------------------------------------------------- 281 283 282 IF( kt == nit000 )THEN284 IF( kt == kit000 ) THEN 283 285 IF(lwp) WRITE(numout,*) 284 IF(lwp) WRITE(numout,*) 'tra_nxt_vvl : time stepping' 286 IF(lwp) WRITE(numout,*) 'tra_nxt_vvl : time stepping', cdtype 285 287 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 286 288 ENDIF -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
r2715 r3067 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_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90
r2715 r3067 48 48 CONTAINS 49 49 50 SUBROUTINE tra_zdf_exp( kt, cdtype, p2dt, kn_zdfexp, &50 SUBROUTINE tra_zdf_exp( kt, kit000, cdtype, p2dt, kn_zdfexp, & 51 51 & ptb , pta , kjpt ) 52 52 !!---------------------------------------------------------------------- … … 77 77 ! 78 78 INTEGER , INTENT(in ) :: kt ! ocean time-step index 79 INTEGER , INTENT(in ) :: kit000 ! first time step index 79 80 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 80 81 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 93 94 ENDIF 94 95 95 IF( kt == nit000 ) THEN96 IF( kt == kit000 ) THEN 96 97 IF(lwp) WRITE(numout,*) 97 98 IF(lwp) WRITE(numout,*) 'tra_zdf_exp : explicit vertical mixing on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r2715 r3067 55 55 CONTAINS 56 56 57 SUBROUTINE tra_zdf_imp( kt, cdtype, p2dt, ptb, pta, kjpt )57 SUBROUTINE tra_zdf_imp( kt, kit000, cdtype, p2dt, ptb, pta, kjpt ) 58 58 !!---------------------------------------------------------------------- 59 59 !! *** ROUTINE tra_zdf_imp *** … … 79 79 ! 80 80 INTEGER , INTENT(in ) :: kt ! ocean time-step index 81 INTEGER , INTENT(in ) :: kit000 ! first time step index 81 82 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 82 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 93 94 ENDIF 94 95 95 IF( kt == nit000 ) THEN96 IF( kt == kit000 ) THEN 96 97 IF(lwp)WRITE(numout,*) 97 98 IF(lwp)WRITE(numout,*) 'tra_zdf_imp : implicit vertical mixing on ', cdtype -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90
r2715 r3067 119 119 ENDIF 120 120 121 IF( kt == nit 000 ) THEN ! Computation of decay coeffcient121 IF( kt == nittrc000 ) THEN ! Computation of decay coeffcient 122 122 zdemi = 5730._wp 123 123 xlambda = LOG(2.) / zdemi / ( nyear_len(1) * rday ) -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90
r2715 r3067 37 37 !! 38 38 !! ** Method : Read the namcfc namelist and check the parameter 39 !! values called at the first timestep (nit 000)39 !! values called at the first timestep (nittrc000) 40 40 !! 41 41 !! ** input : Namelist namcfc -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r2715 r3067 97 97 ENDIF 98 98 99 IF( kt == nit 000 ) CALL trc_cfc_cst99 IF( kt == nittrc000 ) CALL trc_cfc_cst 100 100 101 101 ! Temporal interpolation -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcbio.F90
r2715 r3067 95 95 #endif 96 96 97 IF( kt == nit 000 ) THEN97 IF( kt == nittrc000 ) THEN 98 98 IF(lwp) WRITE(numout,*) 99 99 IF(lwp) WRITE(numout,*) ' trc_bio: LOBSTER bio-model' -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcexp.F90
r2715 r3067 61 61 !!--------------------------------------------------------------------- 62 62 63 IF( kt == nit 000 ) THEN63 IF( kt == nittrc000 ) THEN 64 64 IF(lwp) WRITE(numout,*) 65 65 IF(lwp) WRITE(numout,*) ' trc_exp: LOBSTER export' -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcopt.F90
r2715 r3067 72 72 END IF 73 73 74 IF( kt == nit 000 ) THEN74 IF( kt == nittrc000 ) THEN 75 75 IF(lwp) WRITE(numout,*) 76 76 IF(lwp) WRITE(numout,*) ' trc_opt : LOBSTER optic-model' -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcsed.F90
r2715 r3067 74 74 END IF 75 75 76 IF( kt == nit 000 ) THEN76 IF( kt == nittrc000 ) THEN 77 77 IF(lwp) WRITE(numout,*) 78 78 IF(lwp) WRITE(numout,*) ' trc_sed: LOBSTER sedimentation' -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zsed.F90
r2774 r3067 329 329 330 330 ! Calendar computation 331 IF( kt == nit 000 .OR. imois /= nflx1 ) THEN332 333 IF( kt == nit 000 ) nflx1 = 0331 IF( kt == nittrc000 .OR. imois /= nflx1 ) THEN 332 333 IF( kt == nittrc000 ) nflx1 = 0 334 334 335 335 ! nflx1 number of the first file record used in the simulation -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90
r2715 r3067 245 245 #if defined key_dtatrc 246 246 ! Restore close seas values to initial data 247 CALL trc_dta( nit 000 )247 CALL trc_dta( nittrc000 ) 248 248 DO jn = 1, jptra 249 249 IF( lutini(jn) ) THEN -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
r2715 r3067 72 72 !!--------------------------------------------------------------------- 73 73 74 IF( kt == nit 000 ) CALL trc_sms_pisces_init ! Initialization (first time-step only)74 IF( kt == nittrc000 ) CALL trc_sms_pisces_init ! Initialization (first time-step only) 75 75 76 76 IF( wrk_in_use(3,1) ) THEN -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/SED/sedini.F90
r2761 r3067 449 449 450 450 dtsed = rdt 451 nitsed000 = nit 000451 nitsed000 = nittrc000 452 452 nitsedend = nitend 453 453 #if ! defined key_sed_off -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/SED/sedmodel.F90
r2528 r3067 35 35 36 36 37 IF( kt == nit 000 ) CALL sed_init ! Initialization of sediment model37 IF( kt == nittrc000 ) CALL sed_init ! Initialization of sediment model 38 38 39 39 CALL sed_stp( kt ) ! Time stepping of Sediment model -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/SED/sedwri.F90
r2761 r3067 56 56 ! Initialisation 57 57 ! ----------------- 58 IF( kt == nit 000 ) ALLOCATE( ndext52(jpij*jpksed), ndext51(jpij) )58 IF( kt == nittrc000 ) ALLOCATE( ndext52(jpij*jpksed), ndext51(jpij) ) 59 59 60 60 ! Define frequency of output and means -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r2715 r3067 35 35 INTEGER :: nadv ! choice of the type of advection scheme 36 36 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: r2dt ! vertical profile time-step, = 2 rdttra 37 ! ! except at nit 000 (=rdttra) if neuler=037 ! ! except at nitrrc000 (=rdttra) if neuler=0 38 38 39 39 !! * Substitutions … … 80 80 ENDIF 81 81 82 IF( kt == nit 000 ) CALL trc_adv_ctl ! initialisation & control of options82 IF( kt == nittrc000 ) CALL trc_adv_ctl ! initialisation & control of options 83 83 84 84 #if ! defined key_pisces 85 IF( neuler == 0 .AND. kt == nit 000 ) THEN ! at nit00085 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 86 86 r2dt(:) = rdttrc(:) ! = rdttrc (restarting with Euler time stepping) 87 ELSEIF( kt <= nit 000 + nn_dttrc ) THEN ! at nit000 or nit000+187 ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN ! at nittrc000 or nittrc000+1 88 88 r2dt(:) = 2. * rdttrc(:) ! = 2 rdttrc (leapfrog) 89 89 ENDIF … … 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_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90
r2528 r3067 56 56 !!---------------------------------------------------------------------- 57 57 58 IF( .NOT. lk_offline ) THEN59 CALL bbl( kt, 'TRC' )! Online coupling with dynamics : Computation of bbl coef and bbl transport60 l_bbl = .FALSE. ! Offline coupling with dynamics : Read bbl coef and bbl transport from input files58 IF( .NOT. lk_offline .AND. nn_dttrc == 1 ) THEN 59 CALL bbl( kt, nittrc000, 'TRC' ) ! Online coupling with dynamics : Computation of bbl coef and bbl transport 60 l_bbl = .FALSE. ! Offline coupling with dynamics : Read bbl coef and bbl transport from input files 61 61 ENDIF 62 62 63 63 IF( l_trdtrc ) THEN 64 ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) 64 ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) ! temporary save of trends 65 65 ztrtrd(:,:,:,:) = tra(:,:,:,:) 66 66 ENDIF -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r2715 r3067 94 94 ! 0. Initialization (first time-step only) 95 95 ! -------------- 96 IF( kt == nit 000 ) CALL trc_dmp_init96 IF( kt == nittrc000 ) CALL trc_dmp_init 97 97 98 98 IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) ) ! temporary save of trends … … 173 173 !! 174 174 !! ** Method : read the nammbf namelist and check the parameters 175 !! called by trc_dmp at the first timestep (nit 000)175 !! called by trc_dmp at the first timestep (nittrc000) 176 176 !!---------------------------------------------------------------------- 177 177 -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
r2715 r3067 59 59 !!---------------------------------------------------------------------- 60 60 61 IF( kt == nit 000 ) CALL ldf_ctl ! initialisation & control of options61 IF( kt == nittrc000 ) CALL ldf_ctl ! initialisation & control of options 62 62 63 63 IF( l_trdtrc ) THEN … … 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_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
r2715 r3067 96 96 !!---------------------------------------------------------------------- 97 97 98 IF( kt == nit 000 .AND. lwp ) THEN98 IF( kt == nittrc000 .AND. lwp ) THEN 99 99 WRITE(numout,*) 100 100 WRITE(numout,*) 'trc_nxt : time stepping on passive tracers' … … 119 119 120 120 ! set time step size (Euler/Leapfrog) 121 IF( neuler == 0 .AND. kt == nit 000) THEN ; r2dt(:) = rdttrc(:) ! at nit000 (Euler)122 ELSEIF( kt <= nit 000 + 1) THEN ; r2dt(:) = 2.* rdttrc(:) ! at nit000 or nit000+1 (Leapfrog)121 IF( neuler == 0 .AND. kt == nittrc000) THEN ; r2dt(:) = rdttrc(:) ! at nittrc000 (Euler) 122 ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN ; r2dt(:) = 2.* rdttrc(:) ! at nit000 or nit000+1 (Leapfrog) 123 123 ENDIF 124 124 … … 129 129 ENDIF 130 130 ! Leap-Frog + Asselin filter time stepping 131 IF( neuler == 0 .AND. kt == nit 000 ) THEN ! Euler time-stepping at first time-step132 ! ! (only swap)131 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! Euler time-stepping at first time-step 132 ! ! (only swap) 133 133 DO jn = 1, jptra 134 134 DO jk = 1, jpkm1 … … 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_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90
r2715 r3067 53 53 !!---------------------------------------------------------------------- 54 54 55 IF( kt == nit 000 ) THEN55 IF( kt == nittrc000 ) THEN 56 56 IF(lwp) WRITE(numout,*) 57 57 IF(lwp) WRITE(numout,*) 'trc_rad : Correct artificial negative concentrations ' -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90
r2715 r3067 72 72 END IF 73 73 74 IF( kt == nit 000 ) THEN74 IF( kt == nittrc000 ) THEN 75 75 IF(lwp) WRITE(numout,*) 76 76 IF(lwp) WRITE(numout,*) 'trc_sbc : Passive tracers surface boundary condition' -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90
r2715 r3067 32 32 ! ! defined from ln_zdf... namlist logicals) 33 33 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: r2dt ! vertical profile time-step, = 2 rdttra 34 ! ! except at nit 000 (=rdttra) if neuler=034 ! ! except at nittrc000 (=rdttra) if neuler=0 35 35 36 36 !! * Substitutions … … 69 69 !!--------------------------------------------------------------------- 70 70 71 IF( kt == nit 000 ) CALL zdf_ctl ! initialisation & control of options71 IF( kt == nittrc000 ) CALL zdf_ctl ! initialisation & control of options 72 72 73 73 #if ! defined key_pisces 74 IF( neuler == 0 .AND. kt == nit 000 ) THEN ! at nit00074 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 75 75 r2dt(:) = rdttrc(:) ! = rdttrc (restarting with Euler time stepping) 76 ELSEIF( kt <= nit 000 + nn_dttrc ) THEN ! at nit000 or nit000+176 ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN ! at nittrc000 or nittrc000+nn_dttrc 77 77 r2dt(:) = 2. * rdttrc(:) ! = 2 rdttrc (leapfrog) 78 78 ENDIF … … 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_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trdmld_trc.F90
r2715 r3067 475 475 ! II.1 Set before values of vertically averages passive tracers 476 476 ! ------------------------------------------------------------- 477 IF( kt > nit 000 ) THEN477 IF( kt > nittrc000 ) THEN 478 478 DO jn = 1, jptra 479 479 IF( ln_trdtrc(jn) ) THEN … … 497 497 ! II.3 Initialize mixed-layer "before" arrays for the 1rst analysis window 498 498 ! ------------------------------------------------------------------------ 499 IF( kt == 2) THEN ! i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1) ???499 IF( kt == nittrc000 + nn_dttrc ) THEN ! i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1) ??? 500 500 ! 501 501 DO jn = 1, jptra … … 560 560 tmltrd_trc(:,:,:,:) = tmltrd_trc(:,:,:,:) * rn_ucf_trc 561 561 562 itmod = kt - nit 000 + 1562 itmod = kt - nittrc000 + 1 563 563 it = kt 564 564 … … 980 980 ! II.3 Initialize mixed-layer "before" arrays for the 1rst analysis window 981 981 ! ------------------------------------------------------------------------ 982 IF( kt == 2) THEN ! i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1)982 IF( kt == nittrc000 + nn_dttrc ) THEN ! i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1) 983 983 ! 984 984 tmltrd_csum_ub_bio (:,:,:) = 0.e0 … … 1086 1086 1087 1087 ! define time axis 1088 itmod = kt - nit 000 + 11088 itmod = kt - nittrc000 + 1 1089 1089 it = kt 1090 1090 … … 1331 1331 zjulian = zjulian - adatrj ! set calendar origin to the beginning of the experiment 1332 1332 IF(lwp) WRITE(numout,*)' ' 1333 IF(lwp) WRITE(numout,*)' Date 0 used :', nit 000&1333 IF(lwp) WRITE(numout,*)' Date 0 used :', nittrc000 & 1334 1334 & ,' YEAR ', nyear, ' MONTH ', nmonth,' DAY ', nday & 1335 1335 & ,'Julian day : ', zjulian … … 1360 1360 CALL dia_nam( clhstnam, nn_trd_trc, csuff ) 1361 1361 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 1362 & 1, jpi, 1, jpj, nit 000, zjulian, rdt, nh_t(jn), nidtrd(jn), domain_id=nidom, snc4chunks=snc4set )1362 & 1, jpi, 1, jpj, nittrc000, zjulian, rdt, nh_t(jn), nidtrd(jn), domain_id=nidom, snc4chunks=snc4set ) 1363 1363 1364 1364 !-- Define the ML depth variable … … 1373 1373 CALL dia_nam( clhstnam, nn_trd_trc, 'trdbio' ) 1374 1374 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 1375 & 1, jpi, 1, jpj, nit 000, zjulian, rdt, nh_tb, nidtrdbio, domain_id=nidom, snc4chunks=snc4set )1375 & 1, jpi, 1, jpj, nittrc000, zjulian, rdt, nh_tb, nidtrdbio, domain_id=nidom, snc4chunks=snc4set ) 1376 1376 #endif 1377 1377 -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trdmod_trc.F90
r2528 r3067 50 50 !!---------------------------------------------------------------------- 51 51 52 IF( kt == nit 000 ) THEN52 IF( kt == nittrc000 ) THEN 53 53 ! IF(lwp)WRITE(numout,*) 54 54 ! IF(lwp)WRITE(numout,*) 'trd_mod_trc:' -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
r2787 r3067 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 … … 192 193 USE oce , ONLY : rhd => rhd !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 193 194 USE oce , ONLY : hdivn => hdivn !: horizontal divergence (1/s) 195 USE oce , ONLY : rotn => rotn !: relative vorticity [s-1] 196 USE oce , ONLY : hdivb => hdivb !: horizontal divergence (1/s) 197 USE oce , ONLY : rotb => rotb !: relative vorticity [s-1] 198 USE oce , ONLY : sshn => sshn !: sea surface height at t-point [m] 199 USE oce , ONLY : sshb => sshb !: sea surface height at t-point [m] 200 USE oce , ONLY : ssha => ssha !: sea surface height at t-point [m] 201 USE oce , ONLY : sshu_n => sshu_n !: sea surface height at u-point [m] 202 USE oce , ONLY : sshu_b => sshu_b !: sea surface height at u-point [m] 203 USE oce , ONLY : sshu_a => sshu_a !: sea surface height at u-point [m] 204 USE oce , ONLY : sshv_n => sshv_n !: sea surface height at v-point [m] 205 USE oce , ONLY : sshv_b => sshv_b !: sea surface height at v-point [m] 206 USE oce , ONLY : sshv_a => sshv_a !: sea surface height at v-point [m] 207 USE oce , ONLY : sshf_n => sshf_n !: sea surface height at v-point [m] 208 USE oce , ONLY : l_traldf_rot => l_traldf_rot !: rotated laplacian operator for lateral diffusion 194 209 USE oce , ONLY : l_traldf_rot => l_traldf_rot !: rotated laplacian operator for lateral diffusion 195 210 #if defined key_offline … … 212 227 USE sbc_oce , ONLY : qsr => qsr !: penetrative solar radiation (w m-2) 213 228 USE sbc_oce , ONLY : emp => emp !: freshwater budget: volume flux [Kg/m2/s] 229 USE sbc_oce , ONLY : emp_b => emp_b !: freshwater budget: volume flux [Kg/m2/s] 214 230 USE sbc_oce , ONLY : emps => emps !: freshwater budget: concentration/dillution [Kg/m2/s] 215 231 USE sbc_oce , ONLY : rnf => rnf !: river runoff [Kg/m2/s] … … 222 238 USE sbcrnf , ONLY : rnfmsk => rnfmsk !: mixed adv scheme in runoffs vicinity (hori.) 223 239 USE sbcrnf , ONLY : rnfmsk_z => rnfmsk_z !: mixed adv scheme in runoffs vicinity (vert.) 240 USE sbcrnf , ONLY : h_rnf => h_rnf !: river runoff [Kg/m2/s] 224 241 225 242 USE trc_oce -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trc.F90
r2715 r3067 58 58 CHARACTER(len=50), PUBLIC :: cn_trcrst_in !: suffix of pass. tracer restart name (input) 59 59 CHARACTER(len=50), PUBLIC :: cn_trcrst_out !: suffix of pass. tracer restart name (output) 60 61 INTEGER , PUBLIC :: nittrc000 !: first time step of passive tracers model 60 62 61 63 !! information for outputs … … 97 99 # if defined key_dtatrc 98 100 INTEGER , PUBLIC, DIMENSION(jptra) :: numtr !: logical unit for passive tracers data 101 # endif 102 103 !! variables to average over physics over passive tracer sub-steps. 104 !! ---------------------------------------------------------------- 105 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: un_tm !: i-horizontal velocity average [m/s] 106 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vn_tm !: j-horizontal velocity average [m/s] 107 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsn_tm !: t/s average [m/s] 108 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_tm !: vertical diffusivity coeff. at w-point [m2/s] 109 # if defined key_zdfddm 110 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_tm !: vertical double diffusivity coeff. at w-point [m/s] 111 # endif 112 #if defined key_ldfslp 113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_tm !: i-direction slope at u-, w-points 114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpj_tm !: j-direction slope at u-, w-points 115 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp_tm !: j-direction slope at u-, w-points 116 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vslp_tm !: j-direction slope at u-, w-points 117 #endif 118 #if defined key_trabbl 119 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_tm !: u-, w-points 120 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahv_bbl_tm !: j-direction slope at u-, w-points 121 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: utr_bbl_tm !: j-direction slope at u-, w-points 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vtr_bbl_tm !: j-direction slope at u-, w-points 123 #endif 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshn_tm !: average ssh for the now step [m] 125 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshu_n_tm !: average ssh for the now step [m] 126 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshv_n_tm !: average ssh for the now step [m] 127 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshb_hold !:hold sshb from the beginning of each sub-stepping[m] 128 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshu_b_hold !:hold sshb from the beginning of each sub-stepping[m] 129 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshv_b_hold !:hold sshb from the beginning of each sub-stepping[m] 130 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf_tm !: river runoff 132 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: h_rnf_tm !: depth in metres to the bottom of the relevant grid box 133 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_tm !: mixed layer depth average [m] 134 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fr_i_tm !: average ice fraction [m/s] 135 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_tm !: freshwater budget: volume flux [Kg/m2/s] 136 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emps_tm !: freshwater budget:concentration/dilution [Kg/m2/s] 137 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_b_hold !: hold emp from the beginning of each sub-stepping[m] 138 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr_tm !: solar radiation average [m] 139 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wndm_tm !: 10m wind average [m] 140 ! 141 #if defined key_traldf_c3d 142 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 3D coefficients ** at T-,U-,V-,W-points 143 #elif defined key_traldf_c2d 144 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 2D coefficients ** at T-,U-,V-,W-points 145 #elif defined key_traldf_c1d 146 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 1D coefficients ** at T-,U-,V-,W-points 147 #else 148 REAL(wp), PUBLIC :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 0D coefficients ** at T-,U-,V-,W-points 149 #endif 150 ! 151 #if defined key_traldf_eiv 152 # if defined key_traldf_c3d 153 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 3D coefficients ** 154 # elif defined key_traldf_c2d 155 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 2D coefficients ** 156 # elif defined key_traldf_c1d 157 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_tm , aeiv_tm, aeiw_tm !: ** 1D coefficients ** 158 # else 159 REAL(wp), PUBLIC :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 0D coefficients ** 160 # endif 161 #endif 162 163 ! Temporary physical arrays for sub_stepping 164 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsn_temp 165 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: un_temp,vn_temp,wn_temp !: hold current values of avt, un, vn, wn 166 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_temp !: hold current values of avt, un, vn, wn 167 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3t_temp,e3u_temp,e3v_temp,e3w_temp !: hold current values 168 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshn_temp, sshb_temp, ssha_temp, rnf_temp,h_rnf_temp 169 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshu_n_temp, sshu_b_temp, sshu_a_temp 170 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshf_n_temp 171 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshv_n_temp, sshv_b_temp, sshv_a_temp 172 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hu_temp, hv_temp, hur_temp, hvr_temp 173 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivn_temp, rotn_temp 174 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivb_temp, rotb_temp 175 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_temp, qsr_temp, fr_i_temp,wndm_temp 176 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_temp, emps_temp, emp_b_temp 177 ! 178 #if defined key_trabbl 179 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_temp, ahv_bbl_temp, utr_bbl_temp, vtr_bbl_temp !: hold current values 180 #endif 181 ! 182 #if defined key_ldfslp 183 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_temp, wslpj_temp, uslp_temp, vslp_temp !: hold current values 184 #endif 185 ! 186 # if defined key_zdfddm 187 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_temp !: salinity vertical diffusivity coeff. at w-point [m/s] 188 # endif 189 ! 190 #if defined key_traldf_c3d 191 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 192 #elif defined key_traldf_c2d 193 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 194 #elif defined key_traldf_c1d 195 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 196 #else 197 REAL(wp), PUBLIC :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 198 #endif 199 ! 200 #if defined key_traldf_eiv 201 # if defined key_traldf_c3d 202 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 3D coefficients ** 203 # elif defined key_traldf_c2d 204 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 2D coefficients ** 205 # elif defined key_traldf_c1d 206 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_temp , aeiv_temp, aeiw_temp !: ** 1D coefficients ** 207 # else 208 REAL(wp), PUBLIC :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 0D coefficients ** 209 # endif 99 210 # endif 100 211 -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trcdia.F90
r2715 r3067 85 85 !! ** Purpose : Standard output of passive tracer : concentration fields 86 86 !! 87 !! ** Method : At the beginning of the first time step (nit 000), define all87 !! ** Method : At the beginning of the first time step (nittrc000), define all 88 88 !! the NETCDF files and fields for concentration of passive tracer 89 89 !! … … 135 135 136 136 ! define time axis 137 itmod = kt - nit 000 + 1137 itmod = kt - nittrc000 + 1 138 138 it = kt 139 139 iiter = ( nit000 - 1 ) / nn_dttrc … … 144 144 IF(ll_print)WRITE(numout,*)'trcdit_wr kt=',kt,' kindic ',kindic 145 145 146 IF( kt == nit 000 ) THEN146 IF( kt == nittrc000 ) THEN 147 147 148 148 ! Compute julian date from starting date of the run … … 150 150 zjulian = zjulian - adatrj ! set calendar origin to the beginning of the experiment 151 151 IF(lwp)WRITE(numout,*)' ' 152 IF(lwp)WRITE(numout,*)' Date 0 used :', nit 000 &152 IF(lwp)WRITE(numout,*)' Date 0 used :', nittrc000 & 153 153 & ,' YEAR ', nyear, ' MONTH ', nmonth, ' DAY ', nday & 154 154 & ,'Julian day : ', zjulian … … 226 226 !! ** Purpose : output of passive tracer : additional 2D and 3D arrays 227 227 !! 228 !! ** Method : At the beginning of the first time step (nit 000), define all228 !! ** Method : At the beginning of the first time step (nittrc000), define all 229 229 !! the NETCDF files and fields for concentration of passive tracer 230 230 !! … … 275 275 276 276 ! define time axis 277 itmod = kt - nit 000 + 1277 itmod = kt - nittrc000 + 1 278 278 it = kt 279 279 iiter = ( nit000 - 1 ) / nn_dttrc … … 284 284 IF( ll_print ) WRITE(numout,*) 'trcdii_wr kt=', kt, ' kindic ', kindic 285 285 286 IF( kt == nit 000 ) THEN286 IF( kt == nittrc000 ) THEN 287 287 288 288 ! Define the NETCDF files for additional arrays : 2D or 3D … … 375 375 !! ** Purpose : output of passive tracer : biological fields 376 376 !! 377 !! ** Method : At the beginning of the first time step (nit 000), define all377 !! ** Method : At the beginning of the first time step (nittrc000), define all 378 378 !! the NETCDF files and fields for concentration of passive tracer 379 379 !! … … 424 424 425 425 ! define time axis 426 itmod = kt - nit 000 + 1426 itmod = kt - nittrc000 + 1 427 427 it = kt 428 428 iiter = ( nit000 - 1 ) / nn_dttrc … … 433 433 IF(ll_print) WRITE(numout,*)'trcdib_wr kt=',kt,' kindic ',kindic 434 434 435 IF( kt == nit 000 ) THEN435 IF( kt == nittrc000 ) THEN 436 436 437 437 ! Define the NETCDF files for biological trends -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trcdta.F90
r2715 r3067 71 71 IF( lutini(jn) ) THEN 72 72 73 IF ( kt == nit 000 ) THEN73 IF ( kt == nittrc000 ) THEN 74 74 !! 3D tracer data 75 75 IF(lwp)WRITE(numout,*) … … 86 86 87 87 88 ! First call kt=nit 00088 ! First call kt=nittrc000 89 89 ! -------------------- 90 90 91 IF ( kt == nit 000 .AND. nlectr(jn) == 0 ) THEN91 IF ( kt == nittrc000 .AND. nlectr(jn) == 0 ) THEN 92 92 ntrc1(jn) = 0 93 93 IF(lwp) WRITE(numout,*) ' trc_dta : Levitus tracer data monthly fields' … … 104 104 # if defined key_pisces 105 105 ! Read montly file 106 IF( ( kt == nit 000 .AND. nlectr(jn) == 0) .OR. imois /= ntrc1(jn) ) THEN106 IF( ( kt == nittrc000 .AND. nlectr(jn) == 0) .OR. imois /= ntrc1(jn) ) THEN 107 107 nlectr(jn) = 1 108 108 … … 186 186 # else 187 187 ! Read init file only 188 IF( kt == nit 000 ) THEN188 IF( kt == nittrc000 ) THEN 189 189 ntrc1(jn) = 1 190 190 CALL iom_get ( numtr(jn), jpdom_data, ctrcnm(jn), trdta(:,:,:,jn), ntrc1(jn) ) -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r2715 r3067 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 ! variables to substep passive tracers 31 32 32 33 IMPLICIT NONE … … 122 123 IF( ln_rsttr ) THEN 123 124 ! 124 IF( lk_offline ) neuler = 1 ! Set time-step indicator at nit 000 (leap-frog)125 IF( lk_offline ) neuler = 1 ! Set time-step indicator at nittrc000 (leap-frog) 125 126 CALL trc_rst_read ! restart from a file 126 127 ! 127 128 ELSE 128 129 IF( lk_offline ) THEN 129 neuler = 0 ! Set time-step indicator at nit 000 (euler)130 neuler = 0 ! Set time-step indicator at nittrc000 (euler) 130 131 CALL day_init ! set calendar 131 132 ENDIF 132 133 #if defined key_dtatrc 133 CALL trc_dta( nit 000 ) ! Initialization of tracer from a file that may also be used for damping134 CALL trc_dta( nittrc000 ) ! Initialization of tracer from a file that may also be used for damping 134 135 DO jn = 1, jptra 135 136 IF( lutini(jn) ) trn(:,:,:,jn) = trdta(:,:,:,jn) * tmask(:,:,:) ! initialisation from file if required … … 143 144 144 145 IF( ln_zps .AND. .NOT. lk_c1d ) & ! Partial steps: before horizontal gradient of passive 145 & CALL zps_hde( nit 000, jptra, trn, gtru, gtrv ) ! tracers at the bottom ocean level146 147 146 & CALL zps_hde( nittrc000, jptra, trn, gtru, gtrv ) ! tracers at the bottom ocean level 147 ! 148 IF( nn_dttrc /= 1 ) CALL trc_sub_ini ! Initialize variables for substepping passive tracers 148 149 ! 149 150 trai = 0._wp ! Computation content of all tracers -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r2715 r3067 109 109 END DO 110 110 111 !!KPE computes the first time step of tracer model 112 nittrc000 = nit000 + nn_dttrc - 1 113 111 114 112 115 IF(lwp) THEN ! control print … … 114 117 WRITE(numout,*) ' Namelist : namtrc' 115 118 WRITE(numout,*) ' time step freq. for pass. trac. nn_dttrc = ', nn_dttrc 119 WRITE(numout,*) ' first time step for pass. trac. nittrc000 = ', nittrc000 116 120 WRITE(numout,*) ' frequency of outputs for passive tracers nn_writetrc = ', nn_writetrc 117 121 WRITE(numout,*) ' restart LOGICAL for passive tr. ln_rsttr = ', ln_rsttr -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r2715 r3067 60 60 ! 61 61 IF( lk_offline ) THEN 62 IF( kt == nit 000 ) THEN62 IF( kt == nittrc000 ) THEN 63 63 lrst_trc = .FALSE. 64 64 nitrst = nitend … … 71 71 ENDIF 72 72 ELSE 73 IF( kt == nit 000 ) lrst_trc = .FALSE.73 IF( kt == nittrc000 ) lrst_trc = .FALSE. 74 74 ENDIF 75 75 … … 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 … … 119 119 ! Time domain : restart 120 120 ! --------------------- 121 CALL trc_rst_cal( nit 000, 'READ' ) ! calendar121 CALL trc_rst_cal( nittrc000, 'READ' ) ! calendar 122 122 123 123 ! READ prognostic variables and computes diagnostic variable … … 151 151 REAL(wp) :: zarak0 152 152 !!---------------------------------------------------------------------- 153 154 153 155 154 CALL trc_rst_cal( kt, 'WRITE' ) ! calendar … … 196 195 !! 197 196 !! According to namelist parameter nrstdt, 198 !! nn_rsttr = 0 no control on the date (nit 000 is arbitrary).199 !! nn_rsttr = 1 we verify that nit 000 is equal to the last197 !! nn_rsttr = 0 no control on the date (nittrc000 is arbitrary). 198 !! nn_rsttr = 1 we verify that nittrc000 is equal to the last 200 199 !! time step of previous run + 1. 201 200 !! In both those options, the exact duration of the experiment … … 223 222 WRITE(numout,*) ' *** restart option' 224 223 SELECT CASE ( nn_rsttr ) 225 CASE ( 0 ) ; WRITE(numout,*) ' nn_rsttr = 0 : no control of nit 000'226 CASE ( 1 ) ; WRITE(numout,*) ' nn_rsttr = 1 : no control the date at nit 000 (use ndate0 read in the namelist)'224 CASE ( 0 ) ; WRITE(numout,*) ' nn_rsttr = 0 : no control of nittrc000' 225 CASE ( 1 ) ; WRITE(numout,*) ' nn_rsttr = 1 : no control the date at nittrc000 (use ndate0 read in the namelist)' 227 226 CASE ( 2 ) ; WRITE(numout,*) ' nn_rsttr = 2 : calendar parameters read in restart' 228 227 END SELECT … … 230 229 ENDIF 231 230 ! Control of date 232 IF( nit 000 - NINT( zkt ) /= 1.AND. nn_rsttr /= 0 ) &233 & CALL ctl_stop( ' ===>>>> : problem with nit 000 for the restart', &231 IF( nittrc000 - NINT( zkt ) /= nn_dttrc .AND. nn_rsttr /= 0 ) & 232 & CALL ctl_stop( ' ===>>>> : problem with nittrc000 for the restart', & 234 233 & ' verify the restart file or rerun with nn_rsttr = 0 (namelist)' ) 235 234 IF( lk_offline ) THEN ! set the date in offline mode … … 246 245 ELSE 247 246 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam 248 adatrj = ( REAL( nit 000-1, wp ) * rdttra(1) ) / rday247 adatrj = ( REAL( nittrc000-1, wp ) * rdttra(1) ) / rday 249 248 ! note this is wrong if time step has changed during run 250 249 ENDIF -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r2528 r3067 22 22 USE iom 23 23 USE in_out_manager 24 USE trcsub 24 25 25 26 IMPLICIT NONE … … 27 28 28 29 PUBLIC trc_stp ! called by step 30 # include "domzgr_substitute.h90" 29 31 30 32 !!---------------------------------------------------------------------- … … 49 51 !!------------------------------------------------------------------- 50 52 51 IF( MOD( kt - 1 , nn_dttrc ) == 0 ) THEN ! only every nn_dttrc time step 53 IF( nn_dttrc /= 1 ) CALL trc_sub_stp( kt ) ! averaging physical variables for sub-stepping 54 55 IF( MOD( kt , nn_dttrc ) == 0 ) THEN ! only every nn_dttrc time step 52 56 ! 53 57 IF(ln_ctl) THEN … … 58 62 tra(:,:,:,:) = 0.e0 59 63 ! 60 IF( kt == nit 000 .AND. lk_trdmld_trc ) &64 IF( kt == nittrc000 .AND. lk_trdmld_trc ) & 61 65 & CALL trd_mld_trc_init ! trends: Mixed-layer 62 66 CALL trc_rst_opn( kt ) ! Open tracer restart file … … 66 70 CALL trc_sms( kt ) ! tracers: sink and source 67 71 CALL trc_trp( kt ) ! transport of passive tracers 68 IF( kt == nit000 ) CALL iom_close( numrtr ) ! close input passive tracers restart file 69 IF( lrst_trc ) CALL trc_rst_wri( kt ) ! write tracer restart file 70 IF( lk_trdmld_trc ) CALL trd_mld_trc( kt ) ! trends: Mixed-layer 72 IF( kt == nittrc000 ) CALL iom_close( numrtr ) ! close input passive tracers restart file 73 IF( lrst_trc ) CALL trc_rst_wri( kt ) ! write tracer restart file 74 IF( lk_trdmld_trc ) CALL trd_mld_trc( kt ) ! trends: Mixed-layer 75 ! 76 IF( nn_dttrc /= 1 ) CALL trc_sub_reset( kt ) ! resetting physical variables when sub-stepping 71 77 ! 72 78 ENDIF -
branches/2011/dev_UKM0_2011/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
r2567 r3067 57 57 !!--------------------------------------------------------------------- 58 58 59 IF( lk_offline .AND. kt == nit 000 .AND. lwp ) THEN ! WRITE root name in date.file for use by postpro59 IF( lk_offline .AND. kt == nittrc000 .AND. lwp ) THEN ! WRITE root name in date.file for use by postpro 60 60 CALL dia_nam( clhstnam, nn_writetrc,' ' ) 61 61 CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
Note: See TracChangeset
for help on using the changeset viewer.