Changeset 2910 for branches/2011/dev_r2802_TOP_substepping
- Timestamp:
- 2011-10-13T11:41:49+02:00 (13 years ago)
- Location:
- branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r2892 r2910 100 100 101 101 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 102 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered103 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD104 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsa, jpts ) ! MUSCL105 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2106 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS107 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nit000, '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, nit000, '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, nit000, '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, nit000, '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, nit000, '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, nit000, '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, nit000, '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
r2892 r2910 53 53 CONTAINS 54 54 55 SUBROUTINE tra_adv_cen2( kt, nit000, 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 ) :: nit000 ! first time step index118 INTEGER , INTENT(in ) :: kit000 ! first time step index 119 119 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 120 120 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 136 136 ENDIF 137 137 138 IF( kt == nit000 ) THEN138 IF( kt == kit000 ) THEN 139 139 IF(lwp) WRITE(numout,*) 140 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
r2892 r2910 45 45 CONTAINS 46 46 47 SUBROUTINE tra_adv_eiv( kt, nit000, 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 ) :: nit000 ! first time step index71 INTEGER , INTENT(in ) :: kit000 ! first time step index 72 72 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 73 73 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pun ! in : 3 ocean velocity components … … 91 91 ENDIF 92 92 93 IF( kt == nit000 ) THEN93 IF( kt == kit000 ) THEN 94 94 IF(lwp) WRITE(numout,*) 95 95 IF(lwp) WRITE(numout,*) 'tra_adv_eiv : eddy induced advection on ', cdtype,' :' … … 204 204 !!---------------------------------------------------------------------- 205 205 CONTAINS 206 SUBROUTINE tra_adv_eiv( kt, nit000, pun, pvn, pwn, cdtype ) ! Empty routine206 SUBROUTINE tra_adv_eiv( kt, kit000, pun, pvn, pwn, cdtype ) ! Empty routine 207 207 INTEGER :: kt 208 INTEGER :: nit000208 INTEGER :: kit000 209 209 CHARACTER(len=3) :: cdtype 210 210 REAL, DIMENSION(:,:,:) :: pun, pvn, pwn -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r2892 r2910 44 44 CONTAINS 45 45 46 SUBROUTINE tra_adv_muscl( kt, nit000,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 ) :: nit000 ! first time step index68 INTEGER , INTENT(in ) :: kit000 ! first time step index 69 69 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 70 70 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 84 84 ENDIF 85 85 86 IF( kt == nit000 ) THEN86 IF( kt == kit000 ) THEN 87 87 IF(lwp) WRITE(numout,*) 88 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
r2892 r2910 42 42 CONTAINS 43 43 44 SUBROUTINE tra_adv_muscl2( kt, nit000, 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 ) :: nit000 ! first time step index66 INTEGER , INTENT(in ) :: kit000 ! first time step index 67 67 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 68 68 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 82 82 ENDIF 83 83 84 IF( kt == nit000 ) THEN84 IF( kt == kit000 ) THEN 85 85 IF(lwp) WRITE(numout,*) 86 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
r2892 r2910 45 45 CONTAINS 46 46 47 SUBROUTINE tra_adv_qck ( kt, nit000, 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 ) :: nit000 ! first time step index84 INTEGER , INTENT(in ) :: kit000 ! first time step index 85 85 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 86 86 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 91 91 !!---------------------------------------------------------------------- 92 92 93 IF( kt == nit000 ) THEN93 IF( kt == kit000 ) THEN 94 94 IF(lwp) WRITE(numout,*) 95 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
r2892 r2910 51 51 CONTAINS 52 52 53 SUBROUTINE tra_adv_tvd ( kt, nit000, 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 ) :: nit000 ! first time step index73 INTEGER , INTENT(in ) :: kit000 ! first time step index 74 74 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 75 75 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 90 90 ENDIF 91 91 92 IF( kt == nit000 ) THEN92 IF( kt == kit000 ) THEN 93 93 IF(lwp) WRITE(numout,*) 94 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
r2892 r2910 40 40 CONTAINS 41 41 42 SUBROUTINE tra_adv_ubs ( kt, nit000, 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 ) :: nit000 ! first time step index82 INTEGER , INTENT(in ) :: kit000 ! first time step index 83 83 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 84 84 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 98 98 ENDIF 99 99 100 IF( kt == nit000 ) THEN100 IF( kt == kit000 ) THEN 101 101 IF(lwp) WRITE(numout,*) 102 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
r2892 r2910 311 311 312 312 313 SUBROUTINE bbl( kt, nit000, 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 ) :: nit000 ! first time step index345 INTEGER , INTENT(in ) :: kit000 ! first time step index 346 346 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 347 347 !! … … 390 390 ENDIF 391 391 392 IF( kt == nit000 ) THEN392 IF( kt == kit000 ) THEN 393 393 IF(lwp) WRITE(numout,*) 394 394 IF(lwp) WRITE(numout,*) 'trabbl:bbl : Compute bbl velocities and diffusive coefficients in ', cdtype … … 538 538 !! 539 539 !! ** Method : Read the nambbl namelist and check the parameters 540 !! called by nemo_init at the first timestep ( nit000)540 !! called by nemo_init at the first timestep (kit000) 541 541 !!---------------------------------------------------------------------- 542 542 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r2892 r2910 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, nit000, '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 … … 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_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90
r2892 r2910 47 47 CONTAINS 48 48 49 SUBROUTINE tra_ldf_bilap( kt, nit000, 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 ) :: nit000 ! first time step index81 INTEGER , INTENT(in ) :: kit000 ! first time step index 82 82 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 83 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 94 94 ENDIF 95 95 96 IF( kt == nit000 ) THEN96 IF( kt == kit000 ) THEN 97 97 IF(lwp) WRITE(numout,*) 98 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
r2892 r2910 42 42 CONTAINS 43 43 44 SUBROUTINE tra_ldf_bilapg( kt, nit000, 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 ) :: nit000 ! first time step index72 INTEGER , INTENT(in ) :: kit000 ! first time step index 73 73 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 74 74 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 83 83 ENDIF 84 84 85 IF( kt == nit000 ) THEN85 IF( kt == kit000 ) THEN 86 86 IF(lwp) WRITE(numout,*) 87 87 IF(lwp) WRITE(numout,*) 'tra_ldf_bilapg : horizontal biharmonic operator in s-coordinate on ', cdtype … … 346 346 !!---------------------------------------------------------------------- 347 347 CONTAINS 348 SUBROUTINE tra_ldf_bilapg( kt, nit000, cdtype, ptb, pta, kjpt ) ! Empty routine349 INTEGER :: kt, nit000348 SUBROUTINE tra_ldf_bilapg( kt, kit000, cdtype, ptb, pta, kjpt ) ! Empty routine 349 INTEGER :: kt, kit000 350 350 CHARACTER(len=3) :: cdtype 351 351 REAL, DIMENSION(:,:,:,:) :: ptb, pta 352 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 353 354 END SUBROUTINE tra_ldf_bilapg 354 355 #endif -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r2892 r2910 49 49 CONTAINS 50 50 51 SUBROUTINE tra_ldf_iso( kt, nit000, 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 ) :: nit000 ! first time step index98 INTEGER , INTENT(in ) :: kit000 ! first time step index 99 99 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 100 100 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 117 117 ENDIF 118 118 119 IF( kt == nit000 ) THEN119 IF( kt == kit000 ) THEN 120 120 IF(lwp) WRITE(numout,*) 121 121 IF(lwp) WRITE(numout,*) 'tra_ldf_iso : rotated laplacian diffusion operator on ', cdtype … … 302 302 !!---------------------------------------------------------------------- 303 303 CONTAINS 304 SUBROUTINE tra_ldf_iso( kt, nit000,cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 ) ! Empty routine305 INTEGER:: kt, nit000304 SUBROUTINE tra_ldf_iso( kt, kit000,cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 ) ! Empty routine 305 INTEGER:: kt, kit000 306 306 CHARACTER(len=3) :: cdtype 307 307 REAL, DIMENSION(:,:,:) :: pgu, pgv ! tracer gradient at pstep levels 308 308 REAL, DIMENSION(:,:,:,:) :: ptb, pta 309 WRITE(*,*) 'tra_ldf_iso: You should not have seen this print! error?', kt, cdtype, pgu(1,1,1), pgv(1,1,1), &310 & 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 311 311 END SUBROUTINE tra_ldf_iso 312 312 #endif -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90
r2892 r2910 48 48 CONTAINS 49 49 50 SUBROUTINE tra_ldf_iso_grif( kt, nit000, 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 ) :: nit000 ! first time step index97 INTEGER , INTENT(in ) :: kit000 ! first time step index 98 98 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 99 99 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 128 128 !zdkt(1:jpi,1:jpj,0:1) => wrk_3d_9(:,:,1:2) 129 129 130 IF( kt == nit000 ) THEN130 IF( kt == kit000 ) THEN 131 131 IF(lwp) WRITE(numout,*) 132 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
r2892 r2910 44 44 CONTAINS 45 45 46 SUBROUTINE tra_ldf_lap( kt, nit000, 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 ) :: nit000 ! first time step index68 INTEGER , INTENT(in ) :: kit000 ! first time step index 69 69 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 70 70 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 78 78 !!---------------------------------------------------------------------- 79 79 80 IF( kt == nit000 ) THEN80 IF( kt == kit000 ) THEN 81 81 IF(lwp) WRITE(numout,*) 82 82 IF(lwp) WRITE(numout,*) 'tra_ldf_lap : iso-level laplacian diffusion on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r2892 r2910 148 148 ELSE ! Leap-Frog + Asselin filter time stepping 149 149 ! 150 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 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 152 152 ENDIF 153 153 ENDIF … … 179 179 180 180 181 SUBROUTINE tra_nxt_fix( kt, nit000, cdtype, ptb, ptn, pta, kjpt )181 SUBROUTINE tra_nxt_fix( kt, kit000, cdtype, ptb, ptn, pta, kjpt ) 182 182 !!---------------------------------------------------------------------- 183 183 !! *** ROUTINE tra_nxt_fix *** … … 203 203 !!---------------------------------------------------------------------- 204 204 INTEGER , INTENT(in ) :: kt ! ocean time-step index 205 INTEGER , INTENT(in ) :: nit000 ! first time step index205 INTEGER , INTENT(in ) :: kit000 ! first time step index 206 206 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 207 207 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 215 215 !!---------------------------------------------------------------------- 216 216 217 IF( kt == nit000 ) THEN217 IF( kt == kit000 ) THEN 218 218 IF(lwp) WRITE(numout,*) 219 219 IF(lwp) WRITE(numout,*) 'tra_nxt_fix : time stepping', cdtype … … 246 246 247 247 248 SUBROUTINE tra_nxt_vvl( kt, nit000, cdtype, ptb, ptn, pta, kjpt )248 SUBROUTINE tra_nxt_vvl( kt, kit000, cdtype, ptb, ptn, pta, kjpt ) 249 249 !!---------------------------------------------------------------------- 250 250 !! *** ROUTINE tra_nxt_vvl *** … … 271 271 !!---------------------------------------------------------------------- 272 272 INTEGER , INTENT(in ) :: kt ! ocean time-step index 273 INTEGER , INTENT(in ) :: nit000 ! first time step index273 INTEGER , INTENT(in ) :: kit000 ! first time step index 274 274 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 275 275 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 284 284 !!---------------------------------------------------------------------- 285 285 286 IF( kt == nit000 ) THEN286 IF( kt == kit000 ) THEN 287 287 IF(lwp) WRITE(numout,*) 288 288 IF(lwp) WRITE(numout,*) 'tra_nxt_vvl : time stepping', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90
r2892 r2910 48 48 CONTAINS 49 49 50 SUBROUTINE tra_zdf_exp( kt, nit000, 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 ) :: nit000 ! first time step index79 INTEGER , INTENT(in ) :: kit000 ! first time step index 80 80 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 81 81 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 94 94 ENDIF 95 95 96 IF( kt == nit000 ) THEN96 IF( kt == kit000 ) THEN 97 97 IF(lwp) WRITE(numout,*) 98 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
r2892 r2910 55 55 CONTAINS 56 56 57 SUBROUTINE tra_zdf_imp( kt, nit000, 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 ) :: nit000 ! first time step index81 INTEGER , INTENT(in ) :: kit000 ! first time step index 82 82 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 83 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 94 94 ENDIF 95 95 96 IF( kt == nit000 ) THEN96 IF( kt == kit000 ) THEN 97 97 IF(lwp)WRITE(numout,*) 98 98 IF(lwp)WRITE(numout,*) 'tra_zdf_imp : implicit vertical mixing on ', cdtype -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trc.F90
r2892 r2910 103 103 !! variables to average over physics over passive tracer sub-steps. 104 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 (:,:,:) :: wn_tm!: k-vertical velocity average [m/s]108 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: avt_tm!: vertical viscosity & diffusivity coeff. at w-point [m2/s]109 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: sshn_tm!: average ssh for the now step [m]110 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: sshb_hold!:hold sshb from the beginning of each sub-stepping[m]111 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: sshu_n_tm!: average ssh for the now step [m]112 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::sshu_b_hold !:hold sshb from the beginning of each sub-stepping[m]113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: sshv_n_tm!: average ssh for the now step [m]114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::sshv_b_hold !:hold sshb from the beginning of each sub-stepping[m]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(:,:,:) :: wn_tm !: k-vertical velocity average [m/s] 108 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_tm !: vertical viscosity & diffusivity coeff. at w-point [m2/s] 109 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshn_tm !: average ssh for the now step [m] 110 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshb_hold !:hold sshb from the beginning of each sub-stepping[m] 111 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshu_n_tm !: average ssh for the now step [m] 112 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshu_b_hold !:hold sshb from the beginning of each sub-stepping[m] 113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshv_n_tm !: average ssh for the now step [m] 114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshv_b_hold !:hold sshb from the beginning of each sub-stepping[m] 115 115 #if defined key_ldfslp 116 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: wslpi_tm !: i-direction slope at u-, w-points 117 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: wslpj_tm !: j-direction slope at u-, w-points 118 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: uslp_tm !: j-direction slope at u-, w-points 119 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: vslp_tm !: j-direction slope at u-, w-points 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] 116 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_tm !: i-direction slope at u-, w-points 117 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpj_tm !: j-direction slope at u-, w-points 118 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp_tm !: j-direction slope at u-, w-points 119 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vslp_tm !: j-direction slope at u-, w-points 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 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf_tm !: river runoff 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: h_rnf_tm !: depth in metres to the bottom of the relevant grid box 132 ! 130 133 # if defined key_zdfddm 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: avs_tm !: salinity vertical diffusivity coeff. at w-point [m/s] 132 # endif 134 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_tm !: salinity vertical diffusivity coeff. at w-point [m/s] 135 # endif 136 ! 133 137 #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-points138 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 3D coefficients ** at T-,U-,V-,W-points 135 139 #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-points140 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 2D coefficients ** at T-,U-,V-,W-points 137 141 #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-points142 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 1D coefficients ** at T-,U-,V-,W-points 139 143 #else 140 REAL(wp), PUBLIC :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 0D coefficients ** at T-,U-,V-,W-points 141 #endif 144 REAL(wp), PUBLIC :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 0D coefficients ** at T-,U-,V-,W-points 145 #endif 146 ! 147 #if defined key_traldf_eiv 148 # if defined key_traldf_c3d 149 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 3D coefficients ** 150 # elif defined key_traldf_c2d 151 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 2D coefficients ** 152 # elif defined key_traldf_c1d 153 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_tm , aeiv_tm, aeiw_tm !: ** 1D coefficients ** 154 # else 155 REAL(wp), PUBLIC :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 0D coefficients ** 156 # endif 157 #endif 158 159 ! Temporary physical arrays for sub_stepping 160 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsn_temp 161 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: un_temp,vn_temp,wn_temp !: hold current values of avt, un, vn, wn 162 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_temp !: hold current values of avt, un, vn, wn 163 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3t_temp,e3u_temp,e3v_temp,e3w_temp !: hold current values 164 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshn_temp, sshb_temp, ssha_temp, rnf_temp,h_rnf_temp 165 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshu_n_temp, sshu_b_temp, sshu_a_temp 166 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshf_n_temp, sshf_b_temp, sshf_a_temp 167 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshv_n_temp, sshv_b_temp, sshv_a_temp 168 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hu_temp, hv_temp, hur_temp, hvr_temp 169 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivn_temp, rotn_temp 170 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivb_temp, rotb_temp 171 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_temp, qsr_temp, fr_i_temp,wndm_temp 172 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_temp, emps_temp, emp_b_temp 173 ! 174 #if defined key_ldfslp 175 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_temp, wslpj_temp, uslp_temp, vslp_temp !: hold current values 176 #endif 177 ! 178 # if defined key_zdfddm 179 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_temp !: salinity vertical diffusivity coeff. at w-point [m/s] 180 # endif 181 ! 182 #if defined key_traldf_c3d 183 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 184 #elif defined key_traldf_c2d 185 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 186 #elif defined key_traldf_c1d 187 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 188 #else 189 REAL(wp), PUBLIC :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 190 #endif 191 ! 142 192 #if defined key_traldf_eiv 143 193 # if defined key_traldf_c3d 144 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_tm , aeiv_tm , aeiw_tm!: ** 3D coefficients **194 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 3D coefficients ** 145 195 # elif defined key_traldf_c2d 146 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_tm , aeiv_tm , aeiw_tm!: ** 2D coefficients **196 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 2D coefficients ** 147 197 # elif defined key_traldf_c1d 148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_tm , aeiv_tm, aeiw_tm!: ** 1D coefficients **198 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_temp , aeiv_temp, aeiw_temp !: ** 1D coefficients ** 149 199 # else 150 REAL(wp), PUBLIC :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 0D coefficients ** 151 # endif 152 # endif 153 154 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: rnf_tm !: river runoff 155 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) :: h_rnf_tm !: depth in metres to the bottom of the relevant grid box 156 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_temp,un_temp,vn_temp,wn_temp !: hold current values of avt, un, vn, wn 157 #if defined key_ldfslp 158 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_temp,wslpj_temp, uslp_temp, vslp_temp !: hold current values 159 #endif 160 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3t_temp,e3u_temp,e3v_temp,e3w_temp !: hold current values 161 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:):: sshn_temp, sshb_temp, ssha_temp, rnf_temp,h_rnf_temp 162 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:):: sshu_n_temp, sshu_b_temp, sshu_a_temp 163 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:):: sshf_n_temp, sshf_b_temp, sshf_a_temp 164 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:):: sshv_n_temp, sshv_b_temp, sshv_a_temp 165 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:):: hu_temp, hv_temp, hur_temp, hvr_temp 166 REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:):: hdivn_temp, rotn_temp 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 ** 200 REAL(wp), PUBLIC :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 0D coefficients ** 191 201 # endif 192 202 # endif -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r2892 r2910 145 145 IF( ln_zps .AND. .NOT. lk_c1d ) & ! Partial steps: before horizontal gradient of passive 146 146 & CALL zps_hde( nittrc000, jptra, trn, gtru, gtrv ) ! tracers at the bottom ocean level 147 148 147 ! 148 IF( nn_dttrc /= 1 ) CALL trc_sub_ini ! Initialize variables for substepping passive tracers 149 149 ! 150 150 trai = 0._wp ! Computation content of all tracers … … 171 171 CALL prt_ctl_trc_info( charout ) 172 172 CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) 173 ENDIF174 175 IF(nn_dttrc .NE. 1) THEN176 CALL trc_sub_ini !initialize variables for substepping passive tracers177 173 ENDIF 178 174 ! -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r2892 r2910 51 51 !!------------------------------------------------------------------- 52 52 53 IF(nn_dttrc .NE. 1) THEN 54 CALL trc_sub_stp(kt) 55 ENDIF 53 IF( nn_dttrc /= 1 ) CALL trc_sub_stp( kt ) ! averaging physical variables for sub-stepping 54 56 55 IF( MOD( kt , nn_dttrc ) == 0 ) THEN ! only every nn_dttrc time step 57 58 56 ! 59 57 IF(ln_ctl) THEN … … 73 71 CALL trc_trp( kt ) ! transport of passive tracers 74 72 IF( kt == nittrc000 ) CALL iom_close( numrtr ) ! close input passive tracers restart file 75 IF( lrst_trc )CALL trc_rst_wri( kt ) ! write tracer restart file76 IF( lk_trdmld_trc )CALL trd_mld_trc( kt ) ! trends: Mixed-layer73 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 77 75 ! 78 IF(nn_dttrc .NE. 1) THEN 79 CALL trc_sub_reset(kt) 80 ENDIF 76 IF( nn_dttrc /= 1 ) CALL trc_sub_reset( kt ) ! resetting physical variables when sub-stepping 77 ! 81 78 ENDIF 82 79 -
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r2904 r2910 26 26 USE divcur ! hor. divergence and curl (div & cur routines) 27 27 USE sbcrnf, ONLY: h_rnf, nk_rnf ! River runoff 28 USE trc, ONLY: nn_dttrc, nittrc000 !TOP_TRC substepping29 28 USE sbc_oce ! surface boundary condition: ocean 30 29 USE bdy_oce … … 36 35 IMPLICIT NONE 37 36 38 PUBLIC trc_sub_stp ! called by trc_stp 39 PUBLIC trc_sub_ini ! called by trc_ini to initialize substepping arrays. 40 PUBLIC trc_sub_reset ! called by trc_stp to reset physics variables 41 PUBLIC trc_sub_ssh ! called by trc_stp to reset physics variables 42 37 PUBLIC trc_sub_stp ! called by trc_stp 38 PUBLIC trc_sub_ini ! called by trc_ini to initialize substepping arrays. 39 PUBLIC trc_sub_reset ! called by trc_stp to reset physics variables 40 PUBLIC trc_sub_ssh ! called by trc_stp to reset physics variables 41 42 !!* Module variables 43 REAL(wp) :: r1_ndttrc ! 1 / nn_dttrc 44 REAL(wp) :: r1_ndttrcp1 ! 1 / (nn_dttrc+1) 45 46 !!* Substitution 43 47 # include "top_substitute.h90" 44 45 48 !!---------------------------------------------------------------------- 46 49 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 59 62 !! on TOP steps, calculate averages. 60 63 !!------------------------------------------------------------------- 61 INTEGER, INTENT( in ) :: kt !ocean time-step index 62 INTEGER :: ji,jj,jk !dummy loop indices 64 INTEGER, INTENT( in ) :: kt ! ocean time-step index 65 INTEGER :: ji,jj,jk ! dummy loop indices 66 REAL(wp) :: z1_ne3t, z1_ne3u, z1_ne3v, z1_ne3w 63 67 !!------------------------------------------------------------------- 64 68 … … 67 71 IF(lwp) WRITE(numout,*) 'trc_sub_stp : substepping of the passive tracers' 68 72 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 69 70 sshb_hold(:,:)=sshn(:,:) 71 sshu_b_hold(:,:)=sshu_n(:,:) 72 sshv_b_hold(:,:)=sshv_n(:,:) 73 emp_b_hold(:,:)=emp_b(:,:) 73 ! 74 sshb_hold (:,:) = sshn (:,:) 75 sshu_b_hold(:,:) = sshu_n(:,:) 76 sshv_b_hold(:,:) = sshv_n(:,:) 77 emp_b_hold (:,:) = emp_b (:,:) 78 ! 79 r1_ndttrc = 1._wp / REAL( nn_dttrc , wp ) 80 r1_ndttrcp1 = 1._wp / REAL( nn_dttrc + 1, wp ) 81 ! 74 82 ENDIF 83 75 84 IF( MOD( kt , nn_dttrc ) /= 0 ) THEN 85 ! 86 un_tm (:,:,:) = un_tm (:,:,:) + un (:,:,:) * fse3u(:,:,:) 87 vn_tm (:,:,:) = vn_tm (:,:,:) + vn (:,:,:) * fse3v(:,:,:) 88 wn_tm (:,:,:) = wn_tm (:,:,:) + wn (:,:,:) * fse3w(:,:,:) 89 tsn_tm (:,:,:,jp_tem) = tsn_tm (:,:,:,jp_tem) + tsn (:,:,:,jp_tem) * fse3t(:,:,:) 90 tsn_tm (:,:,:,jp_sal) = tsn_tm (:,:,:,jp_tem) + tsn (:,:,:,jp_sal) * fse3t(:,:,:) 91 avt_tm (:,:,:) = avt_tm (:,:,:) + avt (:,:,:) * fse3w(:,:,:) 92 # if defined key_zdfddm 93 avs_tm (:,:,:) = avs_tm (:,:,:) + avs (:,:,:) * fse3w(:,:,:) 94 # endif 95 #if defined key_ldfslp 96 wslpi_tm(:,:,:) = wslpi_tm(:,:,:) + wslpi(:,:,:) * fse3w(:,:,:) 97 wslpj_tm(:,:,:) = wslpj_tm(:,:,:) + wslpj(:,:,:) * fse3w(:,:,:) 98 uslp_tm (:,:,:) = uslp_tm (:,:,:) + uslp (:,:,:) * fse3u(:,:,:) 99 vslp_tm (:,:,:) = vslp_tm (:,:,:) + vslp (:,:,:) * fse3v(:,:,:) 100 #endif 101 ! 102 sshn_tm (:,:) = sshn_tm (:,:) + sshn (:,:) 103 sshu_n_tm(:,:) = sshu_n_tm(:,:) + sshu_n(:,:) 104 sshv_n_tm(:,:) = sshv_n_tm(:,:) + sshv_n(:,:) 105 rnf_tm (:,:) = rnf_tm (:,:) + rnf (:,:) 106 h_rnf_tm (:,:) = h_rnf_tm (:,:) + h_rnf (:,:) 107 hmld_tm (:,:) = hmld_tm (:,:) + hmld (:,:) 108 fr_i_tm (:,:) = fr_i_tm (:,:) + fr_i (:,:) 109 emp_tm (:,:) = emp_tm (:,:) + emp (:,:) 110 emps_tm (:,:) = emps_tm (:,:) + emps (:,:) 111 qsr_tm (:,:) = qsr_tm (:,:) + qsr (:,:) 112 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:) 113 ! 114 #if defined key_traldf_c3d 115 ahtt_tm (:,:,:) = ahtt_tm (:,:,:) + ahtt(:,:,:) * fse3t(:,:,:) 116 ahtu_tm (:,:,:) = ahtu_tm (:,:,:) + ahtu(:,:,:) * fse3u(:,:,:) 117 ahtv_tm (:,:,:) = ahtv_tm (:,:,:) + ahtv(:,:,:) * fse3v(:,:,:) 118 ahtw_tm (:,:,:) = ahtw_tm (:,:,:) + ahtw(:,:,:) * fse3w(:,:,:) 119 #elif defined key_traldf_c2d 120 ahtt_tm (:,:) = ahtt_tm (:,:) + ahtt(:,:) 121 ahtu_tm (:,:) = ahtu_tm (:,:) + ahtu(:,:) 122 ahtv_tm (:,:) = ahtv_tm (:,:) + ahtv(:,:) 123 ahtw_tm (:,:) = ahtw_tm (:,:) + ahtw(:,:) 124 #elif defined key_traldf_c1d 125 ahtt_tm (:) = ahtt_tm (:,:) + ahtt(:) 126 ahtu_tm (:) = ahtu_tm (:,:) + ahtu(:) 127 ahtv_tm (:) = ahtv_tm (:,:) + ahtv(:) 128 ahtw_tm (:) = ahtw_tm (:,:) + ahtw(:) 129 #else 130 ahtt_tm = ahtt_tm + ahtt 131 ahtu_tm = ahtu_tm + ahtu 132 ahtv_tm = ahtv_tm + ahtv 133 ahtw_tm = ahtw_tm + ahtw 134 #endif 135 #if defined key_traldf_eiv 136 # if defined key_traldf_c3d 137 aieu_tm (:,:,:) = aieu_tm (:,:,:) + aieu(:,:,:) * fse3u(:,:,:) 138 aiev_tm (:,:,:) = aiev_tm (:,:,:) + aiev(:,:,:) * fse3v(:,:,:) 139 aiew_tm (:,:,:) = aiew_tm (:,:,:) + aiew(:,:,:) * fse3w(:,:,:) 140 # elif defined key_traldf_c2d 141 aieu_tm (:,:) = aieu_tm (:,:) + aieu(:,:) 142 aiev_tm (:,:) = aiev_tm (:,:) + aiev(:,:) 143 aiew_tm (:,:) = aiew_tm (:,:) + aiew(:,:) 144 # elif defined key_traldf_c1d 145 aieu_tm (:) = aieu_tm (:,:) + aieu(:) 146 aiev_tm (:) = aiev_tm (:,:) + aiev(:) 147 aiew_tm (:) = aiew_tm (:,:) + aiew(:) 148 # else 149 aieu_tm = aieu_tm + aieu 150 aiev_tm = aiev_tm + aiev 151 aiew_tm = aiew_tm + aiew 152 # endif 153 #endif 154 155 ELSE ! It is time to substep 156 ! 1. set temporary arrays to hold physics variables 157 sshn_temp (:,:) = sshn (:,:) 158 sshu_n_temp(:,:) = sshu_n(:,:) 159 sshv_n_temp(:,:) = sshv_n(:,:) 160 sshf_n_temp(:,:) = sshf_n(:,:) 161 sshb_temp (:,:) = sshb (:,:) 162 sshu_b_temp(:,:) = sshu_b(:,:) 163 sshv_b_temp(:,:) = sshv_b(:,:) 164 ssha_temp (:,:) = ssha (:,:) 165 sshu_a_temp(:,:) = sshu_a(:,:) 166 sshv_a_temp(:,:) = sshv_a(:,:) 167 rnf_temp (:,:) = rnf (:,:) 168 h_rnf_temp (:,:) = h_rnf (:,:) 169 rotn_temp (:,:,:) = rotn (:,:,:) 170 hdivn_temp (:,:,:) = hdivn (:,:,:) 171 rotb_temp (:,:,:) = rotb (:,:,:) 172 hdivb_temp (:,:,:) = hdivb (:,:,:) 173 un_temp (:,:,:) = un (:,:,:) 174 vn_temp (:,:,:) = vn (:,:,:) 175 wn_temp (:,:,:) = wn (:,:,:) 176 tsn_temp (:,:,:,:) = tsn (:,:,:,:) 177 avt_temp (:,:,:) = avt (:,:,:) 178 # if defined key_zdfddm 179 avs_temp(:,:,:) = avs (:,:,:) 180 # endif 181 hmld_temp (:,:) = hmld (:,:) 182 qsr_temp (:,:) = qsr (:,:) 183 wndm_temp (:,:) = wndm (:,:) 184 emp_temp (:,:) = emp (:,:) 185 emp_b_temp (:,:) = emp_b (:,:) 186 emps_temp (:,:) = emps (:,:) 187 #if defined key_ldfslp 188 wslpi_temp (:,:,:) = wslpi (:,:,:) 189 wslpj_temp (:,:,:) = wslpj (:,:,:) 190 uslp_temp (:,:,:) = uslp (:,:,:) 191 vslp_temp (:,:,:) = vslp (:,:,:) 192 #endif 193 hu_temp (:,:) = hu (:,:) 194 hv_temp (:,:) = hv (:,:) 195 hur_temp (:,:) = hur (:,:) 196 hvr_temp (:,:) = hvr (:,:) 197 #if defined key_traldf_c3d 198 ahtu_temp (:,:,:) = ahtu (:,:,:) 199 ahtv_temp (:,:,:) = ahtv (:,:,:) 200 ahtw_temp (:,:,:) = ahtw (:,:,:) 201 ahtt_temp (:,:,:) = ahtt (:,:,:) 202 #elif defined key_traldf_c2d 203 ahtu_temp (:,:) = ahtu (:,:) 204 ahtv_temp (:,:) = ahtv (:,:) 205 ahtw_temp (:,:) = ahtw (:,:) 206 ahtt_temp (:,:) = ahtt (:,:) 207 #elif defined key_traldf_c1d 208 ahtu_temp (:) = ahtu (:) 209 ahtv_temp (:) = ahtv (:) 210 ahtw_temp (:) = ahtw (:) 211 ahtt_temp (:) = ahtt (:) 212 #else 213 ahtu_temp = ahtu 214 ahtv_temp = ahtv 215 ahtw_temp = ahtw 216 ahtt_temp = ahtt 217 #endif 218 219 #if defined key_traldf_eiv 220 # if defined key_traldf_c3d 221 aeiu_temp (:,:,:) = aeiu(:,:,:) 222 aeiv_temp (:,:,:) = aeiv(:,:,:) 223 aeiw_temp (:,:,:) = aeiw(:,:,:) 224 # elif defined key_traldf_c2d 225 aeiu_temp (:,:) = aeiu(:,:) 226 aeiv_temp (:,:) = aeiv(:,:) 227 aeiw_temp (:,:) = aeiw(:,:) 228 # elif defined key_traldf_c1d 229 aeiu_temp (:) = aeiu(:) 230 aeiv_temp (:) = aeiv(:) 231 aeiw_temp (:) = aeiw(:) 232 # else 233 aeiu_temp = aeiu 234 aeiv_temp = aeiv 235 aeiw_temp = aeiw 236 # endif 237 #endif 238 ! 239 DO jk = 1, jpk 240 e3t_temp(:,:,jk) = fse3t(:,:,jk) 241 e3u_temp(:,:,jk) = fse3u(:,:,jk) 242 e3v_temp(:,:,jk) = fse3v(:,:,jk) 243 e3w_temp(:,:,jk) = fse3w(:,:,jk) 244 ENDDO 245 IF( lk_vvl ) THEN ! Update Now Vertical coord. ! (only in vvl case) 246 ! !------------------------------! 247 DO jk = 1, jpk 248 fse3t (:,:,jk) = fse3t_n (:,:,jk) ! vertical scale factors stored in fse3. arrays 249 fse3u (:,:,jk) = fse3u_n (:,:,jk) 250 fse3v (:,:,jk) = fse3v_n (:,:,jk) 251 fse3w (:,:,jk) = fse3w_n (:,:,jk) 252 END DO 253 ENDIF 254 255 ! 2. Create averages and reassign variables 256 sshn_tm (:,:) = sshn_tm (:,:) + sshn (:,:) 257 sshu_n_tm(:,:) = sshu_n_tm (:,:) + sshu_n(:,:) 258 sshv_n_tm(:,:) = sshv_n_tm (:,:) + sshv_n(:,:) 259 rnf_tm (:,:) = rnf_tm (:,:) + rnf (:,:) 260 h_rnf_tm (:,:) = h_rnf_tm (:,:) + h_rnf (:,:) 261 hmld_tm (:,:) = hmld_tm (:,:) + hmld (:,:) 262 fr_i_tm (:,:) = fr_i_tm (:,:) + fr_i (:,:) 263 emp_tm (:,:) = emp_tm (:,:) + emp (:,:) 264 emps_tm (:,:) = emps_tm (:,:) + emps (:,:) 265 qsr_tm (:,:) = qsr_tm (:,:) + qsr (:,:) 266 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:) 267 ! 268 sshn (:,:) = sshn_tm (:,:) * r1_ndttrcp1 269 sshu_n (:,:) = sshu_n_tm (:,:) * r1_ndttrcp1 270 sshv_n (:,:) = sshv_n_tm (:,:) * r1_ndttrcp1 271 sshb (:,:) = sshb_hold (:,:) 272 sshu_b (:,:) = sshu_b_hold(:,:) 273 sshv_b (:,:) = sshv_b_hold(:,:) 274 rnf (:,:) = rnf_tm (:,:) * r1_ndttrcp1 275 h_rnf (:,:) = h_rnf_tm (:,:) * r1_ndttrcp1 276 hmld (:,:) = hmld_tm (:,:) * r1_ndttrcp1 277 fr_i (:,:) = fr_i_tm (:,:) * r1_ndttrcp1 278 ! variables that are initialized after averages initialized 279 emp_b (:,:) = emp_b_hold (:,:) 280 IF( kt == nittrc000 ) THEN 281 wndm (:,:) = wndm_tm (:,:) * r1_ndttrc 282 qsr (:,:) = qsr_tm (:,:) * r1_ndttrc 283 emp (:,:) = emp_tm (:,:) * r1_ndttrc 284 emps (:,:) = emps_tm (:,:) * r1_ndttrc 285 ELSE 286 wndm (:,:) = wndm_tm (:,:) * r1_ndttrcp1 287 qsr (:,:) = qsr_tm (:,:) * r1_ndttrcp1 288 emp (:,:) = emp_tm (:,:) * r1_ndttrcp1 289 emps (:,:) = emps_tm (:,:) * r1_ndttrcp1 290 ENDIF 291 292 un_tm (:,:,:) = un_tm (:,:,:) + un (:,:,:) * e3u_temp(:,:,:) 293 vn_tm (:,:,:) = vn_tm (:,:,:) + vn (:,:,:) * e3v_temp(:,:,:) 294 wn_tm (:,:,:) = wn_tm (:,:,:) + wn (:,:,:) * e3w_temp(:,:,:) 295 tsn_tm (:,:,:,jp_tem) = tsn_tm (:,:,:,jp_tem) + tsn (:,:,:,jp_tem) * e3t_temp(:,:,:) 296 tsn_tm (:,:,:,jp_sal) = tsn_tm (:,:,:,jp_tem) + tsn (:,:,:,jp_sal) * e3t_temp(:,:,:) 297 avt_tm (:,:,:) = avt_tm (:,:,:) + avt (:,:,:) * e3w_temp(:,:,:) 298 # if defined key_zdfddm 299 avs_tm (:,:,:) = avs_tm (:,:,:) + avs (:,:,:) * e3w_temp(:,:,:) 300 # endif 301 #if defined key_ldfslp 302 wslpi_tm (:,:,:) = wslpi_tm(:,:,:) + wslpi(:,:,:) * e3w_temp(:,:,:) 303 wslpj_tm (:,:,:) = wslpj_tm(:,:,:) + wslpj(:,:,:) * e3w_temp(:,:,:) 304 uslp_tm (:,:,:) = uslp_tm (:,:,:) + uslp (:,:,:) * e3u_temp(:,:,:) 305 vslp_tm (:,:,:) = vslp_tm (:,:,:) + vslp (:,:,:) * e3v_temp(:,:,:) 306 #endif 307 ! 76 308 DO jk = 1, jpk 77 309 DO jj = 1, jpj 78 310 DO ji = 1, jpi 79 un_tm(ji,jj,jk)= un_tm(ji,jj,jk)+un(ji,jj,jk)*fse3u(ji,jj,jk) 80 vn_tm(ji,jj,jk)= vn_tm(ji,jj,jk)+vn(ji,jj,jk)*fse3v(ji,jj,jk) 81 wn_tm(ji,jj,jk)= wn_tm(ji,jj,jk)+wn(ji,jj,jk)*fse3w(ji,jj,jk) 82 avt_tm(ji,jj,jk)= avt_tm(ji,jj,jk)+avt(ji,jj,jk)*fse3t(ji,jj,jk) 83 tsn_tm(ji,jj,jk,jp_sal)= tsn_tm(ji,jj,jk,jp_sal)+tsn(ji,jj,jk,jp_sal)*fse3t(ji,jj,jk) 84 tsn_tm(ji,jj,jk,jp_tem)= tsn_tm(ji,jj,jk,jp_tem)+tsn(ji,jj,jk,jp_tem)*fse3t(ji,jj,jk) 311 z1_ne3t = r1_ndttrcp1 / fse3t(ji,jj,jk) 312 z1_ne3u = r1_ndttrcp1 / fse3u(ji,jj,jk) 313 z1_ne3v = r1_ndttrcp1 / fse3v(ji,jj,jk) 314 z1_ne3w = r1_ndttrcp1 / fse3w(ji,jj,jk) 315 ! 316 un (ji,jj,jk) = un_tm (ji,jj,jk) * z1_ne3u 317 vn (ji,jj,jk) = vn_tm (ji,jj,jk) * z1_ne3v 318 wn (ji,jj,jk) = wn_tm (ji,jj,jk) * z1_ne3w 319 tsn (ji,jj,jk,jp_tem) = tsn_tm (ji,jj,jk,jp_tem) * z1_ne3t 320 tsn (ji,jj,jk,jp_sal) = tsn_tm (ji,jj,jk,jp_sal) * z1_ne3t 321 avt (ji,jj,jk) = avt_tm (ji,jj,jk) * z1_ne3w 85 322 # if defined key_zdfddm 86 avs _tm(ji,jj,jk)= avs_tm(ji,jj,jk)+avs(ji,jj,jk)*fse3w(ji,jj,jk)323 avs (ji,jj,jk) = avs_tm (ji,jj,jk) * z1_ne3w 87 324 # endif 88 325 #if defined key_ldfslp 89 wslpi_tm(ji,jj,jk)= wslpi_tm(ji,jj,jk)+wslpi(ji,jj,jk)*fse3w(ji,jj,jk) 90 wslpj_tm(ji,jj,jk)= wslpj_tm(ji,jj,jk)+wslpj(ji,jj,jk)*fse3w(ji,jj,jk) 91 uslp_tm(ji,jj,jk)= uslp_tm(ji,jj,jk)+uslp(ji,jj,jk)*fse3u(ji,jj,jk) 92 vslp_tm(ji,jj,jk)= vslp_tm(ji,jj,jk)+vslp(ji,jj,jk)*fse3v(ji,jj,jk) 93 #endif 94 END DO 95 END DO 96 END DO 97 DO jj = 1, jpj 98 DO ji = 1, jpi 99 sshn_tm(ji,jj)=sshn_tm(ji,jj)+sshn(ji,jj) 100 sshu_n_tm(ji,jj)=sshu_n_tm(ji,jj)+sshu_n(ji,jj) 101 sshv_n_tm(ji,jj)=sshv_n_tm(ji,jj)+sshv_n(ji,jj) 102 rnf_tm(ji,jj)= rnf_tm(ji,jj)+rnf(ji,jj) 103 h_rnf_tm(ji,jj)= h_rnf_tm(ji,jj)+h_rnf(ji,jj) 104 hmld_tm(ji,jj)=hmld_tm(ji,jj)+hmld(ji,jj) 105 qsr_tm(ji,jj)=qsr_tm(ji,jj)+qsr(ji,jj) 106 fr_i_tm(ji,jj)=fr_i_tm(ji,jj)+fr_i(ji,jj) 107 wndm_tm(ji,jj)=wndm_tm(ji,jj)+wndm(ji,jj) 108 emp_tm(ji,jj)=emp_tm(ji,jj)+emp(ji,jj) 109 emps_tm(ji,jj)=emps_tm(ji,jj)+emps(ji,jj) 110 END DO 111 END DO 326 wslpi(ji,jj,jk) = wslpi_tm(ji,jj,jk) * z1_ne3w 327 wslpj(ji,jj,jk) = wslpj_tm(ji,jj,jk) * z1_ne3w 328 uslp (ji,jj,jk) = uslp_tm (ji,jj,jk) * z1_ne3u 329 vslp (ji,jj,jk) = vslp_tm (ji,jj,jk) * z1_ne3v 330 #endif 331 ENDDO 332 ENDDO 333 ENDDO 334 112 335 #if defined key_traldf_c3d 113 DO jk = 1, jpk 114 DO jj = 1, jpj 115 DO ji = 1, jpi 116 ahtt_tm(ji,jj,jk)= ahtt_tm(ji,jj,jk)+ahtt(ji,jj,jk)*fse3t(ji,jj,jk) 117 ahtu_tm(ji,jj,jk)= ahtu_tm(ji,jj,jk)+ahtu(ji,jj,jk)*fse3u(ji,jj,jk) 118 ahtv_tm(ji,jj,jk)= ahtv_tm(ji,jj,jk)+ahtv(ji,jj,jk)*fse3v(ji,jj,jk) 119 ahtw_tm(ji,jj,jk)= ahtw_tm(ji,jj,jk)+ahtw(ji,jj,jk)*fse3w(ji,jj,jk) 120 END DO 121 END DO 122 END DO 336 ahtt_tm (:,:,:) = ahtt_tm (:,:,:) + ahtt(:,:,:) * e3t_temp(:,:,:) 337 ahtu_tm (:,:,:) = ahtu_tm (:,:,:) + ahtu(:,:,:) * e3u_temp(:,:,:) 338 ahtv_tm (:,:,:) = ahtv_tm (:,:,:) + ahtv(:,:,:) * e3v_temp(:,:,:) 339 ahtw_tm (:,:,:) = ahtw_tm (:,:,:) + ahtw(:,:,:) * e3w_temp(:,:,:) 340 ! 341 ahtt (:,:,:) = ahtt_tm (:,:,:) * r1_ndttrcp1 / fse3t(:,:,:) 342 ahtu (:,:,:) = ahtu_tm (:,:,:) * r1_ndttrcp1 / fse3u(:,:,:) 343 ahtv (:,:,:) = ahtv_tm (:,:,:) * r1_ndttrcp1 / fse3v(:,:,:) 344 ahtw (:,:,:) = ahtw_tm (:,:,:) * r1_ndttrcp1 / fse3w(:,:,:) 123 345 #elif defined key_traldf_c2d 124 DO jj = 1, jpj 125 DO ji = 1, jpi 126 ahtt_tm(ji,jj)= ahtt_tm(ji,jj)+ahtt(ji,jj) 127 ahtu_tm(ji,jj)= ahtu_tm(ji,jj)+ahtu(ji,jj) 128 ahtv_tm(ji,jj)= ahtv_tm(ji,jj)+ahtv(ji,jj) 129 ahtw_tm(ji,jj)= ahtw_tm(ji,jj)+ahtw(ji,jj) 130 END DO 131 END DO 346 ahtt_tm (:,:) = ahtt_tm (:,:) + ahtt(:,:) 347 ahtu_tm (:,:) = ahtu_tm (:,:) + ahtu(:,:) 348 ahtv_tm (:,:) = ahtv_tm (:,:) + ahtv(:,:) 349 ahtw_tm (:,:) = ahtw_tm (:,:) + ahtw(:,:) 350 ! 351 ahtt (:,:) = ahtt_tm (:,:) * r1_ndttrcp1 352 ahtu (:,:) = ahtu_tm (:,:) * r1_ndttrcp1 353 ahtv (:,:) = ahtv_tm (:,:) * r1_ndttrcp1 354 ahtw (:,:) = ahtw_tm (:,:) * r1_ndttrcp1 132 355 #elif defined key_traldf_c1d 133 DO jk = 1, jpk 134 ahtt_tm(jk)= ahtt_tm(jk)+ahtt(jk) 135 ahtu_tm(jk)= ahtu_tm(jk)+ahtu(jk) 136 ahtv_tm(jk)= ahtv_tm(jk)+ahtv(jk) 137 ahtw_tm(jk)= ahtw_tm(jk)+ahtw(jk) 138 END DO 356 ahtt_tm (:) = ahtt_tm (:,:) + ahtt(:) 357 ahtu_tm (:) = ahtu_tm (:,:) + ahtu(:) 358 ahtv_tm (:) = ahtv_tm (:,:) + ahtv(:) 359 ahtw_tm (:) = ahtw_tm (:,:) + ahtw(:) 360 ! 361 ahtt (:) = ahtt_tm (:) * r1_ndttrcp1 362 ahtu (:) = ahtu_tm (:) * r1_ndttrcp1 363 ahtv (:) = ahtv_tm (:) * r1_ndttrcp1 364 ahtw (:) = ahtw_tm (:) * r1_ndttrcp1 139 365 #else 140 ahtt_tm= ahtt_tm+ahtt 141 ahtu_tm= ahtu_tm+ahtu 142 ahtv_tm= ahtv_tm+ahtv 143 ahtw_tm= ahtw_tm+ahtw 144 #endif 366 ahtt_tm = ahtt_tm + ahtt 367 ahtu_tm = ahtu_tm + ahtu 368 ahtv_tm = ahtv_tm + ahtv 369 ahtw_tm = ahtw_tm + ahtw 370 ! 371 ahtt = ahtt_tm * r1_ndttrcp1 372 ahtu = ahtu_tm * r1_ndttrcp1 373 ahtv = ahtv_tm * r1_ndttrcp1 374 ahtw = ahtw_tm * r1_ndttrcp1 375 #endif 376 145 377 #if defined key_traldf_eiv 146 378 # if defined key_traldf_c3d 147 DO jk = 1, jpk 148 DO jj = 1, jpj 149 DO ji = 1, jpi 150 aeiu_tm(ji,jj,jk)= aeiu_tm(ji,jj,jk)+aeiu(ji,jj,jk)*fse3u(ji,jj,jk) 151 aeiv_tm(ji,jj,jk)= aeiv_tm(ji,jj,jk)+aeiv(ji,jj,jk)*fse3v(ji,jj,jk) 152 aeiw_tm(ji,jj,jk)= aeiw_tm(ji,jj,jk)+aeiw(ji,jj,jk)*fse3w(ji,jj,jk) 153 END DO 154 END DO 155 END DO 379 aeiu_tm (:,:,:) = aeiu_tm (:,:,:) + aeiu(:,:,:) * e3u_temp(:,:,:) 380 aeiv_tm (:,:,:) = aeiv_tm (:,:,:) + aeiv(:,:,:) * e3v_temp(:,:,:) 381 aeiw_tm (:,:,:) = aeiw_tm (:,:,:) + aeiw(:,:,:) * e3w_temp(:,:,:) 382 ! 383 aeiu (:,:,:) = aeiu_tm (:,:,:) * r1_ndttrcp1 / fse3u(:,:,:) 384 aeiv (:,:,:) = aeiv_tm (:,:,:) * r1_ndttrcp1 / fse3v(:,:,:) 385 aeiw (:,:,:) = aeiw_tm (:,:,:) * r1_ndttrcp1 / fse3w(:,:,:) 156 386 # elif defined key_traldf_c2d 157 DO jj = 1, jpj158 DO ji = 1, jpi159 aeiu_tm(ji,jj)= aeiu_tm(ji,jj)+aeiu(ji,jj)160 aeiv_tm(ji,jj)= aeiv_tm(ji,jj)+aeiv(ji,jj)161 aeiw_tm(ji,jj)= aeiw_tm(ji,jj)+aeiw(ji,jj)162 END DO163 END DO387 aeiu_tm (:,:) = aeiu_tm (:,:) + aeiu(:,:) 388 aeiv_tm (:,:) = aeiv_tm (:,:) + aeiv(:,:) 389 aeiw_tm (:,:) = aeiw_tm (:,:) + aeiw(:,:) 390 ! 391 aeiu (:,:) = aeiu_tm (:,:) * r1_ndttrcp1 392 aeiv (:,:) = aeiv_tm (:,:) * r1_ndttrcp1 393 aeiw (:,:) = aeiw_tm (:,:) * r1_ndttrcp1 164 394 # elif defined key_traldf_c1d 165 DO jk = 1, jpk 166 aeiu_tm(jk)= aeiu_tm(jk)+aeiu(jk) 167 aeiv_tm(jk)= aeiv_tm(jk)+aeiv(jk) 168 aeiw_tm(jk)= aeiw_tm(jk)+aeiw(jk) 169 END DO 395 aeiu_tm (:) = aeiu_tm (:,:) + aeiu(:) 396 aeiv_tm (:) = aeiv_tm (:,:) + aeiv(:) 397 aeiw_tm (:) = aeiw_tm (:,:) + aeiw(:) 398 ! 399 aeiu (:) = aeiu_tm (:) * r1_ndttrcp1 400 aeiv (:) = aeiv_tm (:) * r1_ndttrcp1 401 aeiw (:) = aeiw_tm (:) * r1_ndttrcp1 170 402 # else 171 aeiu_tm= aeiu_tm+aeiu 172 aeiv_tm= aeiv_tm+aeiv 173 aeiw_tm= aeiw_tm+aeiw 174 # endif 175 # endif 176 177 ELSE 178 ! it is time to substep 179 ! 1. set temporary arrays to hold physics variables 180 sshn_temp(:,:)=sshn(:,:) 181 sshu_n_temp(:,:)=sshu_n(:,:) 182 sshv_n_temp(:,:)=sshv_n(:,:) 183 sshf_n_temp(:,:)=sshf_n(:,:) 184 sshb_temp(:,:)=sshb(:,:) 185 sshu_b_temp(:,:)=sshu_b(:,:) 186 sshv_b_temp(:,:)=sshv_b(:,:) 187 ssha_temp(:,:)=ssha(:,:) 188 sshu_a_temp(:,:)=sshu_a(:,:) 189 sshv_a_temp(:,:)=sshv_a(:,:) 190 rnf_temp(:,:)=rnf(:,:) 191 h_rnf_temp(:,:)=h_rnf(:,:) 192 rotn_temp(:,:,:)=rotn(:,:,:) 193 hdivn_temp(:,:,:)=hdivn(:,:,:) 194 rotb_temp(:,:,:)=rotb(:,:,:) 195 hdivb_temp(:,:,:)=hdivb(:,:,:) 196 un_temp(:,:,:)=un(:,:,:) 197 vn_temp(:,:,:)=vn(:,:,:) 198 wn_temp(:,:,:)=wn(:,:,:) 199 tsn_temp(:,:,:,:)=tsn(:,:,:,:) 200 avt_temp(:,:,:)=avt(:,:,:) 201 hmld_temp(:,:)=hmld(:,:) 202 qsr_temp(:,:)=qsr(:,:) 203 wndm_temp(:,:)=wndm(:,:) 204 emp_temp(:,:)=emp(:,:) 205 emp_b_temp(:,:)=emp_b(:,:) 206 emps_temp(:,:)=emps(:,:) 403 aeiu_tm = aeiu_tm + aeiu 404 aeiv_tm = aeiv_tm + aeiv 405 aeiw_tm = aeiw_tm + aeiw 406 ! 407 aeiu = aeiu_tm * r1_ndttrcp1 408 aeiv = aeiv_tm * r1_ndttrcp1 409 aeiw = aeiw_tm * r1_ndttrcp1 410 # endif 411 #endif 412 413 CALL lbc_lnk( sshn (:,:) , 'T', 1. ) 414 CALL lbc_lnk( sshu_n(:,:) , 'U', 1. ) 415 CALL lbc_lnk( sshv_n(:,:) , 'V', 1. ) 416 CALL lbc_lnk( sshf_n(:,:) , 'F', 1. ) 417 CALL lbc_lnk( sshb (:,:) , 'T', 1. ) 418 CALL lbc_lnk( sshu_b(:,:) , 'U', 1. ) 419 CALL lbc_lnk( sshv_b(:,:) , 'V', 1. ) 420 CALL lbc_lnk( ssha (:,:) , 'T', 1. ) 421 CALL lbc_lnk( sshu_a(:,:) , 'U', 1. ) 422 CALL lbc_lnk( sshv_a(:,:) , 'V', 1. ) 423 CALL lbc_lnk( rnf (:,:) , 'T', 1. ) 424 CALL lbc_lnk( h_rnf (:,:) , 'T', 1. ) 425 CALL lbc_lnk( rotn (:,:,:) , 'F', 1. ) 426 CALL lbc_lnk( hdivn (:,:,:) , 'T', 1. ) 427 CALL lbc_lnk( rotb (:,:,:) , 'F', 1. ) 428 CALL lbc_lnk( hdivb (:,:,:) , 'T', 1. ) 429 CALL lbc_lnk( un (:,:,:) , 'U', 1. ) 430 CALL lbc_lnk( vn (:,:,:) , 'V', 1. ) 431 CALL lbc_lnk( wn (:,:,:) , 'V', 1. ) 432 CALL lbc_lnk( tsn (:,:,:,jp_tem), 'T', 1. ) 433 CALL lbc_lnk( tsn (:,:,:,jp_sal), 'T', 1. ) 434 CALL lbc_lnk( avt (:,:,:) , 'W', 1. ) 435 CALL lbc_lnk( hmld (:,:) , 'T', 1. ) 436 CALL lbc_lnk( qsr (:,:) , 'T', 1. ) 437 CALL lbc_lnk( wndm (:,:) , 'T', 1. ) 438 CALL lbc_lnk( emp (:,:) , 'T', 1. ) 439 CALL lbc_lnk( emp_b (:,:) , 'T', 1. ) 440 CALL lbc_lnk( emps (:,:) , 'T', 1. ) 207 441 #if defined key_traldf_c3d 208 ahtu_temp(:,:,:)=ahtu(:,:,:)209 ahtv_temp(:,:,:)=ahtv(:,:,:)210 ahtw_temp(:,:,:)=ahtw(:,:,:)211 ahtt_temp(:,:,:)=ahtt(:,:,:)442 CALL lbc_lnk( ahtt (:,:,:) , 'T', 1. ) 443 CALL lbc_lnk( ahtu (:,:,:) , 'U', 1. ) 444 CALL lbc_lnk( ahtv (:,:,:) , 'V', 1. ) 445 CALL lbc_lnk( ahtw (:,:,:) , 'W', 1. ) 212 446 #elif defined key_traldf_c2d 213 ahtu_temp(:,:)=ahtu(:,:) 214 ahtv_temp(:,:)=ahtv(:,:) 215 ahtw_temp(:,:)=ahtw(:,:) 216 ahtt_temp(:,:)=ahtt(:,:) 217 #elif defined key_traldf_c1d 218 ahtu_temp(:)=ahtu(:) 219 ahtv_temp(:)=ahtv(:) 220 ahtw_temp(:)=ahtw(:) 221 ahtt_temp(:)=ahtt(:) 222 #else 223 ahtu_temp=ahtu 224 ahtv_temp=ahtv 225 ahtw_temp=ahtw 226 ahtt_temp=ahtt 447 CALL lbc_lnk( ahtt (:,:) , 'T', 1. ) 448 CALL lbc_lnk( ahtu (:,:) , 'U', 1. ) 449 CALL lbc_lnk( ahtv (:,:) , 'V', 1. ) 450 CALL lbc_lnk( ahtw (:,:) , 'W', 1. ) 227 451 #endif 228 452 # if defined key_zdfddm 229 avs_temp(:,:,:)=avs(:,:,:)453 CALL lbc_lnk( avs (:,:,:) , 'W', 1. ) 230 454 # endif 231 455 #if defined key_traldf_eiv 232 456 #if defined key_traldf_c3d 233 aeiu_temp(:,:,:)=aeiu(:,:,:)234 aeiv_temp(:,:,:)=aeiv(:,:,:)235 aeiw_temp(:,:,:)=aeiw(:,:,:)457 CALL lbc_lnk( aeiu (:,:,:) , 'U', 1. ) 458 CALL lbc_lnk( aeiv (:,:,:) , 'V', 1. ) 459 CALL lbc_lnk( aeiw (:,:,:) , 'W', 1. ) 236 460 #elif defined key_traldf_c2d 237 aeiu_temp(:,:)=aeiu(:,:) 238 aeiv_temp(:,:)=aeiv(:,:) 239 aeiw_temp(:,:)=aeiw(:,:) 240 #elif defined key_traldf_c1d 241 aeiu_temp(:)=aeiu(:) 242 aeiv_temp(:)=aeiv(:) 243 aeiw_temp(:)=aeiw(:) 244 #else 245 aeiu_temp=aeiu 246 aeiv_temp=aeiv 247 aeiw_temp=aeiw 461 CALL lbc_lnk( aeiu (:,:) , 'U', 1. ) 462 CALL lbc_lnk( aeiv (:,:) , 'V', 1. ) 463 CALL lbc_lnk( aeiw (:,:) , 'W', 1. ) 248 464 #endif 249 465 #endif 250 466 #if defined key_ldfslp 251 wslpi_temp(:,:,:)=wslpi(:,:,:) 252 wslpj_temp(:,:,:)=wslpj(:,:,:) 253 uslp_temp(:,:,:)=uslp(:,:,:) 254 vslp_temp(:,:,:)=vslp(:,:,:) 255 #endif 256 hu_temp(:,:)=hu(:,:) 257 hv_temp(:,:)=hv(:,:) 258 hur_temp(:,:)=hur(:,:) 259 hvr_temp(:,:)=hvr(:,:) 260 261 ! 2. create averages and reassign variables 262 DO jj = 1, jpj 263 DO ji = 1, jpi 264 sshn_tm(ji,jj)= sshn_tm(ji,jj)+sshn(ji,jj) 265 sshn(ji,jj)=sshn_tm(ji,jj)/(nn_dttrc+1) 266 267 sshu_n_tm(ji,jj)= sshu_n_tm(ji,jj)+sshu_n(ji,jj) 268 sshu_n(ji,jj)=sshu_n_tm(ji,jj)/(nn_dttrc+1) 269 270 sshv_n_tm(ji,jj)= sshv_n_tm(ji,jj)+sshv_n(ji,jj) 271 sshv_n(ji,jj)=sshv_n_tm(ji,jj)/(nn_dttrc+1) 272 273 sshb(ji,jj)=sshb_hold(ji,jj) 274 275 sshu_b(ji,jj)=sshu_b_hold(ji,jj) 276 277 sshv_b(ji,jj)=sshv_b_hold(ji,jj) 278 279 rnf_tm(ji,jj)= rnf_tm(ji,jj)+rnf(ji,jj) 280 rnf(ji,jj)=rnf_tm(ji,jj)/(nn_dttrc+1) 281 282 h_rnf_tm(ji,jj)= h_rnf_tm(ji,jj)+h_rnf(ji,jj) 283 h_rnf(ji,jj)=h_rnf_tm(ji,jj)/(nn_dttrc+1) 284 285 hmld_tm(ji,jj)= hmld_tm(ji,jj)+hmld(ji,jj) 286 hmld(ji,jj)=hmld_tm(ji,jj)/(nn_dttrc+1) 287 288 fr_i_tm(ji,jj)= fr_i_tm(ji,jj)+fr_i(ji,jj) 289 fr_i(ji,jj)=fr_i_tm(ji,jj)/(nn_dttrc+1) 290 291 ! variables that are initialized after averages initialized 292 wndm_tm(ji,jj)= wndm_tm(ji,jj)+wndm(ji,jj) 293 IF(kt == nittrc000)THEN 294 wndm(ji,jj)=wndm_tm(ji,jj)/(nn_dttrc) 295 ELSE 296 wndm(ji,jj)=wndm_tm(ji,jj)/(nn_dttrc+1) 297 ENDIF 298 299 qsr_tm(ji,jj)= qsr_tm(ji,jj)+qsr(ji,jj) 300 IF(kt == nittrc000)THEN 301 qsr(ji,jj)=qsr_tm(ji,jj)/(nn_dttrc) 302 ELSE 303 qsr(ji,jj)=qsr_tm(ji,jj)/(nn_dttrc+1) 304 ENDIF 305 306 emp_b(ji,jj)=emp_b_hold(ji,jj) 307 308 emp_tm(ji,jj)= emp_tm(ji,jj)+emp(ji,jj) 309 IF(kt == nittrc000)THEN 310 emp(ji,jj)=emp_tm(ji,jj)/(nn_dttrc) 311 ELSE 312 emp(ji,jj)=emp_tm(ji,jj)/(nn_dttrc+1) 313 ENDIF 314 315 emps_tm(ji,jj)= emps_tm(ji,jj)+emps(ji,jj) 316 IF(kt == nittrc000)THEN 317 emps(ji,jj)=emps_tm(ji,jj)/(nn_dttrc) 318 ELSE 319 emps(ji,jj)=emps_tm(ji,jj)/(nn_dttrc+1) 320 ENDIF 321 322 END DO 323 END DO 324 DO jk = 1, jpk 325 e3t_temp(:,:,jk)= fse3t(:,:,jk) 326 e3u_temp(:,:,jk)= fse3u(:,:,jk) 327 e3v_temp(:,:,jk)= fse3v(:,:,jk) 328 e3w_temp(:,:,jk)= fse3w(:,:,jk) 329 END DO 330 IF( lk_vvl ) THEN ! Update Now Vertical coord. ! (only in vvl case) 331 ! !------------------------------! 332 DO jk = 1, jpk 333 fse3t (:,:,jk) = fse3t_n (:,:,jk) ! vertical scale factors stored in fse3. arrays 334 fse3u (:,:,jk) = fse3u_n (:,:,jk) 335 fse3v (:,:,jk) = fse3v_n (:,:,jk) 336 fse3w (:,:,jk) = fse3w_n (:,:,jk) 337 END DO 338 ENDIF 339 DO jk = 1, jpk 340 DO jj = 1, jpj 341 DO ji = 1, jpi 342 343 un_tm(ji,jj,jk)= un_tm(ji,jj,jk)+un(ji,jj,jk)*e3u_temp(ji,jj,jk) 344 un(ji,jj,jk)=(un_tm(ji,jj,jk)/(nn_dttrc+1))/fse3u(ji,jj,jk) 345 346 vn_tm(ji,jj,jk)= vn_tm(ji,jj,jk)+vn(ji,jj,jk)*e3v_temp(ji,jj,jk) 347 vn(ji,jj,jk)=(vn_tm(ji,jj,jk)/(nn_dttrc+1))/fse3v(ji,jj,jk) 348 349 wn_tm(ji,jj,jk)= wn_tm(ji,jj,jk)+wn(ji,jj,jk)*e3w_temp(ji,jj,jk) 350 wn(ji,jj,jk)=(wn_tm(ji,jj,jk)/(nn_dttrc+1))/fse3w(ji,jj,jk) 351 352 avt_tm(ji,jj,jk)= avt_tm(ji,jj,jk)+avt(ji,jj,jk)*e3t_temp(ji,jj,jk) 353 avt(ji,jj,jk)=(avt_tm(ji,jj,jk)/(nn_dttrc+1))/fse3t(ji,jj,jk) 354 355 tsn_tm(ji,jj,jk,jp_tem)= tsn_tm(ji,jj,jk,jp_tem)+tsn(ji,jj,jk,jp_tem)*e3t_temp(ji,jj,jk) 356 tsn(ji,jj,jk,jp_tem)=(tsn_tm(ji,jj,jk,jp_tem)/(nn_dttrc+1))/fse3t(ji,jj,jk) 357 358 tsn_tm(ji,jj,jk,jp_sal)= tsn_tm(ji,jj,jk,jp_sal)+tsn(ji,jj,jk,jp_sal)*e3t_temp(ji,jj,jk) 359 tsn(ji,jj,jk,jp_sal)=(tsn_tm(ji,jj,jk,jp_sal)/(nn_dttrc+1))/fse3t(ji,jj,jk) 360 361 # if defined key_zdfddm 362 avs_tm(ji,jj,jk)= avs_tm(ji,jj,jk)+avs(ji,jj,jk)*e3w_temp(ji,jj,jk) 363 avs(ji,jj,jk)=(avs_tm(ji,jj,jk)/(nn_dttrc+1))/fse3w(ji,jj,jk) 364 365 # endif 366 367 #if defined key_ldfslp 368 wslpi_tm(ji,jj,jk)= wslpi_tm(ji,jj,jk)+wslpi(ji,jj,jk)*e3w_temp(ji,jj,jk) 369 wslpi(ji,jj,jk)=(wslpi_tm(ji,jj,jk)/(nn_dttrc+1))/fse3w(ji,jj,jk) 370 371 wslpj_tm(ji,jj,jk)= wslpj_tm(ji,jj,jk)+wslpj(ji,jj,jk)*e3w_temp(ji,jj,jk) 372 wslpj(ji,jj,jk)=(wslpj_tm(ji,jj,jk)/(nn_dttrc+1))/fse3w(ji,jj,jk) 373 374 uslp_tm(ji,jj,jk)= uslp_tm(ji,jj,jk)+uslp(ji,jj,jk)*e3u_temp(ji,jj,jk) 375 uslp(ji,jj,jk)=(uslp_tm(ji,jj,jk)/(nn_dttrc+1))/fse3u(ji,jj,jk) 376 377 vslp_tm(ji,jj,jk)= vslp_tm(ji,jj,jk)+vslp(ji,jj,jk)*e3v_temp(ji,jj,jk) 378 vslp(ji,jj,jk)=(vslp_tm(ji,jj,jk)/(nn_dttrc+1))/fse3v(ji,jj,jk) 379 #endif 380 END DO 381 END DO 382 END DO 383 #if defined key_traldf_c3d 384 DO jk = 1, jpk 385 DO jj = 1, jpj 386 DO ji = 1, jpi 387 ahtt_tm(ji,jj,jk)= ahtt_tm(ji,jj,jk)+ahtt(ji,jj,jk)*e3t_temp(ji,jj,jk) 388 ahtt(ji,jj,jk)=(ahtt_tm(ji,jj,jk)/(nn_dttrc+1))/fse3t(ji,jj,jk) 389 390 ahtu_tm(ji,jj,jk)= ahtu_tm(ji,jj,jk)+ahtu(ji,jj,jk)*e3u_temp(ji,jj,jk) 391 ahtu(ji,jj,jk)=(ahtu_tm(ji,jj,jk)/(nn_dttrc+1))/fse3u(ji,jj,jk) 392 393 ahtv_tm(ji,jj,jk)= ahtv_tm(ji,jj,jk)+ahtv(ji,jj,jk)*e3v_temp(ji,jj,jk) 394 ahtv(ji,jj,jk)=(ahtv_tm(ji,jj,jk)/(nn_dttrc+1))/fse3v(ji,jj,jk) 395 396 ahtw_tm(ji,jj,jk)= ahtw_tm(ji,jj,jk)+ahtw(ji,jj,jk)*e3w_temp(ji,jj,jk) 397 ahtw(ji,jj,jk)=(ahtw_tm(ji,jj,jk)/(nn_dttrc+1))/fse3w(ji,jj,jk) 398 399 END DO 400 END DO 401 END DO 402 #elif defined key_traldf_c2d 403 DO jj = 1, jpj 404 DO ji = 1, jpi 405 ahtt_tm(ji,jj)= ahtt_tm(ji,jj)+ahtt(ji,jj) 406 ahtt(ji,jj)=ahtt_tm(ji,jj)/(nn_dttrc+1) 407 408 ahtu_tm(ji,jj)= ahtu_tm(ji,jj)+ahtu(ji,jj) 409 ahtu(ji,jj)=ahtu_tm(ji,jj)/(nn_dttrc+1) 410 411 ahtv_tm(ji,jj)= ahtv_tm(ji,jj)+ahtv(ji,jj) 412 ahtv(ji,jj)=ahtv_tm(ji,jj)/(nn_dttrc+1) 413 414 ahtw_tm(ji,jj)= ahtw_tm(ji,jj)+ahtw(ji,jj) 415 ahtw(ji,jj)=ahtw_tm(ji,jj)/(nn_dttrc+1) 416 END DO 417 END DO 418 #elif defined key_traldf_c1d 419 DO jk = 1, jpk 420 ahtt_tm(jk)= ahtt_tm(jk)+ahtt(jk) 421 ahtt(jk)=ahtt_tm(jk)/(nn_dttrc+1) 422 423 ahtu_tm(jk)= ahtu_tm(jk)+ahtu(jk) 424 ahtu(jk)=ahtu_tm(jk)/(nn_dttrc+1) 425 426 ahtv_tm(jk)= ahtv_tm(jk)+ahtv(jk) 427 ahtv(jk)=ahtv_tm(jk)/(nn_dttrc+1) 428 429 ahtw_tm(jk)= ahtw_tm(jk)+ahtw(jk) 430 ahtw(jk)=ahtw_tm(jk)/(nn_dttrc+1) 431 END DO 432 #else 433 ahtt_tm= ahtt_tm+ahtt 434 ahtt=ahtt_tm/(nn_dttrc+1) 435 436 ahtu_tm= ahtu_tm+ahtu 437 ahtu=ahtu_tm/(nn_dttrc+1) 438 439 ahtv_tm= ahtv_tm+ahtv 440 ahtv=ahtv_tm/(nn_dttrc+1) 441 442 ahtw_tm= ahtw_tm+ahtw 443 ahtw=ahtw_tm/(nn_dttrc+1) 444 445 #endif 446 #if defined key_traldf_eiv 447 # if defined key_traldf_c3d 448 DO jk = 1, jpk 449 DO jj = 1, jpj 450 DO ji = 1, jpi 451 aeiu_tm(ji,jj,jk)= aeiu_tm(ji,jj,jk)+aeiu(ji,jj,jk)*e3u_temp(ji,jj,jk) 452 aeiu(ji,jj,jk)=(aeiu_tm(ji,jj,jk)/(nn_dttrc+1))/fse3u(ji,jj,jk) 453 454 aeiv_tm(ji,jj,jk)= aeiv_tm(ji,jj,jk)+aeiv(ji,jj,jk)*e3v_temp(ji,jj,jk) 455 aeiv(ji,jj,jk)=(aeiv_tm(ji,jj,jk)/(nn_dttrc+1))/fse3v(ji,jj,jk) 456 457 aeiw_tm(ji,jj,jk)= aeiw_tm(ji,jj,jk)+aeiw(ji,jj,jk)*e3w_temp(ji,jj,jk) 458 aeiw(ji,jj,jk)=(aeiw_tm(ji,jj,jk)/(nn_dttrc+1))/fse3w(ji,jj,jk) 459 460 END DO 461 END DO 462 END DO 463 # elif defined key_traldf_c2d 464 DO jj = 1, jpj 465 DO ji = 1, jpi 466 aeiu_tm(ji,jj)= aeiu_tm(ji,jj)+aeiu(ji,jj) 467 aeiu(ji,jj)=aeiu_tm(ji,jj)/(nn_dttrc+1) 468 469 aeiv_tm(ji,jj)= aeiv_tm(ji,jj)+aeiv(ji,jj) 470 aeiv(ji,jj)=aeiv_tm(ji,jj)/(nn_dttrc+1) 471 472 aeiw_tm(ji,jj)= aeiw_tm(ji,jj)+aeiw(ji,jj) 473 aeiw(ji,jj)=aeiw_tm(ji,jj)/(nn_dttrc+1) 474 END DO 475 END DO 476 # elif defined key_traldf_c1d 477 DO jk = 1, jpk 478 aeiu_tm(jk)= aeiu_tm(jk)+aeiu(jk) 479 aeiu(jk)=aeiu_tm(jk)/(nn_dttrc+1) 480 481 aeiv_tm(jk)= aeiv_tm(jk)+aeiv(jk) 482 aeiv(jk)=aeiv_tm(jk)/(nn_dttrc+1) 483 484 aeiw_tm(jk)= aeiw_tm(jk)+aeiw(jk) 485 aeiw(jk)=aeiw_tm(jk)/(nn_dttrc+1) 486 END DO 487 # else 488 aeiu_tm= aeiu_tm+aeiu 489 aeiu=aeiu_tm/(nn_dttrc+1) 490 491 aeiv_tm= aeiv_tm+aeiv 492 aeiv=aeiv_tm/(nn_dttrc+1) 493 494 aeiw_tm= aeiw_tm+aeiw 495 aeiw=aeiw_tm/(nn_dttrc+1) 496 # endif 497 # endif 498 499 CALL lbc_lnk( sshn(:,:), 'T', 1. ) 500 CALL lbc_lnk( sshu_n(:,:), 'U', 1. ) 501 CALL lbc_lnk( sshv_n(:,:), 'V', 1. ) 502 CALL lbc_lnk( sshf_n(:,:), 'F', 1. ) 503 CALL lbc_lnk( sshb(:,:), 'T', 1. ) 504 CALL lbc_lnk( sshu_b(:,:), 'U', 1. ) 505 CALL lbc_lnk( sshv_b(:,:), 'V', 1. ) 506 CALL lbc_lnk( ssha(:,:), 'T', 1. ) 507 CALL lbc_lnk( sshu_a(:,:), 'U', 1. ) 508 CALL lbc_lnk( sshv_a(:,:), 'V', 1. ) 509 CALL lbc_lnk( rnf(:,:), 'T', 1. ) 510 CALL lbc_lnk( h_rnf(:,:), 'T', 1. ) 511 CALL lbc_lnk( rotn(:,:,:), 'F', 1. ) 512 CALL lbc_lnk( hdivn(:,:,:), 'T', 1. ) 513 CALL lbc_lnk( rotb(:,:,:), 'F', 1. ) 514 CALL lbc_lnk( hdivb(:,:,:), 'T', 1. ) 515 CALL lbc_lnk( un(:,:,:), 'U', 1. ) 516 CALL lbc_lnk( vn(:,:,:), 'V', 1. ) 517 CALL lbc_lnk( wn(:,:,:), 'V', 1. ) 518 CALL lbc_lnk( tsn(:,:,:,jp_tem), 'T', 1. ) 519 CALL lbc_lnk( tsn(:,:,:,jp_sal), 'T', 1. ) 520 CALL lbc_lnk( avt(:,:,:), 'T', 1. ) 521 CALL lbc_lnk( hmld(:,:), 'T', 1. ) 522 CALL lbc_lnk( qsr(:,:), 'T', 1. ) 523 CALL lbc_lnk( wndm(:,:), 'T', 1. ) 524 CALL lbc_lnk( emp(:,:), 'T', 1. ) 525 CALL lbc_lnk( emp_b(:,:), 'T', 1. ) 526 CALL lbc_lnk( emps(:,:), 'T', 1. ) 527 #if defined key_traldf_c3d 528 CALL lbc_lnk( ahtt(:,:,:), 'T', 1. ) 529 CALL lbc_lnk( ahtu(:,:,:), 'U', 1. ) 530 CALL lbc_lnk( ahtv(:,:,:), 'V', 1. ) 531 CALL lbc_lnk( ahtw(:,:,:), 'W', 1. ) 532 #elif defined key_traldf_c2d 533 CALL lbc_lnk( ahtt(:,:), 'T', 1. ) 534 CALL lbc_lnk( ahtu(:,:), 'U', 1. ) 535 CALL lbc_lnk( ahtv(:,:), 'V', 1. ) 536 CALL lbc_lnk( ahtw(:,:), 'W', 1. ) 537 #endif 538 # if defined key_zdfddm 539 CALL lbc_lnk( avs, 'W', 1. ) 540 # endif 541 #if defined key_traldf_eiv 542 #if defined key_traldf_c3d 543 CALL lbc_lnk( aeiu(:,:,:), 'U', 1. ) 544 CALL lbc_lnk( aeiv(:,:,:), 'V', 1. ) 545 CALL lbc_lnk( aeiw(:,:,:), 'W', 1. ) 546 #elif defined key_traldf_c2d 547 CALL lbc_lnk( aeiu(:,:), 'U', 1. ) 548 CALL lbc_lnk( aeiv(:,:), 'V', 1. ) 549 CALL lbc_lnk( aeiw(:,:), 'W', 1. ) 550 #endif 551 #endif 552 #if defined key_ldfslp 553 CALL lbc_lnk( uslp(:,:,:), 'U', 1. ) 554 CALL lbc_lnk( vslp(:,:,:), 'V', 1. ) 555 CALL lbc_lnk( wslpi(:,:,:), 'W', 1. ) 556 CALL lbc_lnk( wslpj(:,:,:), 'W', 1. ) 557 #endif 558 CALL lbc_lnk( hu(:,:), 'U', 1. ) 559 CALL lbc_lnk( hv(:,:), 'V', 1. ) 560 CALL lbc_lnk( hur(:,:), 'U', 1. ) 561 CALL lbc_lnk( hvr(:,:), 'V', 1. ) 562 467 CALL lbc_lnk( uslp (:,:,:) , 'U', 1. ) 468 CALL lbc_lnk( vslp (:,:,:) , 'V', 1. ) 469 CALL lbc_lnk( wslpi (:,:,:) , 'W', 1. ) 470 CALL lbc_lnk( wslpj (:,:,:) , 'W', 1. ) 471 #endif 472 CALL lbc_lnk( hu (:,:) , 'U', 1. ) 473 CALL lbc_lnk( hv (:,:) , 'V', 1. ) 474 CALL lbc_lnk( hur (:,:) , 'U', 1. ) 475 CALL lbc_lnk( hvr (:,:) , 'V', 1. ) 476 ! 563 477 CALL trc_sub_ssh( kt ) ! after ssh & vertical velocity 478 ! 564 479 ENDIF 565 480 566 481 567 482 END SUBROUTINE trc_sub_stp 568 !!------------------------------------------------------------------- 569 570 !!------------------------------------------------------------------- 483 571 484 SUBROUTINE trc_sub_ini 572 485 !!------------------------------------------------------------------- … … 578 491 !! Compute the averages for sub-stepping 579 492 !!------------------------------------------------------------------- 580 INTEGER :: jk, jn ,ji,jj ! dummy loop indices581 493 INTEGER :: ierr 582 494 !!------------------------------------------------------------------- … … 590 502 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'top_sub_alloc : unable to allocate standard ocean arrays' ) 591 503 592 DO jk = 1, jpk 593 DO jj = 1, jpj 594 DO ji = 1, jpi 595 un_tm(ji,jj,jk)= un(ji,jj,jk)*fse3u(ji,jj,jk) 596 vn_tm(ji,jj,jk)= vn(ji,jj,jk)*fse3v(ji,jj,jk) 597 wn_tm(ji,jj,jk)= wn(ji,jj,jk)*fse3w(ji,jj,jk) 598 avt_tm(ji,jj,jk)=avt(ji,jj,jk)*fse3t(ji,jj,jk) 599 tsn_tm(ji,jj,jk,jp_tem)= tsn_tm(ji,jj,jk,jp_tem)+tsn(ji,jj,jk,jp_tem)*fse3t(ji,jj,jk) 600 tsn_tm(ji,jj,jk,jp_sal)= tsn_tm(ji,jj,jk,jp_sal)+tsn(ji,jj,jk,jp_sal)*fse3t(ji,jj,jk) 601 #if defined key_zdfddm 602 avs_tm(ji,jj,jk)= avs_tm(ji,jj,jk)+avs(ji,jj,jk)*fse3w(ji,jj,jk) 603 #endif 504 un_tm (:,:,:) = un (:,:,:) * fse3u(:,:,:) 505 vn_tm (:,:,:) = vn (:,:,:) * fse3v(:,:,:) 506 wn_tm (:,:,:) = wn (:,:,:) * fse3w(:,:,:) 507 tsn_tm (:,:,:,jp_tem) = tsn (:,:,:,jp_tem) * fse3t(:,:,:) 508 tsn_tm (:,:,:,jp_sal) = tsn (:,:,:,jp_sal) * fse3t(:,:,:) 509 avt_tm (:,:,:) = avt (:,:,:) * fse3w(:,:,:) 510 # if defined key_zdfddm 511 avs_tm (:,:,:) = avs (:,:,:) * fse3w(:,:,:) 512 # endif 604 513 #if defined key_ldfslp 605 wslpi_tm(ji,jj,jk)= wslpi(ji,jj,jk)*fse3w(ji,jj,jk) !0. 606 wslpj_tm(ji,jj,jk)= wslpj(ji,jj,jk)*fse3w(ji,jj,jk) !0. 607 uslp_tm(ji,jj,jk)= uslp(ji,jj,jk)*fse3u(ji,jj,jk) !0. 608 vslp_tm(ji,jj,jk)= vslp(ji,jj,jk)*fse3v(ji,jj,jk) !0. 609 #endif 610 END DO 611 END DO 612 END DO 613 614 ! physics variables that are set after initialization: 615 wndm_tm(:,:)=0. !wndm(:,:) 616 qsr_tm(:,:)= 0. !qsr(:,:) 617 emp_tm(:,:)= 0. !emp(:,:) 618 emps_tm(:,:)=0. !emps(:,:) 619 620 sshn_tm(:,:) = sshn(:,:) !0. 621 sshu_n_tm(:,:) = sshu_n(:,:) !0. 622 sshv_n_tm(:,:) = sshv_n(:,:) !0. 623 rnf_tm(:,:)= rnf(:,:) !0. 624 h_rnf_tm(:,:)= h_rnf(:,:) !0. 625 hmld_tm(:,:)=hmld(:,:) 626 fr_i_tm(:,:)=fr_i(:,:) 514 wslpi_tm(:,:,:) = wslpi(:,:,:) * fse3w(:,:,:) 515 wslpj_tm(:,:,:) = wslpj(:,:,:) * fse3w(:,:,:) 516 uslp_tm (:,:,:) = uslp (:,:,:) * fse3u(:,:,:) 517 vslp_tm (:,:,:) = vslp (:,:,:) * fse3v(:,:,:) 518 #endif 519 520 ! Physics variables that are set after initialization: 521 emp_tm (:,:) = 0. 522 emps_tm(:,:) = 0. 523 qsr_tm (:,:) = 0. 524 wndm_tm(:,:) = 0. 525 ! 526 sshn_tm (:,:) = sshn (:,:) 527 sshu_n_tm(:,:) = sshu_n(:,:) 528 sshv_n_tm(:,:) = sshv_n(:,:) 529 rnf_tm (:,:) = rnf (:,:) 530 h_rnf_tm (:,:) = h_rnf (:,:) 531 hmld_tm (:,:) = hmld (:,:) 532 fr_i_tm (:,:) = fr_i (:,:) 533 ! 627 534 #if defined key_traldf_c3d 628 DO jk = 1, jpk 629 DO jj = 1, jpj 630 DO ji = 1, jpi 631 ahtt_tm(ji,jj,jk)= ahtt(ji,jj,jk)*fse3t(ji,jj,jk) 632 ahtu_tm(ji,jj,jk)= ahtu(ji,jj,jk)*fse3u(ji,jj,jk) 633 ahtv_tm(ji,jj,jk)= ahtv(ji,jj,jk)*fse3v(ji,jj,jk) 634 ahtw_tm(ji,jj,jk)= ahtw(ji,jj,jk)*fse3w(ji,jj,jk) 635 END DO 636 END DO 637 END DO 535 ahtt_tm(:,:,:) = ahtt(:,:,:) * fse3t(:,:,:) 536 ahtu_tm(:,:,:) = ahtu(:,:,:) * fse3u(:,:,:) 537 ahtv_tm(:,:,:) = ahtv(:,:,:) * fse3v(:,:,:) 538 ahtw_tm(:,:,:) = ahtw(:,:,:) * fse3w(:,:,:) 638 539 #elif defined key_traldf_c2d 639 DO jj = 1, jpj 640 DO ji = 1, jpi 641 ahtt_tm(ji,jj)= ahtt(ji,jj) 642 ahtu_tm(ji,jj)= ahtu(ji,jj) 643 ahtv_tm(ji,jj)= ahtv(ji,jj) 644 ahtw_tm(ji,jj)= ahtw(ji,jj) 645 END DO 646 END DO 540 ahtt_tm(:,:) = ahtt(:,:) 541 ahtu_tm(:,:) = ahtu(:,:) 542 ahtv_tm(:,:) = ahtv(:,:) 543 ahtw_tm(:,:) = ahtw(:,:) 647 544 #elif defined key_traldf_c1d 648 DO jk = 1, jpk 649 ahtt_tm(jk)= ahtt(jk) 650 ahtu_tm(jk)= ahtu(jk) 651 ahtv_tm(jk)= ahtv(jk) 652 ahtw_tm(jk)= ahtw(jk) 653 END DO 545 ahtt_tm(:) = ahtt(:) 546 ahtu_tm(:) = ahtu(:) 547 ahtv_tm(:) = ahtv(:) 548 ahtw_tm(:) = ahtw(:) 654 549 #else 655 ahtt_tm= ahtt 656 ahtu_tm= ahtu 657 ahtv_tm= ahtv 658 ahtw_tm= ahtw 659 #endif 550 ahtt_tm = ahtt 551 ahtu_tm = ahtu 552 ahtv_tm = ahtv 553 ahtw_tm = ahtw 554 #endif 555 ! 660 556 #if defined key_traldf_eiv 661 # if defined key_traldf_c3d 662 DO jk = 1, jpk 663 DO jj = 1, jpj 664 DO ji = 1, jpi 665 aeiu_tm(ji,jj,jk)= aeiu(ji,jj,jk)*fse3u(ji,jj,jk) 666 aeiv_tm(ji,jj,jk)= aeiv(ji,jj,jk)*fse3v(ji,jj,jk) 667 aeiw_tm(ji,jj,jk)= aeiw(ji,jj,jk)*fse3w(ji,jj,jk) 668 END DO 669 END DO 670 END DO 671 # elif defined key_traldf_c2d 672 DO jj = 1, jpj 673 DO ji = 1, jpi 674 aeiu_tm(ji,jj)= aeiu(ji,jj) 675 aeiv_tm(ji,jj)= aeiv(ji,jj) 676 aeiw_tm(ji,jj)= aeiw(ji,jj) 677 END DO 678 END DO 679 # elif defined key_traldf_c1d 680 DO jk = 1, jpk 681 aeiu_tm(jk)= aeiu(jk) 682 aeiv_tm(jk)= aeiv(jk) 683 aeiw_tm(jk)= aeiw(jk) 684 END DO 685 # else 686 aeiu_tm= aeiu 687 aeiv_tm= aeiv 688 aeiw_tm= aeiw 689 # endif 690 # endif 691 557 # if defined key_traldf_c3d 558 aieu_tm(:,:,:) = aieu(:,:,:) * fse3u(:,:,:) 559 aiev_tm(:,:,:) = aiev(:,:,:) * fse3v(:,:,:) 560 aiew_tm(:,:,:) = aiew(:,:,:) * fse3w(:,:,:) 561 # elif defined key_traldf_c2d 562 aieu_tm(:,:) = aeiu(:,:) 563 aiev_tm(:,:) = aeiv(:,:) 564 aiew_tm(:,:) = aeiw(:,:) 565 # elif defined key_traldf_c1d 566 aeiu_tm(:) = aeiu(:) 567 aeiv_tm(:) = aeiv(:) 568 aeiw_tm(:) = aeiw(:) 569 # else 570 aeiu_tm = aeiu 571 aeiv_tm = aeiv 572 aeiw_tm = aeiw 573 # endif 574 #endif 575 ! 692 576 END SUBROUTINE trc_sub_ini 693 577 694 !!------------------------------------------------------------------- 695 SUBROUTINE trc_sub_reset(kt) 578 SUBROUTINE trc_sub_reset( kt ) 696 579 !!------------------------------------------------------------------- 697 580 !! *** ROUTINE trc_sub_reset *** … … 702 585 !! Compute the averages for sub-stepping 703 586 !!------------------------------------------------------------------- 704 INTEGER :: jk, jn ,ji,jj ! dummy loop indices705 INTEGER :: ierr706 587 INTEGER, INTENT( in ) :: kt ! ocean time-step index 707 !!------------------------------------------------------------------- 708 709 ! restore physics variables 710 avt(:,:,:)=avt_temp(:,:,:) 711 un(:,:,:)=un_temp(:,:,:) 712 vn(:,:,:)=vn_temp(:,:,:) 713 wn(:,:,:)=wn_temp(:,:,:) 714 sshn(:,:)=sshn_temp(:,:) 715 sshb(:,:)=sshb_temp(:,:) 716 ssha(:,:)=ssha_temp(:,:) 717 sshu_n(:,:)=sshu_n_temp(:,:) 718 sshu_b(:,:)=sshu_b_temp(:,:) 719 sshu_a(:,:)=sshu_a_temp(:,:) 720 sshv_n(:,:)=sshv_n_temp(:,:) 721 sshv_b(:,:)=sshv_b_temp(:,:) 722 sshv_a(:,:)=sshv_a_temp(:,:) 723 sshf_n(:,:)=sshf_n_temp(:,:) 588 INTEGER :: jk ! dummy loop indices 589 !!------------------------------------------------------------------- 590 591 ! restore physics variables 592 avt (:,:,:) = avt_temp (:,:,:) 593 un (:,:,:) = un_temp (:,:,:) 594 vn (:,:,:) = vn_temp (:,:,:) 595 wn (:,:,:) = wn_temp (:,:,:) 596 sshn (:,:) = sshn_temp (:,:) 597 sshb (:,:) = sshb_temp (:,:) 598 ssha (:,:) = ssha_temp (:,:) 599 sshu_n(:,:) = sshu_n_temp(:,:) 600 sshu_b(:,:) = sshu_b_temp(:,:) 601 sshu_a(:,:) = sshu_a_temp(:,:) 602 sshv_n(:,:) = sshv_n_temp(:,:) 603 sshv_b(:,:) = sshv_b_temp(:,:) 604 sshv_a(:,:) = sshv_a_temp(:,:) 605 sshf_n(:,:) = sshf_n_temp(:,:) 724 606 #if defined key_ldfslp 725 wslpi(:,:,:)=wslpi_temp(:,:,:) 726 wslpj(:,:,:)=wslpj_temp(:,:,:) 727 uslp(:,:,:)=uslp_temp(:,:,:) 728 vslp(:,:,:)=vslp_temp(:,:,:) 729 #endif 730 rnf(:,:)=rnf_temp(:,:) 731 h_rnf(:,:)=h_rnf_temp(:,:) 732 hdivn(:,:,:)=hdivn_temp(:,:,:) 733 rotn(:,:,:)=rotn_temp(:,:,:) 734 hdivb(:,:,:)=hdivb_temp(:,:,:) 735 rotb(:,:,:)=rotb_temp(:,:,:) 736 hu(:,:)=hu_temp(:,:) 737 hv(:,:)=hv_temp(:,:) 738 hur(:,:)=hur_temp(:,:) 739 hvr(:,:)=hvr_temp(:,:) 740 tsn(:,:,:,:)=tsn_temp(:,:,:,:) 607 wslpi (:,:,:) = wslpi_temp (:,:,:) 608 wslpj (:,:,:) = wslpj_temp (:,:,:) 609 uslp (:,:,:) = uslp_temp (:,:,:) 610 vslp (:,:,:) = vslp_temp (:,:,:) 611 #endif 612 rnf (:,:) = rnf_temp (:,:) 613 h_rnf (:,:) = h_rnf_temp (:,:) 614 hdivn (:,:,:) = hdivn_temp (:,:,:) 615 rotn (:,:,:) = rotn_temp (:,:,:) 616 hdivb (:,:,:) = hdivb_temp (:,:,:) 617 rotb (:,:,:) = rotb_temp (:,:,:) 618 hu (:,:) = hu_temp (:,:) 619 hv (:,:) = hv_temp (:,:) 620 hur (:,:) = hur_temp (:,:) 621 hvr (:,:) = hvr_temp (:,:) 622 ! 623 tsn (:,:,:,:) = tsn_temp (:,:,:,:) 741 624 # if defined key_zdfddm 742 avs(:,:,:)=avs_temp(:,:,:) 743 # endif 744 hmld(:,:)=hmld_temp(:,:) 745 qsr(:,:)=qsr_temp(:,:) 746 fr_i(:,:)=fr_i_temp(:,:) 747 wndm(:,:)=wndm_temp(:,:) 748 emp(:,:)=emp_temp(:,:) 749 emps(:,:)=emps_temp(:,:) 750 emp_b(:,:)=emp_b_temp(:,:) 625 avs (:,:,:) = avs_temp (:,:,:) 626 # endif 627 hmld (:,:) = hmld_temp (:,:) 628 qsr (:,:) = qsr_temp (:,:) 629 fr_i (:,:) = fr_i_temp (:,:) 630 wndm (:,:) = wndm_temp (:,:) 631 emp (:,:) = emp_temp (:,:) 632 emps (:,:) = emps_temp (:,:) 633 emp_b (:,:) = emp_b_temp (:,:) 634 ! 751 635 #if defined key_traldf_c3d 752 ahtu_temp(:,:,:)=ahtu(:,:,:)753 ahtv_temp(:,:,:)=ahtv(:,:,:)754 ahtw_temp(:,:,:)=ahtw(:,:,:)755 ahtt_temp(:,:,:)=ahtt(:,:,:)636 ahtu (:,:,:) = ahtu_temp (:,:,:) 637 ahtv (:,:,:) = ahtv_temp (:,:,:) 638 ahtw (:,:,:) = ahtw_temp (:,:,:) 639 ahtt (:,:,:) = ahtt_temp (:,:,:) 756 640 #elif defined key_traldf_c2d 757 ahtu_temp(:,:)=ahtu(:,:)758 ahtv_temp(:,:)=ahtv(:,:)759 ahtw_temp(:,:)=ahtw(:,:)760 ahtt_temp(:,:)=ahtt(:,:)641 ahtu (:,:) = ahtu_temp (:,:) 642 ahtv (:,:) = ahtv_temp (:,:) 643 ahtw (:,:) = ahtw_temp (:,:) 644 ahtt (:,:) = ahtt_temp (:,:) 761 645 #elif defined key_traldf_c1d 762 ahtu_temp(:)=ahtu(:)763 ahtv_temp(:)=ahtv(:)764 ahtw_temp(:)=ahtw(:)765 ahtt_temp(:)=ahtt(:)646 ahtu (:) = ahtu_temp (:) 647 ahtv (:) = ahtv_temp (:) 648 ahtw (:) = ahtw_temp (:) 649 ahtt (:) = ahtt_temp (:) 766 650 #else 767 ahtu_temp=ahtu 768 ahtv_temp=ahtv 769 ahtw_temp=ahtw 770 ahtt_temp=ahtt 771 #endif 651 ahtu = ahtu_temp 652 ahtv = ahtv_temp 653 ahtw = ahtw_temp 654 ahtt = ahtt_temp 655 #endif 656 ! 772 657 #if defined key_traldf_eiv 773 658 #if defined key_traldf_c3d 774 aeiu_temp(:,:,:)=aeiu(:,:,:)775 aeiv_temp(:,:,:)=aeiv(:,:,:)776 aeiw_temp(:,:,:)=aeiw(:,:,:)659 aeiu (:,:,:) = aeiu_temp(:,:,:) 660 aeiv (:,:,:) = aeiv_temp(:,:,:) 661 aeiw (:,:,:) = aeiw_temp(:,:,:) 777 662 #elif defined key_traldf_c2d 778 aeiu_temp(:,:)=aeiu(:,:)779 aeiv_temp(:,:)=aeiv(:,:)780 aeiw_temp(:,:)=aeiw(:,:)663 aeiu (:,:) = aeiu_temp(:,:) 664 aeiv (:,:) = aeiv_temp(:,:) 665 aeiw (:,:) = aeiw_temp(:,:) 781 666 #elif defined key_traldf_c1d 782 aeiu_temp(:)=aeiu(:)783 aeiv_temp(:)=aeiv(:)784 aeiw_temp(:)=aeiw(:)667 aeiu (:) = aeiu_temp(:) 668 aeiv (:) = aeiv_temp(:) 669 aeiw (:) = aeiw_temp(:) 785 670 #else 786 aeiu_temp=aeiu 787 aeiv_temp=aeiv 788 aeiw_temp=aeiw 789 #endif 790 #endif 791 792 793 ! !------------------------------! 794 DO jk = 1, jpk 795 fse3t(:,:,jk)= e3t_temp(:,:,jk) !0. 796 fse3u(:,:,jk)= e3u_temp(:,:,jk) !0. 797 fse3v(:,:,jk)= e3v_temp(:,:,jk)!0. 798 fse3w(:,:,jk)= e3w_temp(:,:,jk) !0. 799 END DO 800 IF( lk_vvl ) THEN ! Update Now Vertical coord. ! (only in vvl case) 801 ! !------------------------------! 671 aeiu = aeiu_temp 672 aeiv = aeiv_temp 673 aeiw = aeiw_temp 674 #endif 675 #endif 676 ! 677 DO jk = 1, jpk 678 fse3t(:,:,jk)= e3t_temp(:,:,jk) 679 fse3u(:,:,jk)= e3u_temp(:,:,jk) 680 fse3v(:,:,jk)= e3v_temp(:,:,jk) 681 fse3w(:,:,jk)= e3w_temp(:,:,jk) 682 END DO 683 ! !------------------------------! 684 IF( lk_vvl ) THEN ! Update Now Vertical coord. ! (only in vvl case) 685 ! !------------------------------! 802 686 DO jk = 1, jpkm1 803 687 fsdept(:,:,jk) = fsdept_n(:,:,jk) ! now local depths stored in fsdep. arrays … … 813 697 fse3vw(:,:,jk) = fse3vw_n(:,:,jk) 814 698 END DO 699 ! 815 700 ENDIF 816 701 817 ! start new averages702 ! Start new averages 818 703 DO jk = 1, jpk 819 DO jj = 1, jpj 820 DO ji = 1, jpi 821 un_tm(ji,jj,jk)=un(ji,jj,jk)*fse3u(ji,jj,jk) !0.0 822 vn_tm(ji,jj,jk)=vn(ji,jj,jk)*fse3v(ji,jj,jk) !0.0 823 wn_tm(ji,jj,jk)=wn(ji,jj,jk)*fse3w(ji,jj,jk) !0.0 824 avt_tm(ji,jj,jk)=avt(ji,jj,jk)*fse3t(ji,jj,jk) !0.0 825 tsn_tm(ji,jj,jk,jp_tem)=tsn(ji,jj,jk,jp_tem)*fse3t(ji,jj,jk) !0.0 826 tsn_tm(ji,jj,jk,jp_sal)=tsn(ji,jj,jk,jp_sal)*fse3t(ji,jj,jk) !0.0 704 un_tm (:,:,jk) = un (:,:,jk) * fse3u(:,:,jk) 705 vn_tm (:,:,jk) = vn (:,:,jk) * fse3v(:,:,jk) 706 wn_tm (:,:,jk) = wn (:,:,jk) * fse3w(:,:,jk) 707 tsn_tm (:,:,jk,jp_tem) = tsn (:,:,jk,jp_tem) * fse3t(:,:,jk) 708 tsn_tm (:,:,jk,jp_sal) = tsn (:,:,jk,jp_sal) * fse3t(:,:,jk) 709 avt_tm (:,:,jk) = avt (:,:,jk) * fse3w(:,:,jk) 827 710 # if defined key_zdfddm 828 avs_tm==avs(ji,jj,jk)*fse3w(ji,jj,jk) !0.0711 avs_tm (:,:,jk) = avs (:,:,jk) * fse3w(:,:,jk) 829 712 # endif 830 713 #if defined key_ldfslp 831 wslpi_tm(ji,jj,jk)= wslpi(ji,jj,jk)*fse3w(ji,jj,jk) !0. 832 wslpj_tm(ji,jj,jk)=wslpj(ji,jj,jk)*fse3w(ji,jj,jk) !0. 833 uslp_tm(ji,jj,jk)=uslp(ji,jj,jk)*fse3u(ji,jj,jk) !0. 834 vslp_tm(ji,jj,jk)=vslp(ji,jj,jk)*fse3v(ji,jj,jk) !0. 835 #endif 836 END DO 837 END DO 714 wslpi_tm(:,:,jk) = wslpi(:,:,jk) * fse3w(:,:,jk) 715 wslpj_tm(:,:,jk) = wslpj(:,:,jk) * fse3w(:,:,jk) 716 uslp_tm (:,:,jk) = uslp (:,:,jk) * fse3u(:,:,jk) 717 vslp_tm (:,:,jk) = vslp (:,:,jk) * fse3v(:,:,jk) 718 #endif 838 719 END DO 839 sshn_tm(:,:) = sshn(:,:) !0. 840 sshu_n_tm(:,:) = sshu_n(:,:) !0. 841 sshv_n_tm(:,:) = sshv_n(:,:) !0. 842 rnf_tm(:,:)= rnf(:,:) !0. 843 h_rnf_tm(:,:)= h_rnf(:,:) !0. 844 hmld_tm(:,:)=hmld(:,:) 845 fr_i_tm(:,:)=fr_i(:,:) 846 sshb_hold(:,:)=sshn(:,:) 847 sshu_b_hold(:,:)=sshu_n(:,:) 848 sshv_b_hold(:,:)=sshv_n(:,:) 849 emp_b_hold(:,:)=emp(:,:) 850 emp_tm(:,:)=emp(:,:) 851 emps_tm(:,:)=emps(:,:) 852 qsr_tm(:,:)=qsr(:,:) 853 wndm_tm(:,:)=wndm(:,:) 720 ! 721 sshn_tm (:,:) = sshn (:,:) 722 sshu_n_tm (:,:) = sshu_n(:,:) 723 sshv_n_tm (:,:) = sshv_n(:,:) 724 rnf_tm (:,:) = rnf (:,:) 725 h_rnf_tm (:,:) = h_rnf (:,:) 726 hmld_tm (:,:) = hmld (:,:) 727 fr_i_tm (:,:) = fr_i (:,:) 728 sshb_hold (:,:) = sshn (:,:) 729 sshu_b_hold(:,:) = sshu_n(:,:) 730 sshv_b_hold(:,:) = sshv_n(:,:) 731 emp_b_hold (:,:) = emp (:,:) 732 emp_tm (:,:) = emp (:,:) 733 emps_tm (:,:) = emps (:,:) 734 qsr_tm (:,:) = qsr (:,:) 735 wndm_tm (:,:) = wndm (:,:) 736 ! 854 737 #if defined key_traldf_c3d 855 DO jk = 1, jpk 856 DO jj = 1, jpj 857 DO ji = 1, jpi 858 ahtt_tm(ji,jj,jk)= ahtt(ji,jj,jk)*fse3t(ji,jj,jk) 859 ahtu_tm(ji,jj,jk)= ahtu(ji,jj,jk)*fse3u(ji,jj,jk) 860 ahtv_tm(ji,jj,jk)= ahtv(ji,jj,jk)*fse3v(ji,jj,jk) 861 ahtw_tm(ji,jj,jk)= ahtw(ji,jj,jk)*fse3w(ji,jj,jk) 862 END DO 863 END DO 738 DO jk = 1, jpkm1 739 ahtt_tm(:,:,jk) = ahtt(:,:,jk) * fse3t(:,:,jk) 740 ahtu_tm(:,:,jk) = ahtu(:,:,jk) * fse3u(:,:,jk) 741 ahtv_tm(:,:,jk) = ahtv(:,:,jk) * fse3v(:,:,jk) 742 ahtw_tm(:,:,jk) = ahtw(:,:,jk) * fse3w(:,:,jk) 864 743 END DO 865 744 #elif defined key_traldf_c2d 866 DO jj = 1, jpj 867 DO ji = 1, jpi 868 ahtt_tm(ji,jj)= ahtt(ji,jj) 869 ahtu_tm(ji,jj)= ahtu(ji,jj) 870 ahtv_tm(ji,jj)= ahtv(ji,jj) 871 ahtw_tm(ji,jj)= ahtw(ji,jj) 872 END DO 745 ahtt_tm(:,:) = ahtt(:,:) 746 ahtu_tm(:,:) = ahtu(:,:) 747 ahtv_tm(:,:) = ahtv(:,:) 748 ahtw_tm(:,:) = ahtw(:,:) 749 #elif defined key_traldf_c1d 750 ahtt_tm(:) = ahtt(:) 751 ahtu_tm(:) = ahtu(:) 752 ahtv_tm(:) = ahtv(:) 753 ahtw_tm(:) = ahtw(:) 754 #else 755 ahtt_tm = ahtt 756 ahtu_tm = ahtu 757 ahtv_tm = ahtv 758 ahtw_tm = ahtw 759 #endif 760 ! 761 #if defined key_traldf_eiv 762 # if defined key_traldf_c3d 763 DO jk = 1, jpk 764 aieu_tm(:,:,jk) = aieu(:,:,jk) * fse3u(:,:,jk) 765 aiev_tm(:,:,jk) = aiev(:,:,jk) * fse3v(:,:,jk) 766 aiew_tm(:,:,jk) = aiew(:,:,jk) * fse3w(:,:,jk) 873 767 END DO 874 #elif defined key_traldf_c1d 875 DO jk = 1, jpk 876 ahtt_tm(jk)= ahtt(jk) 877 ahtu_tm(jk)= ahtu(jk) 878 ahtv_tm(jk)= ahtv(jk) 879 ahtw_tm(jk)= ahtw(jk) 880 END DO 881 #else 882 ahtt_tm= ahtt 883 ahtu_tm= ahtu 884 ahtv_tm= ahtv 885 ahtw_tm= ahtw 886 #endif 887 #if defined key_traldf_eiv 888 # if defined key_traldf_c3d 889 DO jk = 1, jpk 890 DO jj = 1, jpj 891 DO ji = 1, jpi 892 aeiu_tm(ji,jj,jk)= aeiu(ji,jj,jk)*fse3u(ji,jj,jk) 893 aeiv_tm(ji,jj,jk)= aeiv(ji,jj,jk)*fse3v(ji,jj,jk) 894 aeiw_tm(ji,jj,jk)= aeiw(ji,jj,jk)*fse3w(ji,jj,jk) 895 END DO 896 END DO 897 END DO 898 # elif defined key_traldf_c2d 899 DO jj = 1, jpj 900 DO ji = 1, jpi 901 aeiu_tm(ji,jj)= aeiu(ji,jj) 902 aeiv_tm(ji,jj)= aeiv(ji,jj) 903 aeiw_tm(ji,jj)= aeiw(ji,jj) 904 END DO 905 END DO 906 # elif defined key_traldf_c1d 907 DO jk = 1, jpk 908 aeiu_tm(jk)= aeiu(jk) 909 aeiv_tm(jk)= aeiv(jk) 910 aeiw_tm(jk)= aeiw(jk) 911 END DO 912 # else 913 aeiu_tm= aeiu 914 aeiv_tm= aeiv 915 aeiw_tm= aeiw 916 # endif 917 # endif 918 919 768 # elif defined key_traldf_c2d 769 aieu_tm(:,:) = aeiu(:,:) 770 aiev_tm(:,:) = aeiv(:,:) 771 aiew_tm(:,:) = aeiw(:,:) 772 # elif defined key_traldf_c1d 773 aeiu_tm(:) = aeiu(:) 774 aeiv_tm(:) = aeiv(:) 775 aeiw_tm(:) = aeiw(:) 776 # else 777 aeiu_tm = aeiu 778 aeiv_tm = aeiv 779 aeiw_tm = aeiw 780 # endif 781 #endif 782 ! 920 783 END SUBROUTINE trc_sub_reset 921 !!------------------------------------------------------------------- 784 785 922 786 SUBROUTINE trc_sub_ssh( kt ) 923 787 !!---------------------------------------------------------------------- … … 940 804 !!---------------------------------------------------------------------- 941 805 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 942 USE oce , ONLY: z3d => ta ! ta used as 3D workspace943 806 USE wrk_nemo, ONLY: zhdiv => wrk_2d_1 , z2d => wrk_2d_2 ! 2D workspace 807 USE wrk_nemo, ONLY: z3d => wrk_3d_10 ! 3D workspace 944 808 ! 945 809 INTEGER, INTENT(in) :: kt ! time step … … 949 813 !!---------------------------------------------------------------------- 950 814 951 IF( wrk_in_use(2, 1,2) ) THEN952 CALL ctl_stop(' ssh_wzv: requested workspace arrays unavailable') ; RETURN815 IF( wrk_in_use(2, 1,2) .OR. wrk_in_use(3,10) ) THEN 816 CALL ctl_stop('trc_sub_ssh: requested workspace arrays unavailable') ; RETURN 953 817 ENDIF 818 954 819 955 820 IF( kt == nittrc000 ) THEN … … 960 825 ! 961 826 wn(:,:,jpk) = 0._wp ! bottom boundary condition: w=0 (set once for all) 962 !963 827 ! 964 828 ENDIF … … 1052 916 1053 917 ! 1054 IF( wrk_not_released(2, 1,2) ) CALL ctl_stop('ssh_wzv: failed to release workspace arrays') 918 IF( wrk_not_released(2, 1,2) .OR. wrk_not_released(3, 10) ) THEN 919 CALL ctl_stop('ssh_wzv: failed to release workspace arrays') 920 ENDIF 1055 921 ! 1056 922 END SUBROUTINE trc_sub_ssh 1057 !!------------------------------------------------------------------- 1058 1059 !!------------------------------------------------------------------- 923 1060 924 INTEGER FUNCTION trc_sub_alloc() 1061 925 !!------------------------------------------------------------------- … … 1063 927 !!------------------------------------------------------------------- 1064 928 USE lib_mpp, ONLY: ctl_warn 1065 INTEGER :: 929 INTEGER :: ierr 1066 930 !!------------------------------------------------------------------- 1067 931 !
Note: See TracChangeset
for help on using the changeset viewer.