Changeset 503 for trunk/NEMO/OPA_SRC/TRA/trasbc.F90
- Timestamp:
- 2006-09-27T10:52:29+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/TRA/trasbc.F90
r457 r503 4 4 !! Ocean active tracers: surface boundary condition 5 5 !!============================================================================== 6 !! History : 7 !! 8.2 ! 98-10 (G. Madec, G. Roullet, M. Imbard) Original code8 !! 8.2 ! 01-02 (D. Ludicone) sea ice and free surface9 !! 8.5 ! 02-06 (G. Madec) F90: Free form and module10 !! 9.0 ! 04-08 (C. Talandier) New trends organization 6 !! History : 8.2 ! 98-10 (G. Madec, G. Roullet, M. Imbard) Original code 7 !! 8.2 ! 01-02 (D. Ludicone) sea ice and free surface 8 !! 8.5 ! 02-06 (G. Madec) F90: Free form and module 9 !!---------------------------------------------------------------------- 10 11 11 !!---------------------------------------------------------------------- 12 12 !! tra_sbc : update the tracer trend at ocean surface 13 13 !!---------------------------------------------------------------------- 14 !! * Modules used15 14 USE oce ! ocean dynamics and active tracers 16 15 USE dom_oce ! ocean space domain variables … … 26 25 PRIVATE 27 26 28 !! * Routine accessibility 29 PUBLIC tra_sbc ! routine called by step.F90 27 PUBLIC tra_sbc ! routine called by step.F90 30 28 31 29 !! * Substitutions … … 35 33 !! OPA 9.0 , LOCEAN-IPSL (2005) 36 34 !! $Header$ 37 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt35 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 38 36 !!---------------------------------------------------------------------- 39 37 … … 78 76 !! with the tracer surface boundary condition 79 77 !! - save the trend it in ttrd ('key_trdtra') 78 !!---------------------------------------------------------------------- 79 USE oce, ONLY : ztrdt => ua ! use ua as 3D workspace 80 USE oce, ONLY : ztrds => va ! use va as 3D workspace 80 81 !! 81 !!---------------------------------------------------------------------- 82 !! * Modules used 83 USE oce, ONLY : ztdta => ua, & ! use ua as 3D workspace 84 ztdsa => va ! use va as 3D workspace 85 86 !! * Arguments 87 INTEGER, INTENT( in ) :: kt ! ocean time-step index 88 89 !! * Local declarations 82 INTEGER, INTENT(in) :: kt ! ocean time-step index 83 !! 90 84 INTEGER :: ji, jj ! dummy loop indices 91 85 REAL(wp) :: zta, zsa, zsrau, zse3t ! temporary scalars … … 98 92 ENDIF 99 93 100 ! 0. initialization 101 zsrau = 1. / rauw 94 zsrau = 1. / rauw ! initialization 102 95 #if defined key_zco 103 96 zse3t = 1. / e3t_0(1) 104 97 #endif 105 98 106 ! Save ta and sa trends 107 IF( l_trdtra ) THEN 108 ztdta(:,:,:) = ta(:,:,:) 109 ztdsa(:,:,:) = sa(:,:,:) 99 IF( l_trdtra ) THEN ! Save ta and sa trends 100 ztrdt(:,:,:) = ta(:,:,:) 101 ztrds(:,:,:) = sa(:,:,:) 110 102 ENDIF 111 103 112 104 IF( .NOT.ln_traqsr ) qsr(:,:) = 0.e0 ! no solar radiation penetration 113 105 114 ! 1.Concentration dillution effect on (t,s)106 ! Concentration dillution effect on (t,s) 115 107 DO jj = 2, jpj 116 108 DO ji = fs_2, fs_jpim1 ! vector opt. … … 118 110 zse3t = 1. / fse3t(ji,jj,1) 119 111 #endif 120 ! temperature : heat flux 121 zta = ro0cpr * ( qt(ji,jj) - qsr(ji,jj) ) * zse3t 122 123 ! salinity : concent./dilut. effect 124 zsa = emps(ji,jj) * zsrau * sn(ji,jj,1) * zse3t 125 126 ! add the trend to the general tracer trend 127 ta(ji,jj,1) = ta(ji,jj,1) + zta 112 zta = ro0cpr * ( qt(ji,jj) - qsr(ji,jj) ) * zse3t ! temperature : heat flux 113 zsa = emps(ji,jj) * zsrau * sn(ji,jj,1) * zse3t ! salinity : concent./dilut. effect 114 ta(ji,jj,1) = ta(ji,jj,1) + zta ! add the trend to the general tracer trend 128 115 sa(ji,jj,1) = sa(ji,jj,1) + zsa 129 116 END DO 130 117 END DO 131 118 132 ! save the trends for diagnostic 133 ! sea surface boundary condition tracers trends 134 IF( l_trdtra ) THEN 135 ztdta(:,:,:) = ta(:,:,:) - ztdta(:,:,:) 136 ztdsa(:,:,:) = sa(:,:,:) - ztdsa(:,:,:) 137 CALL trd_mod(ztdta, ztdsa, jpttdnsr, 'TRA', kt) 119 IF( l_trdtra ) THEN ! save the sbc trends for diagnostic 120 ztrdt(:,:,:) = ta(:,:,:) - ztrdt(:,:,:) 121 ztrds(:,:,:) = sa(:,:,:) - ztrds(:,:,:) 122 CALL trd_mod(ztrdt, ztrds, jptra_trd_nsr, 'TRA', kt) 138 123 ENDIF 139 140 IF(ln_ctl) THEN ! print mean trends (used for debugging) 141 CALL prt_ctl(tab3d_1=ta, clinfo1=' sbc - Ta: ', mask1=tmask, & 142 & tab3d_2=sa, clinfo2=' Sa: ', mask2=tmask, clinfo3='tra') 143 ENDIF 144 124 ! 125 IF(ln_ctl) CALL prt_ctl( tab3d_1=ta, clinfo1=' sbc - Ta: ', mask1=tmask, & 126 & tab3d_2=sa, clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 127 ! 145 128 END SUBROUTINE tra_sbc 146 129
Note: See TracChangeset
for help on using the changeset viewer.