Changeset 335 for trunk/NEMO/TOP_SRC/trclec.F90
- Timestamp:
- 2005-11-14T13:08:42+01:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/trclec.F90
r274 r335 7 7 !!========================================================================= 8 8 !! TOP 1.0, LOCEAN-IPSL (2005) 9 !! $Header$10 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt11 9 !!---------------------------------------------------------------------- 12 13 !! * Modules used 14 !! ============== 15 USE oce_trc 16 USE trc 17 USE trctrp_lec 18 USE trclsm 19 20 IMPLICIT NONE 21 PRIVATE 22 23 !! * Accessibility 24 PUBLIC trc_lec 10 #if defined key_passivetrc 11 !! * Modules used 12 !! ============== 13 USE oce_trc 14 USE trc 15 USE trctrp_lec 16 USE trclsm 17 18 IMPLICIT NONE 19 PRIVATE 20 21 !! * Accessibility 22 PUBLIC trc_lec 23 24 #include "passivetrc_substitute.h90" 25 25 26 26 CONTAINS 27 27 28 #if defined key_passivetrc 29 30 SUBROUTINE trc_lec 31 !!--------------------------------------------------------------------- 32 !! ROUTINE trclec 33 !! ****************** 34 !! PURPOSE : 35 !! --------- 36 !! READ and PRINT options for the passive tracer run (namelist) 37 !! 38 !! History: 39 !! -------- 40 !! original : 96-11 (M.A. Foujols, M. Levy) passive tracer 41 !! modification : 98-04 (M.A Foujols, L. Bopp) ahtrb0 for isopycnal 42 !! diffusion 43 !! modification : 99-10(M.A. Foujols, M. Levy) separation of sms 44 !! additions : 00-05(A. Estublier) TVD Limiter Scheme : Tests 45 !! on ndttrc 46 !! additions : 00-06(A. Estublier) MUSCL Scheme : Tests 47 !! on ndttrc 48 !! additions : 00-07(A. Estublier) PPM Scheme : Tests on ndttrc 49 !! modification : 00-11 (M.A Foujols, E Kestenare) trcrat, ahtrc0 and aeivtr0 50 !! modification : 01-01 (E Kestenare) suppress ndttrc=1 51 !! for Arakawa and TVD schemes 52 !! O.Aumont and A.El Moussaoui 03/05 F90 53 !!---------------------------------------------------------------------- 54 55 !! local declarations 56 !! ================== 28 SUBROUTINE trc_lec 29 !!--------------------------------------------------------------------- 30 !! ROUTINE trclec 31 !! ****************** 32 !! PURPOSE : 33 !! --------- 34 !! READ and PRINT options for the passive tracer run (namelist) 35 !! 36 !! History: 37 !! -------- 38 !! original : 96-11 (M.A. Foujols, M. Levy) passive tracer 39 !! modification : 98-04 (M.A Foujols, L. Bopp) ahtrb0 for isopycnal 40 !! diffusion 41 !! modification : 99-10(M.A. Foujols, M. Levy) separation of sms 42 !! additions : 00-05(A. Estublier) TVD Limiter Scheme : Tests 43 !! on ndttrc 44 !! additions : 00-06(A. Estublier) MUSCL Scheme : Tests 45 !! on ndttrc 46 !! additions : 00-07(A. Estublier) PPM Scheme : Tests on ndttrc 47 !! modification : 00-11 (M.A Foujols, E Kestenare) trcrat, ahtrc0 and aeivtr0 48 !! modification : 01-01 (E Kestenare) suppress ndttrc=1 49 !! for Arakawa and TVD schemes 50 !! O.Aumont and A.El Moussaoui 03/05 F90 51 !!---------------------------------------------------------------------- 52 53 !! local declarations 54 !! ================== 57 55 58 56 INTEGER :: ji 59 57 CHARACTER (len=32) :: clname 60 58 61 !!---------------------------------------------------------------------- 62 !! statement functions 63 !! =================== 64 65 #include "passivetrc_substitute.h90" 66 67 !! 68 !!--------------------------------------------------------------------- 69 !! OPA.90 03/2005 70 !!--------------------------------------------------------------------- 71 72 !! 0. initializations 73 !! ------------------ 59 !!--------------------------------------------------------------------- 60 !! OPA.90 03/2005 61 !!--------------------------------------------------------------------- 62 63 !! 0. initializations 64 !! ------------------ 74 65 75 66 namelist/nattrc/nwritetrc,lrsttr,nrsttr, ctrcnm,ctrcnl,ctrcun,lutini !general … … 83 74 #if defined key_trc_diaadd 84 75 namelist/natadd/ctrc3d,ctrc3l,ctrc2d,ctrc2l, ctrc3u, ctrc2u, & 85 86 #endif 87 88 IF(lwp) THEN 89 90 91 92 93 94 95 76 nwriteadd !additional diagnostics 77 #endif 78 79 IF(lwp) THEN 80 WRITE(numout,*) ' ' 81 WRITE(numout,*) ' ROUTINE trclec' 82 WRITE(numout,*) ' **************' 83 WRITE(numout,*) ' ' 84 WRITE(numout,*) ' namelist for passive tracer' 85 WRITE(numout,*) ' ***************************' 86 WRITE(numout,*) ' ' 96 87 ENDIF 97 88 … … 102 93 OPEN( numnat, FILE= clname, FORM='formatted', STATUS = 'old') 103 94 104 !! 1., 2. & 3. initialization with namelist files105 !! ----------------------------------------------106 !! 1.0 namelist nattrc :95 !! 1., 2. & 3. initialization with namelist files 96 !! ---------------------------------------------- 97 !! 1.0 namelist nattrc : 107 98 108 99 nwritetrc = 10 … … 111 102 112 103 DO ji=1,jptra 113 WRITE (ctrcnm(ji),'("TR_",I1)') ji114 WRITE (ctrcnl(ji),'("TRACER NUMBER ",I1)') ji115 ctrcun(ji)='mmole/m3'116 lutini(ji)=.FALSE.104 WRITE (ctrcnm(ji),'("TR_",I1)') ji 105 WRITE (ctrcnl(ji),'("TRACER NUMBER ",I1)') ji 106 ctrcun(ji)='mmole/m3' 107 lutini(ji)=.FALSE. 117 108 END DO 118 109 … … 122 113 123 114 IF(lwp) THEN 124 125 126 127 128 129 130 131 & lrsttr132 133 & nrsttr134 115 WRITE(numout,*) ' ' 116 WRITE(numout,*) 'nattrc' 117 WRITE(numout,*) ' ' 118 WRITE(numout,*) & 119 ' frequency of outputs for passive tracers nwritetrc = ' & 120 ,nwritetrc 121 WRITE(numout,*) ' restart LOGICAL for passive tr. lrsttr = ', & 122 & lrsttr 123 WRITE(numout,*) ' control of time step for p. tr. nrsttr = ', & 124 & nrsttr 125 DO ji=1,jptra 135 126 WRITE(numout,*) ' tracer nb: ',ji,' name = ',ctrcnm(ji) & 136 & ,ctrcnl(ji)127 & ,ctrcnl(ji) 137 128 WRITE(numout,*) ' in unit = ',ctrcun(ji) 138 129 WRITE(numout,*) ' initial value in FILE : ',lutini(ji) 139 130 WRITE(numout,*) ' ' 140 141 131 END DO 132 WRITE(numout,*) ' ' 142 133 ENDIF 143 134 144 135 #if defined key_trc_diatrd 145 136 146 !! 1.2 namelist nattrd : passive tracers dynamical trends137 !! 1.2 namelist nattrd : passive tracers dynamical trends 147 138 148 139 nwritetrd=10 149 140 150 !! default : no dynamical trend recording151 !! --------------------------------------141 !! default : no dynamical trend recording 142 !! -------------------------------------- 152 143 DO ji=1,jptra 153 luttrd(ji) = .FALSE.154 END DO 144 luttrd(ji) = .FALSE. 145 END DO 155 146 156 147 REWIND(numnat) … … 158 149 159 150 IF(lwp) THEN 160 161 162 163 164 165 151 WRITE(numout,*) 'natrtd' 152 WRITE(numout,*) ' ' 153 WRITE(numout,*) & 154 ' frequency of outputs for dynamical trends nwritetrd = ' & 155 ,nwritetrd 156 DO ji=1,jptra 166 157 WRITE(numout,*) & 167 158 ' keep dynamical trends for tracer number :',ji & 168 159 ,luttrd(ji) 169 END DO170 ENDIF 171 #endif 172 173 !!1.3 namelist natadd : passive tracers diagnostics174 !!-------------------------------------------------160 END DO 161 ENDIF 162 #endif 163 164 !!1.3 namelist natadd : passive tracers diagnostics 165 !!------------------------------------------------- 175 166 176 167 #if defined key_trc_diaadd … … 178 169 nwriteadd = 10 179 170 180 !! default value for 3D output arrays : short and long name, units171 !! default value for 3D output arrays : short and long name, units 181 172 182 173 DO ji=1,jpdia3d 183 WRITE (ctrc3d(ji),'("3D_",I1)') ji184 WRITE (ctrc3l(ji),'("3D DIAGNOSTIC NUMBER ",I2)') ji185 ctrc3u(ji)=' '186 END DO 187 188 189 !! default value for 2D output arrays : short and long name, units190 !! ---------------------------------------------------------------174 WRITE (ctrc3d(ji),'("3D_",I1)') ji 175 WRITE (ctrc3l(ji),'("3D DIAGNOSTIC NUMBER ",I2)') ji 176 ctrc3u(ji)=' ' 177 END DO 178 179 180 !! default value for 2D output arrays : short and long name, units 181 !! --------------------------------------------------------------- 191 182 DO ji=1,jpdia2d 192 WRITE (ctrc2d(ji),'("2D_",I1)') ji193 WRITE (ctrc2l(ji),'("2D DIAGNOSTIC NUMBER ",I2)') ji194 ctrc2u(ji)=' '195 END DO 183 WRITE (ctrc2d(ji),'("2D_",I1)') ji 184 WRITE (ctrc2l(ji),'("2D DIAGNOSTIC NUMBER ",I2)') ji 185 ctrc2u(ji)=' ' 186 END DO 196 187 197 188 REWIND(numnat) … … 199 190 200 191 IF(lwp) THEN 201 202 203 204 205 206 192 WRITE(numout,*) ' natadd' 193 WRITE(numout,*) ' ' 194 WRITE(numout,*) & 195 ' frequency of outputs for additional arrays nwriteadd = ' & 196 ,nwriteadd 197 DO ji=1,jpdia3d 207 198 WRITE(numout,*) & 208 199 'name of 3d output field number :',ji,' : ',ctrc3d(ji) 209 200 WRITE(numout,*) ctrc3l(ji) 210 201 WRITE(numout,*) ' in unit = ',ctrc3u(ji) 211 END DO212 213 202 END DO 203 WRITE(numout,*) ' ' 204 DO ji=1,jpdia2d 214 205 WRITE(numout,*) & 215 206 'name of 2d output field number :',ji,' : ',ctrc2d(ji) 216 207 WRITE(numout,*) ctrc2l(ji) 217 208 WRITE(numout,*) ' in unit = ',ctrc2u(ji) 218 END DO219 220 ENDIF 221 #endif 222 223 !! 1.1 namelist natnum :224 !! ---------------------209 END DO 210 WRITE(numout,*) ' ' 211 ENDIF 212 #endif 213 214 !! 1.1 namelist natnum : 215 !! --------------------- 225 216 rsc=1. 226 217 rtrn=1.e-15 … … 236 227 237 228 IF(lwp) THEN 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 ENDIF 254 255 256 !! namelist of transport257 !! ---------------------229 WRITE(numout,*) ' ' 230 WRITE(numout,*) 'natnum' 231 WRITE(numout,*) ' ' 232 WRITE(numout,*) ' tuning coefficient rsc = ', & 233 rsc 234 WRITE(numout,*) ' truncation value rtrn = ', & 235 rtrn 236 WRITE(numout,*) ' number of corrective phase ncortrc = ', & 237 ncortrc 238 WRITE(numout,*) ' time step freq. for pass. trac. ndttrc = ', & 239 ndttrc 240 WRITE(numout,*) ' 1st time step for pass. trac. nittrc000 = ', & 241 nittrc000 242 WRITE(numout,*) ' computes or not crossterms crosster = ', & 243 crosster 244 ENDIF 245 246 247 !! namelist of transport 248 !! --------------------- 258 249 CALL trc_trp_lec 259 250 260 !! namelist of SMS261 !! ---------------251 !! namelist of SMS 252 !! --------------- 262 253 CALL trc_lsm 263 254 264 END SUBROUTINE trc_lec 255 END SUBROUTINE trc_lec 265 256 266 257 #else 267 268 SUBROUTINE trc_lec 269 !!============== 270 !! no passive tracers 271 !!============== 272 END SUBROUTINE trc_lec 258 !!====================================================================== 259 !! Empty module : No passive tracer 260 !!====================================================================== 261 CONTAINS 262 263 SUBROUTINE trc_lec 264 265 END SUBROUTINE trc_lec 273 266 274 267 #endif
Note: See TracChangeset
for help on using the changeset viewer.