Changeset 2128 for branches/devukmo2010/NEMO/OPA_SRC/TRA
- Timestamp:
- 2010-09-28T14:29:51+02:00 (14 years ago)
- Location:
- branches/devukmo2010/NEMO/OPA_SRC/TRA
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/devukmo2010/NEMO/OPA_SRC/TRA/tradmp.F90
r1601 r2128 47 47 LOGICAL, PUBLIC :: lk_tradmp = .TRUE. !: internal damping flag 48 48 #endif 49 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: strdmp !: damping salinity trend (psu/s) 50 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: ttrdmp !: damping temperature trend (Centigrade/s) 49 51 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: resto !: restoring coeff. on T and S (s-1) 50 52 … … 91 93 INTEGER, INTENT(in) :: kt ! ocean time-step index 92 94 !! 95 REAL(wp) :: zta, zsa ! temporary scalars 93 96 INTEGER :: ji, jj, jk ! dummy loop indices 94 97 !!---------------------------------------------------------------------- … … 107 110 DO jj = 2, jpjm1 108 111 DO ji = fs_2, fs_jpim1 ! vector opt. 109 ta(ji,jj,jk) = ta(ji,jj,jk) + resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 110 sa(ji,jj,jk) = sa(ji,jj,jk) + resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 112 zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 113 zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 114 ! add the trends to the general tracer trends 115 ta(ji,jj,jk) = ta(ji,jj,jk) + zta 116 sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 117 ! save the salinity trend (used in asmtrj) 118 strdmp(ji,jj,jk) = zsa 119 ttrdmp(ji,jj,jk) = zta 111 120 END DO 112 121 END DO … … 118 127 DO ji = fs_2, fs_jpim1 ! vector opt. 119 128 IF( avt(ji,jj,jk) <= 5.e-4 ) THEN 120 ta(ji,jj,jk) = ta(ji,jj,jk) + resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 121 sa(ji,jj,jk) = sa(ji,jj,jk) + resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 129 zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 130 zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 131 ELSE 132 zta = 0.e0 133 zsa = 0.e0 122 134 ENDIF 135 ! add the trends to the general tracer trends 136 ta(ji,jj,jk) = ta(ji,jj,jk) + zta 137 sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 138 ! save the salinity trend (used in asmtrj) 139 strdmp(ji,jj,jk) = zsa 140 ttrdmp(ji,jj,jk) = zta 123 141 END DO 124 142 END DO … … 130 148 DO ji = fs_2, fs_jpim1 ! vector opt. 131 149 IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 132 ta(ji,jj,jk) = ta(ji,jj,jk) + resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 133 sa(ji,jj,jk) = sa(ji,jj,jk) + resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 150 zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 151 zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 152 ELSE 153 zta = 0.e0 154 zsa = 0.e0 134 155 ENDIF 156 ! add the trends to the general tracer trends 157 ta(ji,jj,jk) = ta(ji,jj,jk) + zta 158 sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 159 ! save the salinity trend (used in asmtrj) 160 strdmp(ji,jj,jk) = zsa 161 ttrdmp(ji,jj,jk) = zta 135 162 END DO 136 163 END DO … … 199 226 & CALL ctl_stop( 'no temperature and/or salinity data define key_dtatem and key_dtasal' ) 200 227 228 strdmp(:,:,:) = 0.e0 ! internal damping salinity trend (used in asmtrj) 229 ttrdmp(:,:,:) = 0.e0 201 230 ! ! Damping coefficients initialization 202 231 IF( lzoom ) THEN ; CALL dtacof_zoom -
branches/devukmo2010/NEMO/OPA_SRC/TRA/trasbc.F90
r1892 r2128 21 21 USE in_out_manager ! I/O manager 22 22 USE prtctl ! Print control 23 USE sbcrnf ! River runoff 24 USE sbcmod ! ln_rnf 23 25 24 26 IMPLICIT NONE … … 103 105 INTEGER, INTENT(in) :: kt ! ocean time-step index 104 106 !! 105 INTEGER :: ji, jj ! dummy loop indices 106 REAL(wp) :: zta, zsa, zsrau, zse3t ! temporary scalars 107 INTEGER :: ji, jj, jk ! dummy loop indices 108 REAL(wp) :: zta, zsa ! temporary scalars, adjustment to temperature and salinity 109 REAL(wp) :: zata, zasa ! temporary scalars, calculations of automatic change to temp & sal due to vvl (done elsewhere) 110 REAL(wp) :: zsrau, zse3t, zdep ! temporary scalars, 1/density, 1/height of box, 1/height of effected water column 111 REAL(wp) :: zdheat, zdsalt ! total change of temperature and salinity 107 112 !!---------------------------------------------------------------------- 108 113 … … 125 130 IF( .NOT.ln_traqsr ) qsr(:,:) = 0.e0 ! no solar radiation penetration 126 131 127 ! Concentration dil lution effect on (t,s)132 ! Concentration dilution effect on (t,s) due to evapouration, precipitation and qns, but not river runoff 128 133 DO jj = 2, jpj 129 134 DO ji = fs_2, fs_jpim1 ! vector opt. … … 132 137 #endif 133 138 IF( lk_vvl) THEN 134 zta = ro0cpr * qns(ji,jj) * zse3t & ! temperature : heat flux135 & - emp(ji,jj) * zsrau * tn(ji,jj,1) * zse3t ! & cooling/heating effet of EMP flux139 zta = ro0cpr * qns(ji,jj) * zse3t & ! temperature : heat flux 140 & - emp(ji,jj) * zsrau * tn(ji,jj,1) * zse3t ! & cooling/heating effet of EMP flux 136 141 zsa = ( emps(ji,jj) - emp(ji,jj) ) & 137 142 & * zsrau * sn(ji,jj,1) * zse3t ! concent./dilut. effect due to sea-ice 138 143 ! melt/formation and (possibly) SSS restoration 139 144 ELSE 140 zta = ro0cpr * qns(ji,jj) * zse3t ! temperature : heat flux141 zsa = emps(ji,jj) * zsrau * sn(ji,jj,1) * zse3t ! salinity : concent./dilut. effect145 zta = ro0cpr * qns(ji,jj) * zse3t ! temperature : heat flux 146 zsa = emps(ji,jj) * zsrau * sn(ji,jj,1) * zse3t ! salinity : concent./dilut. effect 142 147 ENDIF 143 148 ta(ji,jj,1) = ta(ji,jj,1) + zta ! add the trend to the general tracer trend … … 145 150 END DO 146 151 END DO 152 153 IF ( ln_rnf ) THEN 154 155 ! Effect on (t,s) due to river runoff (dilution effect automatically applied via vertical tracer advection) 156 DO jj=1,jpj 157 DO ji=1,jpi 158 zdep = 1. / rnf_dep(ji,jj) 159 zse3t= 1. / fse3t(ji,jj,1) 160 161 IF ( rnf(ji,jj) .gt. 0.0 ) THEN 162 ! ammend t and s due to direct tracer flux 163 IF ( rnf_tmp(ji,jj) == -999 ) rnf_tmp(ji,jj)=tn(ji,jj,1) ! if not specified set runoff temp to be sst 164 DO jk=1, rnf_mod_dep(ji,jj) 165 ta(ji,jj,jk) = ta(ji,jj,jk) + rnf_tmp(ji,jj) * rnf(ji,jj) * zsrau * zdep 166 sa(ji,jj,jk) = sa(ji,jj,jk) + rnf_sal(ji,jj) * rnf(ji,jj) * zsrau * zdep 167 ENDDO 168 ELSEIF (rnf(ji,jj) .lt. 0.) THEN !! for use in baltic when flow is out of domain, want no change in temp and sal 169 ! negate concentration/dilution effect from traadv, as the tracer leaves domain 170 DO jk=1, rnf_mod_dep(ji,jj) 171 ta(ji,jj,jk) = ta(ji,jj,jk) + tn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 172 sa(ji,jj,jk) = sa(ji,jj,jk) + sn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 173 ENDDO 174 ENDIF 175 176 ENDDO 177 ENDDO 178 179 ENDIF 147 180 148 181 IF( l_trdtra ) THEN ! save the sbc trends for diagnostic
Note: See TracChangeset
for help on using the changeset viewer.