Changeset 1175 for trunk/NEMO/TOP_SRC/TRP/trcdmp.F90
- Timestamp:
- 2008-09-11T18:26:34+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/TRP/trcdmp.F90
r1152 r1175 4 4 !! Ocean physics: internal restoring trend on passive tracers 5 5 !!====================================================================== 6 #if defined key_top && defined key_trcdmp 6 !! History : 7.0 ! (G. Madec) Original code 7 !! ! 96-01 (G. Madec) 8 !! ! 97-05 (H. Loukos) adapted for passive tracers 9 !! 8.5 ! 02-08 (G. Madec ) free form + modules 10 !! 9.0 ! 04-03 (C. Ethe) free form + modules 11 !! ! 07-02 (C. Deltel) Diagnose ML trends for passive tracers 7 12 !!---------------------------------------------------------------------- 8 !! 'key_top' TOP models 9 !! 'key_trcdmp' internal damping 13 #if defined key_top && defined key_trcdmp 14 !!---------------------------------------------------------------------- 15 !! key_trcdmp internal damping 10 16 !!---------------------------------------------------------------------- 11 17 !! trc_dmp : update the tracer trend with the internal damping … … 16 22 !!---------------------------------------------------------------------- 17 23 USE oce_trc ! ocean dynamics and tracers variables 18 USE tr p_trc ! ocean passive tracers variables24 USE trc ! ocean passive tracers variables 19 25 USE trctrp_lec ! passive tracers transport 20 26 USE trcdta 21 27 USE prtctl_trc ! Print control for debbuging 28 USE trdmld_trc 29 USE trdmld_trc_oce 22 30 23 31 IMPLICIT NONE 24 32 PRIVATE 25 33 26 !! * Routine accessibility 27 PUBLIC trc_dmp ! routine called by step.F90 28 29 !! * Shared module variables 30 LOGICAL , PUBLIC, PARAMETER :: lk_trcdmp = .TRUE. !: internal damping flag 31 32 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra) :: & 33 restotr ! restoring coeff. on tracers (s-1) 34 PUBLIC trc_dmp ! routine called by step.F90 35 36 LOGICAL , PUBLIC, PARAMETER :: lk_trcdmp = .TRUE. !: internal damping flag 37 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra) :: restotr ! restoring coeff. on tracers (s-1) 34 38 35 39 !! * Substitutions … … 37 41 !!---------------------------------------------------------------------- 38 42 !! TOP 1.0 , LOCEAN-IPSL (2005) 39 !! $ Id$40 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt43 !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/TRP/trcdmp.F90,v 1.11 2006/09/01 14:03:49 opalod Exp $ 44 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 41 45 !!---------------------------------------------------------------------- 42 46 … … 60 64 !! ** Action : - update the tracer trends tra with the newtonian 61 65 !! damping trends. 62 !! - save the trends in trtrd ('key_trc_diatrd') 63 !! 64 !! History : 65 !! 7.0 ! (G. Madec) Original code 66 !! ! 96-01 (G. Madec) 67 !! ! 97-05 (H. Loukos) adapted for passive tracers 68 !! 8.5 ! 02-08 (G. Madec ) free form + modules 69 !! 9.0 ! 04-03 (C. Ethe) free form + modules 70 !!---------------------------------------------------------------------- 71 !! * Arguments 66 !! - save the trends ('key_trdmld_trc') 67 !!---------------------------------------------------------------------- 68 USE oce, ONLY : ztrtrd => ua ! use ua as 3D workspace 69 !! 72 70 INTEGER, INTENT( in ) :: kt ! ocean time-step index 73 74 !! * Local declarations 75 INTEGER :: ji, jj, jk, jn ! dummy loop indices 76 REAL(wp) :: ztest, ztra, zdt ! temporary scalars 71 INTEGER :: ji, jj, jk, jn ! dummy loop indices 72 REAL(wp) :: ztest, ztra !!!, zdt ! temporary scalars 77 73 CHARACTER (len=22) :: charout 78 74 !!---------------------------------------------------------------------- … … 82 78 IF( kt == nittrc000 ) CALL trc_dmp_init 83 79 80 84 81 ! 1. Newtonian damping trends on tracer fields 85 82 ! -------------------------------------------- … … 89 86 90 87 ! Initialize the input fields for newtonian damping 91 CALL trc_dta( kt ) 92 93 DO jn = 1, jptra 88 CALL dta_trc( kt ) 89 90 ! ! =========== 91 DO jn = 1, jptra ! tracer loop 92 ! ! =========== 93 IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn) ! save trends 94 94 95 95 IF( lutini(jn) ) THEN … … 106 106 !! trn(ji,jj,jk,jn) = trn(ji,jj,jk,jn) + ztra * zdt 107 107 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 108 # if defined key_trc_diatrd109 ! save the trends for diagnostics110 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),jpdiatrc-1) = ztra111 # endif112 108 END DO 113 109 END DO … … 129 125 # if defined key_trc_diatrd 130 126 ! save the trends for diagnostics 131 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),jpdiatrc -1) = ztra127 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),jpdiatrc) = ztra 132 128 # endif 129 133 130 END DO 134 131 END DO … … 149 146 # if defined key_trc_diatrd 150 147 ! save the trends for diagnostics 151 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),jpdiatrc -1) = ztra148 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),jpdiatrc) = ztra 152 149 # endif 150 153 151 END DO 154 152 END DO … … 159 157 ENDIF 160 158 161 END DO 162 163 IF(ln_ctl) THEN ! print mean trends (used for debugging) 159 IF( l_trdtrc ) THEN 160 ztrtrd(:,:,:) = tra(:,:,:,jn) - ztrtrd(:,:,:) 161 IF (luttrd(jn)) CALL trd_mod_trc( ztrtrd, jn, jptrc_trd_dmp, kt ) ! trends diags. 162 END IF 163 ! ! =========== 164 END DO ! tracer loop 165 ! ! =========== 166 167 IF( ln_ctl ) THEN ! print mean trends (used for debugging) 164 168 WRITE(charout, FMT="('dmp')") 165 CALL prt_ctl_trc_info( charout)166 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd')169 CALL prt_ctl_trc_info( charout ) 170 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd' ) 167 171 ENDIF 168 172 … … 180 184 !! ** Method : read the nammbf namelist and check the parameters 181 185 !! called by trc_dmp at the first timestep (nit000) 182 !!183 !! History :184 !! 8.5 ! 02-08 (G. Madec) Original code185 186 !!---------------------------------------------------------------------- 186 187 … … 194 195 195 196 CASE DEFAULT 196 WRITE(ctmp1,*) ' bad flag value for ndmp = ', ndmp197 WRITE(ctmp1,*) ' bad flag value for ndmptr = ', ndmptr 197 198 CALL ctl_stop(ctmp1) 198 199 … … 212 213 213 214 CASE DEFAULT 214 WRITE(ctmp1,*) ' bad flag value for nmldmp = ', nmldmp215 WRITE(ctmp1,*) ' bad flag value for nmldmptr = ', nmldmptr 215 216 CALL ctl_stop(ctmp1) 216 217 217 218 218 END SELECT 219 219 220 221 ! 3. Damping coefficients initialization 222 ! -------------------------------------- 223 224 IF( lzoom ) THEN 225 CALL trccof_zoom 226 ELSE 227 CALL trccof 228 ENDIF 220 ! Damping coefficients initialization 221 ! ----------------------------------- 222 IF( lzoom ) THEN 223 CALL trccof_zoom 224 ELSE 225 CALL trccof 226 ENDIF 229 227 230 228 END SUBROUTINE trc_dmp_init … … 357 355 icot ! logical unit for file distance to the coast 358 356 359 CHARACTER (len=32) :: clname, clname2,clname3357 CHARACTER (len=32) :: clname3 360 358 REAL(wp) :: & 361 359 zdate0, zinfl, zlon, & ! temporary scalars
Note: See TracChangeset
for help on using the changeset viewer.