| 99 | Alternatively to allow for switching between models at run-time without the need for recompilation, the follwoing approach can be taken: |
| 100 | |
| 101 | {{{ |
| 102 | |
| 103 | par_trc.F90: |
| 104 | |
| 105 | IMPLICIT NONE |
| 106 | PUBLIC |
| 107 | |
| 108 | ! Passive tracers : Total size |
| 109 | ! --------------- ! total number of passive tracers, of |
| 110 | 2d and 3d output and trend arrays |
| 111 | !=============================================== |
| 112 | ! Modification to NEMO trunk for ERSEM coupling |
| 113 | ! M.Butenschoen, PML - March 2009 |
| 114 | ! \/ |
| 115 | ! \/ |
| 116 | # if defined key_PMLersem |
| 117 | INTEGER, PUBLIC, PARAMETER :: jp_pmlersem = 56 |
| 118 | INTEGER, PUBLIC, PARAMETER :: jptra = jp_pmlersem + |
| 119 | jp_lobster + jp_pisces + jp_cfc + jp_c14b + jp_my_trc |
| 120 | INTEGER, PUBLIC, PARAMETER :: jp_pmlersem0=1, jp_pmlersem1=jp_pmlersem |
| 121 | # else |
| 122 | ! /\ |
| 123 | ! /\ |
| 124 | !=============================================== |
| 125 | INTEGER, PUBLIC, PARAMETER :: jptra = jp_lobster + |
| 126 | jp_pisces + jp_cfc + jp_c14b + jp_my_trc |
| 127 | !=============================================== |
| 128 | ! Modification to NEMO trunk for ERSEM coupling |
| 129 | ! M.Butenschoen, PML - March 2009 |
| 130 | ! \/ |
| 131 | ! \/ |
| 132 | # endif |
| 133 | ! /\ |
| 134 | ! /\ |
| 135 | !=============================================== |
| 136 | INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_lobster_2d + |
| 137 | jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_my_trc_2d |
| 138 | |
| 139 | trcini.F90: |
| 140 | |
| 141 | ENDIF |
| 142 | |
| 143 | !=============================================== |
| 144 | ! Modification to NEMO trunk for ERSEM coupling |
| 145 | ! M.Butenschoen, PML - March 2009 |
| 146 | ! \/ |
| 147 | ! \/ |
| 148 | # if defined key_PMLersem |
| 149 | CALL trc_ini_PMLersem ! MY_TRC tracers |
| 150 | # else |
| 151 | WRITE(numout,*) ' ERSEM not used' |
| 152 | # endif |
| 153 | ! /\ |
| 154 | ! /\ |
| 155 | !=============================================== |
| 156 | |
| 157 | IF( lk_my_trc ) THEN ; CALL trc_ini_my_trc ! MY_TRC tracer |
| 158 | |
| 159 | trc_oce.F90: |
| 160 | |
| 161 | #if defined key_top && defined key_pisces |
| 162 | !!---------------------------------------------------------------------- |
| 163 | !! 'key_top' & 'key_pisces' PISCES |
| 164 | bio-model |
| 165 | !!---------------------------------------------------------------------- |
| 166 | LOGICAL, PUBLIC, PARAMETER :: lk_qsr_bio = .TRUE. !: bio-model |
| 167 | light absorption flag |
| 168 | !=============================================== |
| 169 | ! Modification to NEMO trunk for ERSEM coupling |
| 170 | ! M.Butenschoen, PML - March 2008 |
| 171 | ! \/ |
| 172 | ! \/ |
| 173 | #elif defined key_top && defined key_PMLersem |
| 174 | !! light for NEMO-ERSEM |
| 175 | LOGICAL, PUBLIC, PARAMETER :: lk_qsr_bio = .TRUE. |
| 176 | ! /\ |
| 177 | ! /\ |
| 178 | !=============================================== |
| 179 | #else |
| 180 | !!---------------------------------------------------------------------- |
| 181 | !! Default option No bio-model light absorption |
| 182 | |
| 183 | trcrad.F90: |
| 184 | |
| 185 | IF( lk_my_trc ) CALL trc_rad_sms( kt, trb, trn, jp_myt0 , |
| 186 | jp_myt1 ) ! MY_TRC model |
| 187 | !=============================================== |
| 188 | ! Modification to NEMO trunk for ERSEM coupling |
| 189 | ! M.Butenschoen, PML - March 2009 |
| 190 | ! \/ |
| 191 | ! \/ |
| 192 | # if defined key_PMLersem |
| 193 | write(6,*) jp_pmlersem0,jp_pmlersem1 |
| 194 | CALL trc_rad_sms( kt, trb, trn, jp_pmlersem0 , jp_pmlersem1) |
| 195 | # endif |
| 196 | ! /\ |
| 197 | ! /\ |
| 198 | !=============================================== |
| 199 | |
| 200 | |
| 201 | trcsms.F90: |
| 202 | |
| 203 | IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers |
| 204 | |
| 205 | !=============================================== |
| 206 | ! Modification to NEMO trunk for ERSEM coupling |
| 207 | ! M.Butenschoen, PML - March 2009 |
| 208 | ! \/ |
| 209 | ! \/ |
| 210 | # if defined key_PMLersem |
| 211 | CALL trc_PMLersem ( kt ) |
| 212 | # endif |
| 213 | ! /\ |
| 214 | ! /\ |
| 215 | !=============================================== |
| 216 | |
| 217 | trcstp.F90: |
| 218 | |
| 219 | CALL trc_sms( kt ) ! tracers: |
| 220 | sink and source |
| 221 | !=============================================== |
| 222 | ! Modification to NEMO trunk for ERSEM coupling |
| 223 | ! M.Butenschoen, PML - March 2009 |
| 224 | ! \/ |
| 225 | ! \/ |
| 226 | #if defined key_PMLersem |
| 227 | CALL trc_trp_PMLersem( kt ) |
| 228 | #else |
| 229 | ! /\ |
| 230 | ! /\ |
| 231 | !=============================================== |
| 232 | CALL trc_trp( kt ) ! transport of |
| 233 | passive tracers |
| 234 | !=============================================== |
| 235 | ! Modification to NEMO trunk for ERSEM coupling |
| 236 | ! M.Butenschoen, PML - March 2009 |
| 237 | ! \/ |
| 238 | ! \/ |
| 239 | #endif |
| 240 | ! /\ |
| 241 | ! /\ |
| 242 | !=============================================== |
| 243 | IF( kt == nittrc000 ) CALL iom_close( numrtr ) ! close input |
| 244 | passive tracers restart file |
| 245 | IF( lrst_trc ) CALL trc_rst_wri( kt ) ! write tracer |
| 246 | restart file |
| 247 | !=============================================== |
| 248 | ! Modification to NEMO trunk for ERSEM coupling |
| 249 | ! M.Butenschoen, PML - March 2009 |
| 250 | ! \/ |
| 251 | ! \/ |
| 252 | # if defined key_PMLersem |
| 253 | CALL trc_dia_PMLersem( kt ) ! diagnostics |
| 254 | # else |
| 255 | ! /\ |
| 256 | ! /\ |
| 257 | !=============================================== |
| 258 | IF( lk_iomput ) THEN |
| 259 | CALL trc_wri( kt ) ! output of |
| 260 | passive tracers |
| 261 | ELSE |
| 262 | CALL trc_dia( kt ) ! diagnostics |
| 263 | ENDIF |
| 264 | !=============================================== |
| 265 | ! Modification to NEMO trunk for ERSEM coupling |
| 266 | ! M.Butenschoen, PML - March 2009 |
| 267 | ! \/ |
| 268 | ! \/ |
| 269 | # endif |
| 270 | ! /\ |
| 271 | ! /\ |
| 272 | !=============================================== |
| 273 | IF( lk_trdmld_trc ) CALL trd_mld_trc( kt ) ! trends: |
| 274 | Mixed-layer |
| 275 | |
| 276 | }}} |
| 277 | |