Changeset 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r2564 r2715 38 38 USE prtctl ! Print control 39 39 USE in_out_manager ! I/O manager 40 USE iom 40 USE iom ! IOM library 41 41 USE restart ! only for lrst_oce 42 42 USE zdf_oce … … 45 45 PRIVATE 46 46 47 PUBLIC dyn_spg_ts ! routine called by step.F9048 PUBLIC ts_rst ! routine called by istate.F9049 50 51 REAL(wp), DIMENSION(jpi,jpj) :: ftnw, ftne ! triad of coriolis parameter 52 REAL(wp), DIMENSION(jpi,jpj) :: ftsw, ftse ! (only used with een vorticity scheme)53 54 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: un_b, vn_b ! now averaged velocity 55 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ub_b, vb_b ! beforeaveraged velocity56 47 PUBLIC dyn_spg_ts ! routine called by step.F90 48 PUBLIC ts_rst ! routine called by istate.F90 49 PUBLIC dyn_spg_ts_alloc ! routine called by dynspg.F90 50 51 52 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ftnw, ftne ! triad of coriolis parameter 53 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ftsw, ftse ! (only used with een vorticity scheme) 54 55 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: un_b, vn_b ! now averaged velocity 56 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ub_b, vb_b ! before averaged velocity 57 57 58 58 !! * Substitutions 59 59 # include "domzgr_substitute.h90" 60 60 # include "vectopt_loop_substitute.h90" 61 !!---------------------------------------------------------------------- ---62 !! NEMO/OPA 3.3 , NEMO Consortium (2010)61 !!---------------------------------------------------------------------- 62 !! NEMO/OPA 4.0 , NEMO Consortium (2011) 63 63 !! $Id$ 64 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 65 !!------------------------------------------------------------------------- 66 64 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 65 !!---------------------------------------------------------------------- 67 66 CONTAINS 67 68 INTEGER FUNCTION dyn_spg_ts_alloc() 69 !!---------------------------------------------------------------------- 70 !! *** routine dyn_spg_ts_alloc *** 71 !!---------------------------------------------------------------------- 72 ALLOCATE( ftnw (jpi,jpj) , ftne(jpi,jpj) , un_b(jpi,jpj) , vn_b(jpi,jpj) , & 73 & ftsw (jpi,jpj) , ftse(jpi,jpj) , ub_b(jpi,jpj) , vb_b(jpi,jpj) , STAT= dyn_spg_ts_alloc ) 74 ! 75 IF( lk_mpp ) CALL mpp_sum( dyn_spg_ts_alloc ) 76 IF( dyn_spg_ts_alloc /= 0 ) CALL ctl_warn('dynspg_oce_alloc: failed to allocate arrays') 77 ! 78 END FUNCTION dyn_spg_ts_alloc 79 68 80 69 81 SUBROUTINE dyn_spg_ts( kt ) … … 94 106 !! References : Griffies et al., (2003): A technical guide to MOM4. NOAA/GFDL 95 107 !!--------------------------------------------------------------------- 108 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 109 USE wrk_nemo, ONLY: zsshun_e => wrk_2d_1 , zsshb_e => wrk_2d_2 , zhdiv => wrk_2d_3 110 USE wrk_nemo, ONLY: zsshvn_e => wrk_2d_4 , zssh_sum => wrk_2d_5 111 USE wrk_nemo, ONLY: zcu => wrk_2d_6 , zwx => wrk_2d_7 , zua => wrk_2d_8 , zbfru => wrk_2d_9 112 USE wrk_nemo, ONLY: zcv => wrk_2d_10 , zwy => wrk_2d_11 , zva => wrk_2d_12 , zbfrv => wrk_2d_13 113 USE wrk_nemo, ONLY: zun => wrk_2d_14 , zun_e => wrk_2d_15 , zub_e => wrk_2d_16 , zu_sum => wrk_2d_17 114 USE wrk_nemo, ONLY: zvn => wrk_2d_18 , zvn_e => wrk_2d_19 , zvb_e => wrk_2d_20 , zv_sum => wrk_2d_21 115 ! 96 116 INTEGER, INTENT(in) :: kt ! ocean time-step index 97 ! !117 ! 98 118 INTEGER :: ji, jj, jk, jn ! dummy loop indices 99 INTEGER :: icycle ! temporary scalar 100 101 REAL(wp) :: zraur, zcoef, z2dt_e, z2dt_b ! temporary scalars 102 REAL(wp) :: z1_8, zx1, zy1 ! - - 103 REAL(wp) :: z1_4, zx2, zy2 ! - - 104 REAL(wp) :: zu_spg, zu_cor, zu_sld, zu_asp ! - - 105 REAL(wp) :: zv_spg, zv_cor, zv_sld, zv_asp ! - - 106 !! 107 REAL(wp), DIMENSION(jpi,jpj) :: zhdiv, zsshb_e 108 !! 109 REAL(wp), DIMENSION(jpi,jpj) :: zbfru , zbfrv ! 2D workspace 110 !! 111 REAL(wp), DIMENSION(jpi,jpj) :: zsshun_e, zsshvn_e ! 2D workspace 112 !! 113 REAL(wp), DIMENSION(jpi,jpj) :: zcu, zwx, zua, zun ! 2D workspace 114 REAL(wp), DIMENSION(jpi,jpj) :: zcv, zwy, zva, zvn ! - - 115 REAL(wp), DIMENSION(jpi,jpj) :: zun_e, zub_e, zu_sum ! 2D workspace 116 REAL(wp), DIMENSION(jpi,jpj) :: zvn_e, zvb_e, zv_sum ! - - 117 REAL(wp), DIMENSION(jpi,jpj) :: zssh_sum ! - - 119 INTEGER :: icycle ! local scalar 120 REAL(wp) :: zraur, zcoef, z2dt_e, z2dt_b ! local scalars 121 REAL(wp) :: z1_8, zx1, zy1 ! - - 122 REAL(wp) :: z1_4, zx2, zy2 ! - - 123 REAL(wp) :: zu_spg, zu_cor, zu_sld, zu_asp ! - - 124 REAL(wp) :: zv_spg, zv_cor, zv_sld, zv_asp ! - - 118 125 !!---------------------------------------------------------------------- 126 127 IF( wrk_in_use(2, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, & 128 & 11,12,13,14,15,16,17,18,19,20,21 ) ) THEN 129 CALL ctl_stop( 'dyn_spg_ts: requested workspace arrays unavailable' ) ; RETURN 130 ENDIF 119 131 120 132 IF( kt == nit000 ) THEN !* initialisation … … 465 477 ! ! - Correct the velocity 466 478 467 IF( lk_obc ) CALL obc_fla_ts 479 IF( lk_obc ) CALL obc_fla_ts ( ua_e, va_e, sshn_e, ssha_e ) 468 480 IF( lk_bdy .OR. ln_tides ) CALL bdy_dyn_fla( sshn_e ) 469 481 ! … … 550 562 ! 551 563 ! 564 IF( wrk_not_released(2, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, & 565 & 11,12,13,14,15,16,17,18,19,20,21) ) & 566 CALL ctl_stop('dyn_spg_ts: failed to release workspace arrays') 567 ! 552 568 END SUBROUTINE dyn_spg_ts 553 569 … … 623 639 624 640 IF( iom_varid( numror, 'sshn_b', ldstop = .FALSE. ) > 0 ) THEN 625 CALL iom_get( numror, jpdom_autoglo, 'sshn_b' , sshn_b (:,:) ) ! filtered extrenalssh641 CALL iom_get( numror, jpdom_autoglo, 'sshn_b' , sshn_b (:,:) ) ! filtered ssh 626 642 ELSE 627 sshn_b(:,:) =sshb(:,:) ! if not in restart set previous time mean to current baroclinic before value643 sshn_b(:,:) = sshb(:,:) ! if not in restart set previous time mean to current baroclinic before value 628 644 ENDIF 629 645 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN … … 640 656 !!---------------------------------------------------------------------- 641 657 CONTAINS 642 SUBROUTINE dyn_spg_ts( kt ) ! Empty routine 658 INTEGER FUNCTION dyn_spg_ts_alloc() ! Dummy function 659 dyn_spg_ts_alloc = 0 660 END FUNCTION dyn_spg_ts_alloc 661 SUBROUTINE dyn_spg_ts( kt ) ! Empty routine 662 INTEGER, INTENT(in) :: kt 643 663 WRITE(*,*) 'dyn_spg_ts: You should not have seen this print! error?', kt 644 664 END SUBROUTINE dyn_spg_ts 645 SUBROUTINE ts_rst( kt, cdrw ) ! Empty routine665 SUBROUTINE ts_rst( kt, cdrw ) ! Empty routine 646 666 INTEGER , INTENT(in) :: kt ! ocean time-step 647 667 CHARACTER(len=*), INTENT(in) :: cdrw ! "READ"/"WRITE" flag
Note: See TracChangeset
for help on using the changeset viewer.