Changeset 2052
- Timestamp:
- 2010-08-13T11:15:17+02:00 (14 years ago)
- Location:
- branches/DEV_r2006_merge_TRA_TRC/NEMO
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r2034 r2052 20 20 !! area (set for orca 2 and 4 only) 21 21 !!---------------------------------------------------------------------- 22 USE oce, ONLY: t sn ! now ocean temperature and salinity22 USE oce, ONLY: tn, sn ! now ocean temperature and salinity 23 23 USE dom_oce ! ocean space and time domain 24 24 USE eosbn2 ! equation of state … … 159 159 !!gm not strickly exact : the freezing point should be computed at each ocean levels... 160 160 !!gm not a big deal since cen2 is no more used in global ice-ocean simulations 161 ztfreez(:,:) = tfreez( tsn(:,:,1,jp_sal) )161 ztfreez(:,:) = tfreez( sn(:,:,1) ) 162 162 DO jk = 1, jpk 163 163 DO jj = 1, jpj 164 164 DO ji = 1, jpi 165 165 ! ! below ice covered area (if tn < "freezing"+0.1 ) 166 IF( t sn(ji,jj,jk,jp_tem) <= ztfreez(ji,jj) + 0.1 ) THEN ; zice = 1.e0166 IF( tn(ji,jj,jk) <= ztfreez(ji,jj) + 0.1 ) THEN ; zice = 1.e0 167 167 ELSE ; zice = 0.e0 168 168 ENDIF -
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trasbc.F90
r2024 r2052 200 200 ENDIF 201 201 202 ELSE IF( rnf(ji,jj) >0.) THEN ! for use in baltic when flow is out of domain, want no change in temp and sal202 ELSE IF( rnf(ji,jj) < 0.) THEN ! for use in baltic when flow is out of domain, want no change in temp and sal 203 203 204 204 IF( lk_vvl ) THEN -
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r2034 r2052 180 180 END DO 181 181 END DO 182 ! first recurrence: Tk = Dk - Ik Sk-1 / Tk-1 (increasing k) 183 DO jj = 2, jpjm1 184 DO ji = fs_2, fs_jpim1 185 zwt(ji,jj,1) = zwd(ji,jj,1) 186 END DO 187 END DO 188 DO jk = 2, jpkm1 189 DO jj = 2, jpjm1 190 DO ji = fs_2, fs_jpim1 191 zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) /zwt(ji,jj,jk-1) 192 END DO 193 END DO 194 END DO 182 195 ! 183 196 ELSE IF( ( cdtype == 'TRA' .AND. jn == jp_sal ) .OR. ( cdtype == 'TRC' .AND. jn == 1 ) ) THEN … … 191 204 & * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & 192 205 & + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) ) 193 zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi ! zwt=avt+zavi (total vertical mixing coef. on temperature)206 zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi ! zwt=avt+zavi (total vertical mixing coef. on salinity) 194 207 END DO 195 208 END DO … … 223 236 END DO 224 237 ! 225 END IF 238 ! first recurrence: Tk = Dk - Ik Sk-1 / Tk-1 (increasing k) 239 DO jj = 2, jpjm1 240 DO ji = fs_2, fs_jpim1 241 zwt(ji,jj,1) = zwd(ji,jj,1) 242 END DO 243 END DO 244 DO jk = 2, jpkm1 245 DO jj = 2, jpjm1 246 DO ji = fs_2, fs_jpim1 247 zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) /zwt(ji,jj,jk-1) 248 END DO 249 END DO 250 END DO 251 ! 252 END IF 226 253 227 254 ! II.1. Vertical diffusion on tracer 228 255 ! --------------------------- 229 230 !! Matrix inversion from the first level231 !!----------------------------------------------------------------------232 ! solve m.x = y where m is a tri diagonal matrix ( jpk*jpk )233 !234 ! ( zwd1 zws1 0 0 0 )( zwx1 ) ( zwy1 )235 ! ( zwi2 zwd2 zws2 0 0 )( zwx2 ) ( zwy2 )236 ! ( 0 zwi3 zwd3 zws3 0 )( zwx3 )=( zwy3 )237 ! ( ... )( ... ) ( ... )238 ! ( 0 0 0 zwik zwdk )( zwxk ) ( zwyk )239 !240 ! m is decomposed in the product of an upper and lower triangular matrix241 ! The 3 diagonal terms are in 2d arrays: zwd, zws, zwi242 ! The second member is in 2d array zwy243 ! The solution is in 2d array zwx244 ! The 3d arry zwt is a work space array245 ! zwy is used and then used as a work space array : its value is modified!246 247 ! first recurrence: Tk = Dk - Ik Sk-1 / Tk-1 (increasing k)248 DO jj = 2, jpjm1249 DO ji = fs_2, fs_jpim1250 zwt(ji,jj,1) = zwd(ji,jj,1)251 END DO252 END DO253 DO jk = 2, jpkm1254 DO jj = 2, jpjm1255 DO ji = fs_2, fs_jpim1256 zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) /zwt(ji,jj,jk-1)257 END DO258 END DO259 END DO260 256 261 257 ! second recurrence: Zk = Yk - Ik / Tk-1 Zk-1 -
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/opa.F90
r2027 r2052 261 261 CALL ldf_dyn_init ! Lateral ocean momentum physics 262 262 IF( lk_ldfslp ) CALL ldf_slp_init ! slope of lateral mixing 263 #if defined key_traldf_c2d264 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient265 # endif266 263 ! ! Active tracers 267 264 CALL tra_qsr_init ! penetrative solar radiation qsr -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/par_c14b.F90
r2038 r2052 27 27 28 28 IMPLICIT NONE 29 PUBLIC30 29 31 INTEGER, P UBLIC, PARAMETER :: jp_lp= jp_lobster + jp_pisces + jp_cfc !: cum. number of pass. tracers32 INTEGER, P UBLIC, PARAMETER :: jp_lp_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d !:33 INTEGER, P UBLIC, PARAMETER :: jp_lp_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d !:34 INTEGER, P UBLIC, PARAMETER :: jp_lp_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !:30 INTEGER, PARAMETER :: jp_lb = jp_lobster + jp_pisces + jp_cfc !: cum. number of pass. tracers 31 INTEGER, PARAMETER :: jp_lb_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d !: 32 INTEGER, PARAMETER :: jp_lb_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d !: 33 INTEGER, PARAMETER :: jp_lb_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !: 35 34 36 35 #if defined key_c14b … … 40 39 LOGICAL, PUBLIC, PARAMETER :: lk_c14b = .TRUE. !: C14 bomb flag 41 40 INTEGER, PUBLIC, PARAMETER :: jp_c14b = 1 !: number of passive tracers 42 INTEGER, PUBLIC, PARAMETER :: jp_c14b_2d = 2 !: additional 2d output arrays ('key_ diatrc')43 INTEGER, PUBLIC, PARAMETER :: jp_c14b_3d = 1 !: additional 3d output arrays ('key_ diatrc')41 INTEGER, PUBLIC, PARAMETER :: jp_c14b_2d = 2 !: additional 2d output arrays ('key_trc_diaadd') 42 INTEGER, PUBLIC, PARAMETER :: jp_c14b_3d = 1 !: additional 3d output arrays ('key_trc_diaadd') 44 43 INTEGER, PUBLIC, PARAMETER :: jp_c14b_trd = 0 !: number of sms trends for C14 45 46 ! assign an index in trc arrays for each CFC prognostic variables 47 INTEGER, PUBLIC, PARAMETER :: jpc14 = jp_lp + 1 !: C14 bomb 44 INTEGER, PUBLIC, PARAMETER :: jpc14 = jp_lb + 1 !: assign an index in trc arrays for C14 bomb 48 45 #else 49 46 !!--------------------------------------------------------------------- … … 58 55 59 56 ! Starting/ending C14 do-loop indices (N.B. no C14 : jp_c14b0 > jp_c14b1 the do-loop are never done) 60 INTEGER, PUBLIC, PARAMETER :: jp_c14b0 = jp_l p+ 1 !: First index of C14 tracer61 INTEGER, PUBLIC, PARAMETER :: jp_c14b1 = jp_l p+ jp_c14b !: Last index of C14 tracer62 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_2d = jp_l p_2d + 1 !: First index of C14 tracer63 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_2d = jp_l p_2d + jp_c14b_2d !: Last index of C14 tracer64 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_3d = jp_l p_3d + 1 !: First index of C14 tracer65 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_3d = jp_l p_3d + jp_c14b_3d !: Last index of C14 tracer66 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_trd = jp_l p_trd + 1 !: First index of C14 tracer67 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_trd = jp_l p_trd + jp_c14b_trd !: Last index of C14 tracer57 INTEGER, PUBLIC, PARAMETER :: jp_c14b0 = jp_lb + 1 !: First index of C14 tracer 58 INTEGER, PUBLIC, PARAMETER :: jp_c14b1 = jp_lb + jp_c14b !: Last index of C14 tracer 59 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_2d = jp_lb_2d + 1 !: First index of C14 tracer 60 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_2d = jp_lb_2d + jp_c14b_2d !: Last index of C14 tracer 61 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_3d = jp_lb_3d + 1 !: First index of C14 tracer 62 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_3d = jp_lb_3d + jp_c14b_3d !: Last index of C14 tracer 63 INTEGER, PUBLIC, PARAMETER :: jp_c14b0_trd = jp_lb_trd + 1 !: First index of C14 tracer 64 INTEGER, PUBLIC, PARAMETER :: jp_c14b1_trd = jp_lb_trd + jp_c14b_trd !: Last index of C14 tracer 68 65 69 66 !!====================================================================== -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/par_cfc.F90
r2038 r2052 21 21 22 22 IMPLICIT NONE 23 PUBLIC24 23 25 INTEGER, P UBLIC, PARAMETER :: jp_lp= jp_lobster + jp_pisces !: cumulative number of passive tracers26 INTEGER, P UBLIC, PARAMETER :: jp_lp_2d = jp_lobster_2d + jp_pisces_2d !:27 INTEGER, P UBLIC, PARAMETER :: jp_lp_3d = jp_lobster_3d + jp_pisces_3d !:28 INTEGER, P UBLIC, PARAMETER :: jp_lp_trd = jp_lobster_trd + jp_pisces_trd !:24 INTEGER, PARAMETER :: jp_lc = jp_lobster + jp_pisces !: cumulative number of passive tracers 25 INTEGER, PARAMETER :: jp_lc_2d = jp_lobster_2d + jp_pisces_2d !: 26 INTEGER, PARAMETER :: jp_lc_3d = jp_lobster_3d + jp_pisces_3d !: 27 INTEGER, PARAMETER :: jp_lc_trd = jp_lobster_trd + jp_pisces_trd !: 29 28 30 29 #if defined key_cfc … … 34 33 LOGICAL, PUBLIC, PARAMETER :: lk_cfc = .TRUE. !: CFC flag 35 34 INTEGER, PUBLIC, PARAMETER :: jp_cfc = 2 !: number of passive tracers 36 INTEGER, PUBLIC, PARAMETER :: jp_cfc_2d = 2 !: additional 2d output arrays ('key_ diatrc')37 INTEGER, PUBLIC, PARAMETER :: jp_cfc_3d = 0 !: additional 3d output arrays ('key_ diatrc')35 INTEGER, PUBLIC, PARAMETER :: jp_cfc_2d = 2 !: additional 2d output arrays ('key_trc_diaadd') 36 INTEGER, PUBLIC, PARAMETER :: jp_cfc_3d = 0 !: additional 3d output arrays ('key_trc_diaadd') 38 37 INTEGER, PUBLIC, PARAMETER :: jp_cfc_trd = 0 !: number of sms trends for CFC 39 38 40 39 ! assign an index in trc arrays for each CFC prognostic variables 41 INTEGER, PUBLIC, PARAMETER :: jpc11 = jp_l p+ 1 !: CFC-1142 INTEGER, PUBLIC, PARAMETER :: jpc12 = jp_l p+ 2 !: CFC-1240 INTEGER, PUBLIC, PARAMETER :: jpc11 = jp_lc + 1 !: CFC-11 41 INTEGER, PUBLIC, PARAMETER :: jpc12 = jp_lc + 2 !: CFC-12 43 42 #else 44 43 !!--------------------------------------------------------------------- … … 53 52 54 53 ! Starting/ending CFC do-loop indices (N.B. no CFC : jp_cfc0 > jp_cfc1 the do-loop are never done) 55 INTEGER, PUBLIC, PARAMETER :: jp_cfc0 = jp_l p+ 1 !: First index of CFC tracers56 INTEGER, PUBLIC, PARAMETER :: jp_cfc1 = jp_l p+ jp_cfc !: Last index of CFC tracers57 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_2d = jp_l p_2d + 1 !: First index of CFC tracers58 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_2d = jp_l p_2d + jp_cfc_2d !: Last index of CFC tracers59 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_3d = jp_l p_3d + 1 !: First index of CFC tracers60 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_3d = jp_l p_3d + jp_cfc_3d !: Last index of CFC tracers61 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_trd = jp_l p_trd + 1 !: First index of CFC tracers62 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_trd = jp_l p_trd + jp_cfc_trd !: Last index of CFC tracers54 INTEGER, PUBLIC, PARAMETER :: jp_cfc0 = jp_lc + 1 !: First index of CFC tracers 55 INTEGER, PUBLIC, PARAMETER :: jp_cfc1 = jp_lc + jp_cfc !: Last index of CFC tracers 56 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_2d = jp_lc_2d + 1 !: First index of CFC tracers 57 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_2d = jp_lc_2d + jp_cfc_2d !: Last index of CFC tracers 58 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_3d = jp_lc_3d + 1 !: First index of CFC tracers 59 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_3d = jp_lc_3d + jp_cfc_3d !: Last index of CFC tracers 60 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_trd = jp_lc_trd + 1 !: First index of CFC tracers 61 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_trd = jp_lc_trd + jp_cfc_trd !: Last index of CFC tracers 63 62 64 63 !!====================================================================== -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcini_cfc.F90
r2038 r2052 22 22 23 23 PUBLIC trc_ini_cfc ! called by trcini.F90 module 24 25 CHARACTER (len=34) :: clname = 'cfc1112.atm' ! ??? 24 26 25 27 INTEGER :: inum ! unit number … … 47 49 !!---------------------------------------------------------------------- 48 50 49 50 51 IF(lwp) WRITE(numout,*) 51 52 IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model' … … 56 57 ! --------------------------------------- 57 58 xphem (:,:) = 0.e0 58 DO jl = 1, jp_cfc 59 jn = jp_cfc0 + jl - 1 60 DO jm = 1, jphem 61 DO js = 1, jpyear 62 p_cfc(js,jm,jn) = 0.0 63 END DO 64 END DO 65 END DO 66 59 p_cfc(:,:,:) = 0.e0 67 60 68 61 ! Initialization of qint in case of no restart … … 74 67 WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero ' 75 68 ENDIF 69 qint_cfc(:,:,:) = 0.e0 76 70 DO jl = 1, jp_cfc 77 71 jn = jp_cfc0 + jl - 1 78 72 trn (:,:,:,jn) = 0.e0 79 qint_cfc(:,: ,jn) = 0.e080 73 END DO 81 74 ENDIF … … 89 82 IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 90 83 91 CALL ctl_opn( inum, 'cfc1112.atm', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )84 CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 92 85 REWIND(inum) 93 86 … … 147 140 148 141 END SUBROUTINE trc_ini_cfc 149 142 150 143 #else 151 144 !!---------------------------------------------------------------------- -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r2038 r2052 27 27 PUBLIC trc_sms_cfc ! called in ??? 28 28 29 INTEGER , PUBLIC, PARAMETER :: jpyear = 1 00 ! temporal parameter29 INTEGER , PUBLIC, PARAMETER :: jpyear = 150 ! temporal parameter 30 30 INTEGER , PUBLIC, PARAMETER :: jphem = 2 ! parameter for the 2 hemispheres 31 31 INTEGER , PUBLIC :: ndate_beg ! initial calendar date (aammjj) for CFC -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/par_lobster.F90
r2038 r2052 12 12 13 13 IMPLICIT NONE 14 PUBLIC15 14 16 15 #if defined key_lobster -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90
r2038 r2052 31 31 32 32 IMPLICIT NONE 33 PUBLIC34 33 35 INTEGER, P UBLIC, PARAMETER :: jp_lpc= jp_lobster + jp_pisces + jp_cfc + jp_c14b !:36 INTEGER, P UBLIC, PARAMETER :: jp_lpc_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_c14b_2d !:37 INTEGER, P UBLIC, PARAMETER :: jp_lpc_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_c14b_3d !:38 INTEGER, P UBLIC, PARAMETER :: jp_lpc_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !:34 INTEGER, PARAMETER :: jp_lm = jp_lobster + jp_pisces + jp_cfc + jp_c14b !: 35 INTEGER, PARAMETER :: jp_lm_2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_c14b_2d !: 36 INTEGER, PARAMETER :: jp_lm_3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_c14b_3d !: 37 INTEGER, PARAMETER :: jp_lm_trd = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !: 39 38 40 39 #if defined key_my_trc … … 44 43 LOGICAL, PUBLIC, PARAMETER :: lk_my_trc = .TRUE. !: PTS flag 45 44 INTEGER, PUBLIC, PARAMETER :: jp_my_trc = 2 !: number of PTS tracers 46 INTEGER, PUBLIC, PARAMETER :: jp_my_trc_2d = 0 !: additional 2d output arrays ('key_ diatrc')47 INTEGER, PUBLIC, PARAMETER :: jp_my_trc_3d = 0 !: additional 3d output arrays ('key_ diatrc')45 INTEGER, PUBLIC, PARAMETER :: jp_my_trc_2d = 0 !: additional 2d output arrays ('key_trc_diaadd') 46 INTEGER, PUBLIC, PARAMETER :: jp_my_trc_3d = 0 !: additional 3d output arrays ('key_trc_diaadd') 48 47 INTEGER, PUBLIC, PARAMETER :: jp_my_trc_trd = 0 !: number of sms trends for MY_TRC 49 48 50 49 ! assign an index in trc arrays for each PTS prognostic variables 51 INTEGER, PUBLIC, PARAMETER :: jpmyt1 = jp_l pc+ 1 !: 1st MY_TRC tracer52 INTEGER, PUBLIC, PARAMETER :: jpmyt2 = jp_l pc+ 2 !: 2nd MY_TRC tracer50 INTEGER, PUBLIC, PARAMETER :: jpmyt1 = jp_lm + 1 !: 1st MY_TRC tracer 51 INTEGER, PUBLIC, PARAMETER :: jpmyt2 = jp_lm + 2 !: 2nd MY_TRC tracer 53 52 54 53 #else … … 64 63 65 64 ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 66 INTEGER, PUBLIC, PARAMETER :: jp_myt0 = jp_l pc+ 1 !: First index of MY_TRC passive tracers67 INTEGER, PUBLIC, PARAMETER :: jp_myt1 = jp_l pc+ jp_my_trc !: Last index of MY_TRC passive tracers68 INTEGER, PUBLIC, PARAMETER :: jp_myt0_2d = jp_l pc_2d + 1 !: First index of MY_TRC passive tracers69 INTEGER, PUBLIC, PARAMETER :: jp_myt1_2d = jp_l pc_2d + jp_my_trc_2d !: Last index of MY_TRC passive tracers70 INTEGER, PUBLIC, PARAMETER :: jp_myt0_3d = jp_l pc_3d + 1 !: First index of MY_TRC passive tracers71 INTEGER, PUBLIC, PARAMETER :: jp_myt1_3d = jp_l pc_3d + jp_my_trc_3d !: Last index of MY_TRC passive tracers72 INTEGER, PUBLIC, PARAMETER :: jp_myt0_trd = jp_l pc_trd + 1 !: First index of MY_TRC passive tracers73 INTEGER, PUBLIC, PARAMETER :: jp_myt1_trd = jp_l pc_trd + jp_my_trc_trd !: Last index of MY_TRC passive tracers65 INTEGER, PUBLIC, PARAMETER :: jp_myt0 = jp_lm + 1 !: First index of MY_TRC passive tracers 66 INTEGER, PUBLIC, PARAMETER :: jp_myt1 = jp_lm + jp_my_trc !: Last index of MY_TRC passive tracers 67 INTEGER, PUBLIC, PARAMETER :: jp_myt0_2d = jp_lm_2d + 1 !: First index of MY_TRC passive tracers 68 INTEGER, PUBLIC, PARAMETER :: jp_myt1_2d = jp_lm_2d + jp_my_trc_2d !: Last index of MY_TRC passive tracers 69 INTEGER, PUBLIC, PARAMETER :: jp_myt0_3d = jp_lm_3d + 1 !: First index of MY_TRC passive tracers 70 INTEGER, PUBLIC, PARAMETER :: jp_myt1_3d = jp_lm_3d + jp_my_trc_3d !: Last index of MY_TRC passive tracers 71 INTEGER, PUBLIC, PARAMETER :: jp_myt0_trd = jp_lm_trd + 1 !: First index of MY_TRC passive tracers 72 INTEGER, PUBLIC, PARAMETER :: jp_myt1_trd = jp_lm_trd + jp_my_trc_trd !: Last index of MY_TRC passive tracers 74 73 75 74 !!====================================================================== -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/par_pisces.F90
r2038 r2052 18 18 PUBLIC 19 19 20 INTEGER, PUBLIC, PARAMETER :: jp_l = jp_lobster !: cumulative number of already defined TRC21 INTEGER, PUBLIC, PARAMETER :: jp_l _2d = jp_lobster_2d !:22 INTEGER, PUBLIC, PARAMETER :: jp_l _3d = jp_lobster_3d !:23 INTEGER, PUBLIC, PARAMETER :: jp_l _trd = jp_lobster_trd !:20 INTEGER, PUBLIC, PARAMETER :: jp_lp = jp_lobster !: cumulative number of already defined TRC 21 INTEGER, PUBLIC, PARAMETER :: jp_lp_2d = jp_lobster_2d !: 22 INTEGER, PUBLIC, PARAMETER :: jp_lp_3d = jp_lobster_3d !: 23 INTEGER, PUBLIC, PARAMETER :: jp_lp_trd = jp_lobster_trd !: 24 24 25 25 #if defined key_pisces && defined key_kriest … … 37 37 ! WARNING: be carefull about the order when reading the restart 38 38 ! !!gm this warning should be obsolet with IOM 39 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_l + 1 !: dissolved inoganic carbon concentration40 INTEGER, PUBLIC, PARAMETER :: jptal = jp_l + 2 !: total alkalinity41 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_l + 3 !: oxygen carbon concentration42 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_l + 4 !: calcite concentration43 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_l + 5 !: phosphate concentration44 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_l + 6 !: small particulate organic phosphate concentration45 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_l + 7 !: silicate concentration46 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_l + 8 !: phytoplancton concentration47 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_l + 9 !: zooplancton concentration48 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_l + 10 !: dissolved organic carbon concentration49 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_l + 11 !: Diatoms Concentration50 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_l + 12 !: Mesozooplankton Concentration51 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_l + 13 !: (big) Silicate Concentration52 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_l + 14 !: Iron Concentration53 INTEGER, PUBLIC, PARAMETER :: jpnum = jp_l + 15 !: Big iron particles Concentration54 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_l + 16 !: number of particulate organic phosphate concentration55 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_l + 17 !: Diatoms iron Concentration56 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_l + 18 !: Diatoms Silicate Concentration57 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_l + 19 !: Nano iron Concentration58 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_l + 20 !: Nano Chlorophyll Concentration59 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_l + 21 !: Diatoms Chlorophyll Concentration60 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_l + 22 !: Nitrates Concentration61 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_l + 23 !: Ammonium Concentration39 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_lp + 1 !: dissolved inoganic carbon concentration 40 INTEGER, PUBLIC, PARAMETER :: jptal = jp_lp + 2 !: total alkalinity 41 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_lp + 3 !: oxygen carbon concentration 42 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_lp + 4 !: calcite concentration 43 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_lp + 5 !: phosphate concentration 44 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_lp + 6 !: small particulate organic phosphate concentration 45 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_lp + 7 !: silicate concentration 46 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_lp + 8 !: phytoplancton concentration 47 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_lp + 9 !: zooplancton concentration 48 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_lp + 10 !: dissolved organic carbon concentration 49 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_lp + 11 !: Diatoms Concentration 50 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_lp + 12 !: Mesozooplankton Concentration 51 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_lp + 13 !: (big) Silicate Concentration 52 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_lp + 14 !: Iron Concentration 53 INTEGER, PUBLIC, PARAMETER :: jpnum = jp_lp + 15 !: Big iron particles Concentration 54 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_lp + 16 !: number of particulate organic phosphate concentration 55 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_lp + 17 !: Diatoms iron Concentration 56 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_lp + 18 !: Diatoms Silicate Concentration 57 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_lp + 19 !: Nano iron Concentration 58 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_lp + 20 !: Nano Chlorophyll Concentration 59 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_lp + 21 !: Diatoms Chlorophyll Concentration 60 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_lp + 22 !: Nitrates Concentration 61 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_lp + 23 !: Ammonium Concentration 62 62 63 63 #elif defined key_pisces … … 75 75 ! WARNING: be carefull about the order when reading the restart 76 76 ! !!gm this warning should be obsolet with IOM 77 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_l + 1 !: dissolved inoganic carbon concentration78 INTEGER, PUBLIC, PARAMETER :: jptal = jp_l + 2 !: total alkalinity79 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_l + 3 !: oxygen carbon concentration80 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_l + 4 !: calcite concentration81 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_l + 5 !: phosphate concentration82 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_l + 6 !: small particulate organic phosphate concentration83 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_l + 7 !: silicate concentration84 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_l + 8 !: phytoplancton concentration85 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_l + 9 !: zooplancton concentration86 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_l + 10 !: dissolved organic carbon concentration87 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_l + 11 !: Diatoms Concentration88 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_l + 12 !: Mesozooplankton Concentration89 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_l + 13 !: (big) Silicate Concentration90 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_l + 14 !: Iron Concentration91 INTEGER, PUBLIC, PARAMETER :: jpbfe = jp_l + 15 !: Big iron particles Concentration92 INTEGER, PUBLIC, PARAMETER :: jpgoc = jp_l + 16 !: big particulate organic phosphate concentration93 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_l + 17 !: Small iron particles Concentration94 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_l + 18 !: Diatoms iron Concentration95 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_l + 19 !: Diatoms Silicate Concentration96 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_l + 20 !: Nano iron Concentration97 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_l + 21 !: Nano Chlorophyll Concentration98 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_l + 22 !: Diatoms Chlorophyll Concentration99 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_l + 23 !: Nitrates Concentration100 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_l + 24 !: Ammonium Concentration77 INTEGER, PUBLIC, PARAMETER :: jpdic = jp_lp + 1 !: dissolved inoganic carbon concentration 78 INTEGER, PUBLIC, PARAMETER :: jptal = jp_lp + 2 !: total alkalinity 79 INTEGER, PUBLIC, PARAMETER :: jpoxy = jp_lp + 3 !: oxygen carbon concentration 80 INTEGER, PUBLIC, PARAMETER :: jpcal = jp_lp + 4 !: calcite concentration 81 INTEGER, PUBLIC, PARAMETER :: jppo4 = jp_lp + 5 !: phosphate concentration 82 INTEGER, PUBLIC, PARAMETER :: jppoc = jp_lp + 6 !: small particulate organic phosphate concentration 83 INTEGER, PUBLIC, PARAMETER :: jpsil = jp_lp + 7 !: silicate concentration 84 INTEGER, PUBLIC, PARAMETER :: jpphy = jp_lp + 8 !: phytoplancton concentration 85 INTEGER, PUBLIC, PARAMETER :: jpzoo = jp_lp + 9 !: zooplancton concentration 86 INTEGER, PUBLIC, PARAMETER :: jpdoc = jp_lp + 10 !: dissolved organic carbon concentration 87 INTEGER, PUBLIC, PARAMETER :: jpdia = jp_lp + 11 !: Diatoms Concentration 88 INTEGER, PUBLIC, PARAMETER :: jpmes = jp_lp + 12 !: Mesozooplankton Concentration 89 INTEGER, PUBLIC, PARAMETER :: jpbsi = jp_lp + 13 !: (big) Silicate Concentration 90 INTEGER, PUBLIC, PARAMETER :: jpfer = jp_lp + 14 !: Iron Concentration 91 INTEGER, PUBLIC, PARAMETER :: jpbfe = jp_lp + 15 !: Big iron particles Concentration 92 INTEGER, PUBLIC, PARAMETER :: jpgoc = jp_lp + 16 !: big particulate organic phosphate concentration 93 INTEGER, PUBLIC, PARAMETER :: jpsfe = jp_lp + 17 !: Small iron particles Concentration 94 INTEGER, PUBLIC, PARAMETER :: jpdfe = jp_lp + 18 !: Diatoms iron Concentration 95 INTEGER, PUBLIC, PARAMETER :: jpdsi = jp_lp + 19 !: Diatoms Silicate Concentration 96 INTEGER, PUBLIC, PARAMETER :: jpnfe = jp_lp + 20 !: Nano iron Concentration 97 INTEGER, PUBLIC, PARAMETER :: jpnch = jp_lp + 21 !: Nano Chlorophyll Concentration 98 INTEGER, PUBLIC, PARAMETER :: jpdch = jp_lp + 22 !: Diatoms Chlorophyll Concentration 99 INTEGER, PUBLIC, PARAMETER :: jpno3 = jp_lp + 23 !: Nitrates Concentration 100 INTEGER, PUBLIC, PARAMETER :: jpnh4 = jp_lp + 24 !: Ammonium Concentration 101 101 102 102 #else … … 113 113 114 114 ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 115 INTEGER, PUBLIC, PARAMETER :: jp_pcs0 = jp_l + 1 !: First index of PISCES tracers116 INTEGER, PUBLIC, PARAMETER :: jp_pcs1 = jp_l + jp_pisces !: Last index of PISCES tracers117 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_2d = jp_l _2d + 1 !: First index of 2D diag118 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_2d = jp_l _2d + jp_pisces_2d !: Last index of 2D diag119 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_3d = jp_l _3d + 1 !: First index of 3D diag120 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_3d = jp_l _3d + jp_pisces_3d !: Last index of 3d diag121 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_trd = jp_l _trd + 1 !: First index of bio diag122 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_trd = jp_l _trd + jp_pisces_trd !: Last index of bio diag115 INTEGER, PUBLIC, PARAMETER :: jp_pcs0 = jp_lp + 1 !: First index of PISCES tracers 116 INTEGER, PUBLIC, PARAMETER :: jp_pcs1 = jp_lp + jp_pisces !: Last index of PISCES tracers 117 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_2d = jp_lp_2d + 1 !: First index of 2D diag 118 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_2d = jp_lp_2d + jp_pisces_2d !: Last index of 2D diag 119 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_3d = jp_lp_3d + 1 !: First index of 3D diag 120 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_3d = jp_lp_3d + jp_pisces_3d !: Last index of 3d diag 121 INTEGER, PUBLIC, PARAMETER :: jp_pcs0_trd = jp_lp_trd + 1 !: First index of bio diag 122 INTEGER, PUBLIC, PARAMETER :: jp_pcs1_trd = jp_lp_trd + jp_pisces_trd !: Last index of bio diag 123 123 124 124 -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trcsbc.F90
r2030 r2052 66 66 INTEGER :: ji, jj, jn ! dummy loop indices 67 67 REAL(wp) :: ztra, zsrau, zse3t ! temporary scalars 68 REAL(wp), DIMENSION(jpi,jpj) :: zemps ! surface freshwater flux 68 69 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrtrd 69 70 CHARACTER (len=22) :: charout … … 76 77 ENDIF 77 78 79 78 80 IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 79 81 82 #if ! defined key_offline 83 ! Concentration dilution effect on tracer due to evaporation, precipitation, and river runoff 84 IF( lk_vvl ) THEN ; zemps(:,:) = emps(:,:) - emp(:,:) ! volume variable 85 ELSE ; zemps(:,:) = emps(:,:) - rnf(:,:) ! linear free surface 86 ENDIF 87 #else 88 ! emps in dynamical files contains emps - rnf 89 IF( lk_vvl ) THEN ; zemps(:,:) = 0. ! No concentration/dilution effect 90 ELSE ; zemps(:,:) = emps(:,:) ! emps -rnf 91 ENDIF 92 #endif 80 93 ! 0. initialization 81 94 zsrau = 1. / rau0 … … 85 98 86 99 DO jn = 1, jptra 87 ! 1. Concentration dillution effect on tra100 ! 88 101 IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn) ! save trends 89 102 90 103 DO jj = 2, jpj 91 104 DO ji = fs_2, fs_jpim1 ! vector opt. 92 #if ! defined key_zco 105 #if ! defined key_zco 93 106 zse3t = 1. / fse3t(ji,jj,1) 94 107 #endif 95 IF( lk_vvl ) THEN ; ztra = 0.e0 ! No concent./dilut. effect 96 ELSE ; ztra = emps(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t * tmask(ji,jj,1) 97 ENDIF 108 ! add the trend to the general tracer trend 109 ztra = zemps(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t 98 110 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + ztra 99 111 END DO … … 107 119 END DO ! tracer loop 108 120 ! ! =========== 121 IF( l_trdtrc ) DEALLOCATE( ztrtrd ) 109 122 110 IF( l_trdtrc ) DEALLOCATE( ztrtrd )111 123 IF( ln_ctl ) THEN 112 124 WRITE(charout, FMT="('sbc ')") ; CALL prt_ctl_trc_info(charout) -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trctrp.F90
r2030 r2052 62 62 IF( .NOT. lk_trc_c1d ) THEN 63 63 ! 64 65 66 67 68 64 CALL trc_sbc( kstp ) ! surface boundary condition 65 IF( lk_trabbl ) CALL trc_bbl( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme 66 IF( lk_trcdmp ) CALL trc_dmp( kstp ) ! internal damping trends 67 CALL trc_adv( kstp ) ! horizontal & vertical advection 68 CALL trc_ldf( kstp ) ! lateral mixing 69 69 #if ! defined key_offline 70 70 IF( lk_zdfkpp ) CALL trc_kpp( kstp ) ! KPP non-local tracer fluxes 71 71 #endif 72 72 #if defined key_agrif 73 73 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc ! tracers sponge 74 74 #endif 75 CALL trc_zdf( kstp ) ! vertical mixing and after tracer fields 76 CALL trc_nxt( kstp ) ! tracer fields at next time step 77 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 78 IF( ln_zps ) CALL zps_hde_trc( kstp, jptra, trb, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive 79 ! tracers at the bottom ocean level 80 ELSE 81 CALL trc_sbc( kstp ) ! surface boundary condition 75 CALL trc_zdf( kstp ) ! vertical mixing and after tracer fields 76 IF( ln_zps ) CALL zps_hde_trc( kstp, jptra, trn, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive 77 ! tracers at the bottom ocean level 78 CALL trc_nxt( kstp ) ! tracer fields at next time step 79 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 80 ! 81 ELSE ! 1D vertical configuration 82 CALL trc_sbc( kstp ) ! surface boundary condition 82 83 #if ! defined key_offline 83 IF( lk_zdfkpp ) 84 IF( lk_zdfkpp ) CALL trc_kpp( kstp ) ! KPP non-local tracer fluxes 84 85 #endif 85 86 87 IF( ln_trcrad ) 86 CALL trc_zdf( kstp ) ! vertical mixing and after tracer fields 87 CALL trc_nxt( kstp ) ! tracer fields at next time step 88 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 88 89 ! 89 90 END IF -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trczdf.F90
r2034 r2052 63 63 IF( kt == nittrc000 ) CALL zdf_ctl ! initialisation & control of options 64 64 65 #if ! defined key_pisces 65 66 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nit000 66 67 r2dt(:) = rdttra(:) * FLOAT(nn_dttrc) ! = rdtra (restarting with Euler time stepping) … … 68 69 r2dt(:) = 2. * rdttra(:) * FLOAT(nn_dttrc) ! = 2 rdttra (leapfrog) 69 70 ENDIF 71 #else 72 r2dt(:) = rdttra(:) * FLOAT(nn_dttrc) ! = rdtra (restarting with Euler time stepping) 73 #endif 70 74 71 75 IF( l_trdtrc ) THEN -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc.F90
r2030 r2052 382 382 DO ji = 1,jpi 383 383 ik = nmld_trc(ji,jj) 384 zavt = fs travs(ji,jj,ik)384 zavt = fsavs(ji,jj,ik) 385 385 DO jn = 1, jptra 386 386 IF( ln_trdtrc(jn) ) & -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc_rst.F90
r2030 r2052 9 9 #if defined key_top && defined key_trdmld_trc 10 10 !!---------------------------------------------------------------------- 11 USE oce_trc12 11 USE in_out_manager ! I/O manager 13 12 USE iom ! I/O module -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/oce_trc.F90
r2038 r2052 131 131 USE dom_oce , ONLY : vmask => vmask !: land/ocean mask at v-points 132 132 USE dom_oce , ONLY : fmask => fmask !: land/ocean mask at f-points 133 # if defined key_degrad134 USE dom_oce , ONLY : facvol => facvol !: volume factor for degradation135 # endif136 133 137 134 !* time domain * … … 182 179 USE oce , ONLY : gsv => gsv !: 183 180 USE oce , ONLY : grv => grv !: 181 # if defined key_degrad 182 USE dommsk , ONLY : facvol => facvol !: volume factor for degradation 183 # endif 184 184 185 #endif 185 186 USE lib_mpp , ONLY : lk_mpp => lk_mpp !: Mpp flag … … 192 193 USE sbc_oce , ONLY : wndm => wndm !: 10m wind speed 193 194 USE sbc_oce , ONLY : qsr => qsr !: penetrative solar radiation (w m-2) 194 USE sbc_oce , ONLY : emp => emp !: evaporation minus precipitation (kg m-2 s-2) 195 USE sbc_oce , ONLY : emps => emps !: evaporation minus precipitation (kg m-2 s-2) 195 USE sbc_oce , ONLY : emp => emp !: freshwater budget: volume flux [Kg/m2/s] 196 USE sbc_oce , ONLY : emps => emps !: freshwater budget: concentration/dillution [Kg/m2/s] 197 USE sbc_oce , ONLY : rnf => rnf !: river runoff [Kg/m2/s] 196 198 USE sbc_oce , ONLY : fr_i => fr_i !: ice fraction (between 0 to 1) 197 199 USE traqsr , ONLY : rn_abs => rn_abs !: fraction absorbed in the very near surface … … 219 221 USE zdf_oce , ONLY : avt => avt !: vert. diffusivity coef. at w-point for temp 220 222 # if defined key_zdfddm 221 USE zdfddm , ONLY : avs => 223 USE zdfddm , ONLY : avs => avs !: salinity vertical diffusivity coeff. at w-point 222 224 # endif 223 225 -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/par_trc.F90
r2038 r2052 23 23 24 24 IMPLICIT NONE 25 PUBLIC26 25 27 26 ! Passive tracers : Total size 28 27 ! --------------- ! total number of passive tracers, of 2d and 3d output and trend arrays 29 INTEGER, PUBLIC, PARAMETER :: jptra = jp_lobster + jp_pisces + jp_cfc+ jp_my_trc30 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d+ jp_my_trc_2d31 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d+ jp_my_trc_3d28 INTEGER, PUBLIC, PARAMETER :: jptra = jp_lobster + jp_pisces + jp_cfc + jp_c14b + jp_my_trc 29 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_my_trc_2d 30 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_my_trc_3d 32 31 ! ! total number of sms diagnostic arrays 33 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd32 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd 34 33 35 34 ! 1D configuration ("key_c1d") -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/top_substitute.h90
r1146 r2052 12 12 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 13 13 !!---------------------------------------------------------------------- 14 15 ! Lateral eddy diffusivity coefficient for passive tracer:16 ! ========================================================17 #if defined key_traldf_c3d || defined key_off_degrad18 ! 'key_traldf_c3d' : aht: 3D coefficient19 # define fsahtrt(i,j,k) trcrat * ahtt(i,j,k)20 # define fsahtru(i,j,k) trcrat * ahtu(i,j,k)21 # define fsahtrv(i,j,k) trcrat * ahtv(i,j,k)22 # define fsahtrw(i,j,k) trcrat * ahtw(i,j,k)23 #elif defined key_traldf_c2d24 ! 'key_traldf_c2d' : aht: 2D coefficient25 # define fsahtrt(i,j,k) trcrat * ahtt(i,j)26 # define fsahtru(i,j,k) trcrat * ahtu(i,j)27 # define fsahtrv(i,j,k) trcrat * ahtv(i,j)28 # define fsahtrw(i,j,k) trcrat * ahtw(i,j)29 #elif defined key_traldf_c1d30 ! 'key_traldf_c1d' : aht: 1D coefficient31 # define fsahtrt(i,j,k) trcrat * ahtt(k)32 # define fsahtru(i,j,k) trcrat * ahtu(k)33 # define fsahtrv(i,j,k) trcrat * ahtv(k)34 # define fsahtrw(i,j,k) trcrat * ahtw(k)35 #else36 ! Default option : aht: Constant coefficient37 # define fsahtrt(i,j,k) ahtrc038 # define fsahtru(i,j,k) ahtrc039 # define fsahtrv(i,j,k) ahtrc040 # define fsahtrw(i,j,k) ahtrc041 #endif42 43 ! Eddy induced velocity coefficient for passive tracer:44 ! ========================================================45 #if defined key_traldf_c3d || defined key_off_degrad46 ! 'key_traldf_c3d' : eiv: 3D coefficient47 # define fsaeitru(i,j,k) trcrat * aeiu(i,j,k)48 # define fsaeitrv(i,j,k) trcrat * aeiv(i,j,k)49 # define fsaeitrw(i,j,k) trcrat * aeiw(i,j,k)50 #elif defined key_traldf_c2d51 ! 'key_traldf_c2d' : eiv: 2D coefficient52 # define fsaeitru(i,j,k) trcrat * aeiu(i,j)53 # define fsaeitrv(i,j,k) trcrat * aeiv(i,j)54 # define fsaeitrw(i,j,k) trcrat * aeiw(i,j)55 #elif defined key_traldf_c1d56 ! 'key_traldf_c1d' : eiv: 1D coefficient57 # define fsaeitru(i,j,k) trcrat * aeiu(k)58 # define fsaeitrv(i,j,k) trcrat * aeiv(k)59 # define fsaeitrw(i,j,k) trcrat * aeiw(k)60 #else61 ! Default option : eiv: Constant coefficient62 # define fsaeitru(i,j,k) aeiv063 # define fsaeitrv(i,j,k) aeiv064 # define fsaeitrw(i,j,k) aeiv065 #endif66 ! mixing for passive tracer:67 ! ========================================================68 #if defined key_trc_zdfddm69 ! 'key_trc_zdfddm' : avs70 # define fstravs(i,j,k) avs(i,j,k)71 #else72 ! Defautl option : avs = avt73 # define fstravs(i,j,k) avt(i,j,k)74 #endif75 76 14 ! ======================================================== 77 15 #include "domzgr_substitute.h90" -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trc.F90
r2038 r2052 45 45 REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) :: tra !: traceur concentration for next time step 46 46 REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) :: trb !: traceur concentration for before time step 47 48 !! isopycnal scheme for passive tracers49 !! ------------------------------------50 REAL(wp), PUBLIC :: ahtrb0 !: background diffusivity coefficient for passive tracer (m2/s)51 47 52 48 #if ! defined key_zco
Note: See TracChangeset
for help on using the changeset viewer.