- Timestamp:
- 2010-09-10T12:32:58+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv.F90
r2034 r2082 42 42 INTEGER :: nadv ! choice of the type of advection scheme 43 43 44 REAL(wp), DIMENSION(jpk) :: r2dt ! vertical profile time-step, = 2 rdttra 45 ! ! except at nit000 (=rdttra) if neuler=0 46 44 47 !! * Substitutions 45 48 # include "domzgr_substitute.h90" … … 66 69 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zun, zvn, zwn ! effective transport 67 70 !!---------------------------------------------------------------------- 71 ! ! set time step 72 IF( neuler == 0 .AND. kt == nit000 ) THEN ! at nit000 73 r2dt(:) = rdttra(:) ! = rdtra (restarting with Euler time stepping) 74 ELSEIF( kt <= nit000 + 1) THEN ! at nit000 or nit000+1 75 r2dt(:) = 2. * rdttra(:) ! = 2 rdttra (leapfrog) 76 ENDIF 68 77 ! !== effective transport ==! 69 78 DO jk = 1, jpkm1 … … 82 91 83 92 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 84 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered85 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD86 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, 'TRA', zun, zvn, zwn, tsb, tsa, jpts ) ! MUSCL87 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL288 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS89 CASE ( 6 ) ; CALL tra_adv_qck ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST93 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered 94 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD 95 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsa, jpts ) ! MUSCL 96 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2 97 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS 98 CASE ( 6 ) ; CALL tra_adv_qck ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST 90 99 ! 91 100 CASE (-1 ) !== esopa: test all possibility with control print ==! 92 CALL tra_adv_cen2 ( kt , 'TRA',zun, zvn, zwn, tsb, tsn, tsa, jpts )101 CALL tra_adv_cen2 ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) 93 102 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv0 - Ta: ', mask1=tmask, & 94 103 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 95 CALL tra_adv_tvd ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )104 CALL tra_adv_tvd ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 96 105 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv1 - Ta: ', mask1=tmask, & 97 106 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 98 CALL tra_adv_muscl ( kt, 'TRA', zun, zvn, zwn, tsb, tsa, jpts )107 CALL tra_adv_muscl ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsa, jpts ) 99 108 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv3 - Ta: ', mask1=tmask, & 100 109 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 101 CALL tra_adv_muscl2( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )110 CALL tra_adv_muscl2( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 102 111 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv4 - Ta: ', mask1=tmask, & 103 112 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 104 CALL tra_adv_ubs ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )113 CALL tra_adv_ubs ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 105 114 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv5 - Ta: ', mask1=tmask, & 106 115 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 107 CALL tra_adv_qck ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )116 CALL tra_adv_qck ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 108 117 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv6 - Ta: ', mask1=tmask, & 109 118 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) … … 179 188 IF( nadv == 5 ) WRITE(numout,*) ' UBS scheme is used' 180 189 IF( nadv == 6 ) WRITE(numout,*) ' QUICKEST scheme is used' 181 IF( nadv == 7 ) WRITE(numout,*) ' SMOLAR scheme is used'182 190 IF( nadv == -1 ) WRITE(numout,*) ' esopa test: use all advection scheme' 183 191 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.