Changeset 7068
- Timestamp:
- 2016-10-21T17:38:13+02:00 (8 years ago)
- Location:
- branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM
- Files:
-
- 2 deleted
- 67 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_pisces_cfg
r4147 r7068 1 1 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2 !! GYRE_PISCES: Configuration namelist used to overwrite SHARED/namelist_pisces_ref 2 !! PISCES (key_pisces) reference namelist (see below for key_pisces_reduced) 3 !! 1 - air-sea exchange (nampisext) 4 !! 2 - biological parameters (nampisbio) 5 !! 3 - parameters for nutrient limitations (nampislim) 6 !! 4 - parameters for phytoplankton (nampisprod,nampismort) 7 !! 5 - parameters for zooplankton (nampismes,nampiszoo) 8 !! 6 - parameters for remineralization (nampisrem) 9 !! 7 - parameters for calcite chemistry (nampiscal) 10 !! 8 - parameters for inputs deposition (nampissed) 11 !! 11 - Damping (nampisdmp) 12 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 13 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 14 &nampismod ! Model used 15 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 16 ln_p4z = .false. 17 ln_p2z = .true. 18 / 19 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 20 &nampisext ! air-sea exchange 21 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 22 / 23 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 24 &nampisatm ! Atmospheric prrssure 25 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 26 / 27 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 28 &nampisbio ! biological parameters 29 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 30 / 31 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 32 &nampislim ! parameters for nutrient limitations 33 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 34 / 35 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 36 &nampisopt ! parameters for optics 37 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 38 / 39 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 40 &nampisprod ! parameters for phytoplankton growth 41 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 42 / 43 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44 &nampismort ! parameters for phytoplankton sinks 45 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 46 / 47 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 48 &nampismes ! parameters for mesozooplankton 49 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 50 / 51 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 52 &nampiszoo ! parameters for microzooplankton 53 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 54 / 55 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 56 &nampisfer ! parameters for iron chemistry 57 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 58 / 59 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 60 &nampisrem ! parameters for remineralization 61 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 62 / 63 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 64 &nampiscal ! parameters for Calcite chemistry 65 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 66 / 67 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 68 &nampissbc ! parameters for inputs deposition 69 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 70 / 71 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 72 &nampisice ! Prescribed sea ice tracers 73 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 74 / 75 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 76 &nampisdmp ! Damping 77 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 78 / 79 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 80 &nampismass ! Mass conservation 81 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 82 / 83 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 84 !! PISCES reduced (key_pisces_reduced, ex LOBSTER) : namelists 85 !! 1 - biological parameters for phytoplankton (namlobphy) 86 !! 2 - biological parameters for nutrients (namlobnut) 87 !! 3 - biological parameters for zooplankton (namlobzoo) 88 !! 4 - biological parameters for detritus (namlobdet) 89 !! 5 - biological parameters for DOM (namlobdom) 90 !! 6 - parameters from aphotic layers to sediment (namlobsed) 91 !! 7 - general coefficients (namlobrat) 92 !! 8 - optical parameters (namlobopt) 93 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 3 94 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4 95 &namlobphy ! biological parameters for phytoplankton … … 15 106 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 16 107 &namlobdet ! biological parameters for detritus 17 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 108 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 18 109 / 19 110 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_top_cfg
r5836 r7068 1 1 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2 !! NEMO-TOP Configuration namelist for GYRE_PISCES configuration used to overwrite SHARED/namelist_top_ref 2 !! NEMO/TOP1 : Configuration namelist : used to overwrite defaults values defined in SHARED/namelist_top_ref 3 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 3 4 !----------------------------------------------------------------------- 4 5 &namtrc_run ! run information 5 6 !----------------------------------------------------------------------- 6 nn_writetrc = 60 ! time step frequency for sn_tracer outputs7 7 / 8 8 !----------------------------------------------------------------------- 9 9 &namtrc ! tracers definition 10 10 !----------------------------------------------------------------------- 11 ln_trcdta = .false. ! Initialisation from data input file (T) or not (F)11 jptra = 6 12 12 ! 13 ! ! name ! title of the field ! units ! initial data ! save ! 14 ! ! ! ! ! from file ! or not ! 15 ! ! ! ! ! or not ! ! 16 sn_tracer(1) = 'DET' , 'Detritus ', 'mmole-N/m3' , .false. , .false. 17 sn_tracer(2) = 'ZOO' , 'Zooplankton concentration ', 'mmole-N/m3' , .false. , .false. 18 sn_tracer(3) = 'PHY' , 'Phytoplankton concentration', 'mmole-N/m3' , .false. , .false. 19 sn_tracer(4) = 'NO3' , 'Nitrate concentration ', 'mmole-N/m3' , .false. , .true. 20 sn_tracer(5) = 'NH4' , 'Ammonium concentration ', 'mmole-N/m3' , .false. , .false. 21 sn_tracer(6) = 'DOM' , 'Dissolved organic matter ', 'mmole-N/m3' , .false. , .false. 13 ln_pisces = .true. 14 ln_age = .false. 15 ln_cfc11 = .false. 16 ln_cfc12 = .false. 17 ln_c14 = .false. 18 ln_my_trc = .false. 19 ! 20 ! ! ! ! ! 21 ! ! name ! title of the field ! units ! initial data from file or not ! 22 ! ! ! ! ! 23 sn_tracer(1) = 'DET' , 'Detritus ', 'mmole-N/m3' , .false. 24 sn_tracer(2) = 'ZOO' , 'Zooplankton concentration ', 'mmole-N/m3' , .false. 25 sn_tracer(3) = 'PHY' , 'Phytoplankton concentration', 'mmole-N/m3' , .false. 26 sn_tracer(4) = 'NO3' , 'Nitrate concentration ', 'mmole-N/m3' , .false. 27 sn_tracer(5) = 'NH4' , 'Ammonium concentration ', 'mmole-N/m3' , .false. 28 sn_tracer(6) = 'DOM' , 'Dissolved organic matter ', 'mmole-N/m3' , .false. 22 29 / 23 30 !----------------------------------------------------------------------- 24 &namtrc_adv ! advection scheme for passive tracer 25 !----------------------------------------------------------------------- 31 &namtrc_dta ! Initialisation from data input file 32 !----------------------------------------------------------------------- 33 / 26 34 ln_trcadv_fct = .true. ! FCT scheme 27 nn_fct_h = 2 ! =2/4, horizontal 2nd / 4th order 28 nn_fct_v = 2 ! =2/4, vertical 2nd / COMPACT 4th order 35 nn_fct_h = 2 ! =2/4, horizontal 2nd / 4th order 36 nn_fct_v = 2 ! =2/4, vertical 2nd / COMPACT 4th order 29 37 nn_fct_zts = 0 ! >=1, 2nd order FCT scheme with vertical sub-timestepping 30 38 ! ! (number of sub-timestep = nn_fct_zts) 31 39 / 32 40 !----------------------------------------------------------------------- 33 &namtrc_ldf ! lateral diffusion scheme for passive tracer 41 &namtrc_ldf ! lateral diffusion scheme for passive tracer 34 42 !----------------------------------------------------------------------- 35 43 rn_ahtrc_0 = 1000. ! horizontal eddy diffusivity for tracers [m2/s] … … 40 48 / 41 49 !----------------------------------------------------------------------- 42 &namtrc_rad ! treatment of negative concentrations 50 &namtrc_rad ! treatment of negative concentrations 43 51 !----------------------------------------------------------------------- 44 52 ln_trcrad = .false. ! artificially correct negative concentrations (T) or not (F) 45 53 / 46 54 !----------------------------------------------------------------------- 47 &namtrc_dia ! parameters for passive tracer additional diagnostics 55 &namtrc_dmp ! passive tracer newtonian damping 56 !----------------------------------------------------------------------- 57 / 58 !----------------------------------------------------------------------- 59 &namtrc_ice ! Representation of sea ice growth & melt effects 60 !----------------------------------------------------------------------- 61 / 62 !----------------------------------------------------------------------- 63 &namtrc_trd ! diagnostics on tracer trends ('key_trdtrc') 64 ! or mixed-layer trends ('key_trdmld_trc') 48 65 !---------------------------------------------------------------------- 49 nn_writedia = 60 ! time step frequency for diagnostics50 66 / 51 67 !---------------------------------------------------------------------- 52 &namtrc_bc 68 &namtrc_bc ! data for boundary conditions 53 69 !----------------------------------------------------------------------- 54 70 / 71 !---------------------------------------------------------------------- 72 &namtrc_bdy ! Setup of tracer boundary conditions 73 !----------------------------------------------------------------------- 74 / -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/GYRE_PISCES/cpp_GYRE_PISCES.fcm
r5930 r7068 1 bld::tool::fppkeys key_zdftke key_top key_ pisces_reduced key_mpp_mpi1 bld::tool::fppkeys key_zdftke key_top key_mpp_mpi -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/iodef.xml
r7041 r7068 35 35 <file_group id="6h" output_freq="6h" output_level="10" enabled=".TRUE."/> <!-- 6h files --> 36 36 37 <file_group id="1d" output_freq="1d" output_level="10" enabled=".TRUE."> <!-- 1d files --> 37 <file_group id="1d" output_freq="1d" output_level="10" enabled=".TRUE."/> <!-- 1d files --> 38 39 <file_group id="3d" output_freq="3d" output_level="10" enabled=".TRUE."/> <!-- 3d files --> 40 41 <file_group id="5d" output_freq="5d" output_level="10" enabled=".TRUE."> <!-- 5d files --> 42 38 43 <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 44 <field field_ref="e3t" /> 45 <field field_ref="toce" name="thetao" operation="instant" freq_op="5d" > @toce_e3t / @e3t </field> 46 <field field_ref="soce" name="so" operation="instant" freq_op="5d" > @soce_e3t / @e3t </field> 39 47 <field field_ref="sst" name="tos" /> 40 48 <field field_ref="sss" name="sos" /> 41 49 <field field_ref="ssh" name="zos" /> 42 </file> 43 44 <file id="file2" name_suffix="_ptrc_T" description="passive tracers variables" > 50 <field field_ref="sst" name="tosstd" long_name="sea surface temperature standard deviation" operation="instant" freq_op="5d" > sqrt( @sst2 - @sst * @sst ) </field> 51 <field field_ref="ssh" name="zosstd" long_name="sea surface height above geoid standard deviation" operation="instant" freq_op="5d" > sqrt( @ssh2 - @ssh * @ssh ) </field> 52 <field field_ref="sst" name="sstdcy" long_name="amplitude of sst diurnal cycle" operation="average" freq_op="1d" > @sstmax - @sstmin </field> 53 <field field_ref="mldkz5" /> 54 <field field_ref="mldr10_1" /> 55 <field field_ref="mldr10_1" name="mldr10_1dcy" long_name="amplitude of mldr10_1 diurnal cycle" operation="average" freq_op="1d" > @mldr10_1max - @mldr10_1min </field> 56 <field field_ref="sbt" /> 57 <field field_ref="heatc" name="heatc" /> 58 <field field_ref="saltc" name="saltc" /> 59 </file> 60 61 <file id="file2" name_suffix="_SBC" description="surface fluxes variables" > <!-- time step automaticaly defined based on nn_fsbc --> 62 <field field_ref="empmr" name="wfo" /> 63 <field field_ref="qsr_oce" name="qsr_oce" /> 64 <field field_ref="qns_oce" name="qns_oce" /> 65 <field field_ref="qt_oce" name="qt_oce" /> 66 <field field_ref="qsr_ice" name="qsr_ice" /> 67 <field field_ref="qns_ice" name="qns_ice" /> 68 <field field_ref="qtr_ice" name="qtr_ice" /> 69 <field field_ref="qt_ice" name="qt_ice" /> 70 <field field_ref="saltflx" name="sfx" /> 71 <field field_ref="taum" name="taum" /> 72 <field field_ref="wspd" name="windsp" /> 73 <field field_ref="precip" name="precip" /> 74 <!-- ice and snow --> 75 <field field_ref="snowpre" /> 76 <field field_ref="utau_ice" name="utau_ice" /> 77 <field field_ref="vtau_ice" name="vtau_ice" /> 78 </file> 79 80 <file id="file3" name_suffix="_grid_U" description="ocean U grid variables" > 81 <field field_ref="e3u" /> 82 <field field_ref="ssu" name="uos" /> 83 <field field_ref="uoce" name="uo" operation="instant" freq_op="5d" > @uoce_e3u / @e3u </field> 84 <field field_ref="utau" name="tauuo" /> 85 <!-- available with key_diaar5 --> 86 <field field_ref="u_masstr" name="vozomatr" /> 87 <field field_ref="u_heattr" name="sozohetr" /> 88 <field field_ref="u_salttr" name="sozosatr" /> 89 </file> 90 91 <file id="file4" name_suffix="_grid_V" description="ocean V grid variables" > 92 <field field_ref="e3v" /> 93 <field field_ref="ssv" name="vos" /> 94 <field field_ref="voce" name="vo" operation="instant" freq_op="5d" > @voce_e3v / @e3v </field> 95 <field field_ref="vtau" name="tauvo" /> 96 <!-- available with key_diaar5 --> 97 <field field_ref="v_masstr" name="vomematr" /> 98 <field field_ref="v_heattr" name="somehetr" /> 99 <field field_ref="v_salttr" name="somesatr" /> 100 </file> 101 102 <file id="file5" name_suffix="_grid_W" description="ocean W grid variables" > 103 <field field_ref="e3w" /> 104 <field field_ref="woce" name="wo" /> 105 <field field_ref="avt" name="difvho" /> 106 <field field_ref="w_masstr" name="vovematr" /> 107 </file> 108 109 <file id="file6" name_suffix="_icemod" description="ice variables" enabled=".true." > 110 <field field_ref="snowthic_cea" name="snthic" /> 111 <field field_ref="icethic_cea" name="sithic" /> 112 <field field_ref="icevolu" name="sivolu" /> 113 <field field_ref="snowvol" name="snvolu" /> 114 <field field_ref="iceconc" name="siconc" /> 115 116 <field field_ref="isst" name="sst" /> 117 <field field_ref="isss" name="sss" /> 118 <field field_ref="micesalt" name="sisali" /> 119 <field field_ref="micet" name="sitemp" /> 120 <field field_ref="icest" name="sistem" /> 121 <field field_ref="icehc" name="siheco" /> 122 <field field_ref="isnowhc" name="snheco" /> 123 <field field_ref="miceage" name="siages" /> 124 125 <field field_ref="uice_ipa" name="sivelu" /> 126 <field field_ref="vice_ipa" name="sivelv" /> 127 <field field_ref="icevel" name="sivelo" /> 128 <field field_ref="idive" name="sidive" /> 129 <field field_ref="ishear" name="sishea" /> 130 <field field_ref="icestr" name="sistre" /> 131 132 <field field_ref="ibrinv" name="sibrin" /> 133 <field field_ref="icecolf" name="sicolf" /> 134 135 <field field_ref="iceage_cat" name="siagecat" /> 136 <field field_ref="iceconc_cat" name="siconcat" /> 137 <field field_ref="icethic_cat" name="sithicat" /> 138 <field field_ref="snowthic_cat" name="snthicat" /> 139 <field field_ref="salinity_cat" name="salincat" /> 140 <field field_ref="brinevol_cat" name="sibricat" /> 141 <field field_ref="icetemp_cat" name="sitemcat" /> 142 <field field_ref="snwtemp_cat" name="sntemcat" /> 143 144 </file> 145 146 <file id="file9" name_suffix="_ptrc_T" description="passive tracers variables" > 45 147 <field field_ref="Age" operation="average" freq_op="1d" > @Age_e3t / @e3t </field> 46 148 <field field_ref="CFC11" operation="average" freq_op="1d" > @CFC11_e3t / @e3t </field> 47 149 <field field_ref="RC14" operation="average" freq_op="1d" > @RC14_e3t / @e3t </field> 48 150 </file> 49 </file_group> 50 51 <file_group id="3d" output_freq="3d" output_level="10" enabled=".TRUE."/> <!-- 3d files --> 52 53 <file_group id="5d" output_freq="5d" output_level="10" enabled=".TRUE."> <!-- 5d files --> 151 54 152 </file_group> 55 153 -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_cfg
r7041 r7068 10 10 / 11 11 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 12 &namcfc date! CFC12 &namcfc ! CFC 13 13 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 14 14 / … … 25 25 ! 26 26 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 27 &namc14_dia ! additional diagnostics28 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,29 ln_c14dia=.true. ! !30 c14dia3d(1) = 'DeltaC14' ! Delta C14 (permil)31 c14dia3d(2) = 'C14Age' ! Radioage (yr)32 c14dia2d(1) = 'qtr_c14' ! Air-sea flux (1/m2/s)33 c14dia2d(2) = 'qint_c14' ! Cumulative air-sea flux (1/m2)34 c14dia2d(3) = 'RAge' ! Reservoir Age (yr)35 c14dia0d(1) = 'AtmCO2' ! Global atmospheric CO2 (ppm)36 c14dia0d(2) = 'AtmC14' ! Global atmospheric Delta-C14 (permil)37 c14dia0d(3) = 'K_C14' ! Global 14C/C exchange velocity (m/yr)38 c14dia0d(4) = 'K_CO2' ! Global CO2 piston velocity (cm/h)39 c14dia0d(5) = 'C14Inv' ! Radiocarbon ocean inventory (10^26 atoms)40 /41 !42 !'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''43 27 &namc14_fcg ! files & dates 44 28 ! ! For Paleo-historical: specify tyrc14_beg in yr BP 45 29 ! ! For Bomb: tyrc14_beg=0 46 30 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 47 cfileco2 = 'splco2.dat' ! atmospheric co2 - Bomb48 cfilec14 = 'atmc14.dat' ! atmospheric c14 - Bomb49 tyrc14_beg = 0.00 ! starting year of experiment - Bomb50 ! cfileco2 = 'ByrdEdcCO2.txt' ! atmospheric co2 - Paleo51 ! cfilec14 = 'intcal13.14c' ! atmospheric c14 - Paleo52 ! tyrc14_beg = 35000.00 ! starting year of experiment - Paleo (yr BP)53 31 / 54 32 ! -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/cpp_ORCA2_LIM3_TRC.fcm
r7041 r7068 1 bld::tool::fppkeys key_trabbl key_lim3 key_zdftke key_zdfddm key_zdftmx key_top key_iomput key_mpp_mpi key_nosignedzero1 bld::tool::fppkeys key_trabbl key_lim3 key_zdftke key_zdfddm key_zdftmx key_top key_iomput key_mpp_mpi -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_top_cfg
r7050 r7068 5 5 &namtrc_run ! run information 6 6 !----------------------------------------------------------------------- 7 jptra = 24 ! Total number of tracers8 7 ln_top_euler = .true. 9 8 / … … 11 10 &namtrc ! tracers definition 12 11 !----------------------------------------------------------------------- 12 jptra = 24 13 ! 14 ln_pisces = .true. 13 15 ln_age = .false. 14 16 ln_cfc11 = .false. 15 17 ln_cfc12 = .false. 16 18 ln_c14 = .false. 19 ln_my_trc = .false. 20 ! 17 21 ln_trcdta = .true. ! Initialisation from data input file (T) or not (F) 18 22 ! ! ! ! ! … … 85 89 / 86 90 !----------------------------------------------------------------------- 87 &namtrc_dia ! parameters for passive tracer additional diagnostics 91 &namtrc_dmp ! passive tracer newtonian damping 92 !----------------------------------------------------------------------- 93 / 94 !----------------------------------------------------------------------- 95 &namtrc_ice ! Representation of sea ice growth & melt effects 96 !----------------------------------------------------------------------- 97 / 98 !----------------------------------------------------------------------- 99 &namtrc_trd ! diagnostics on tracer trends ('key_trdtrc') 100 ! or mixed-layer trends ('key_trdmld_trc') 88 101 !---------------------------------------------------------------------- 89 102 / 90 103 !---------------------------------------------------------------------- 91 &namtrc_bc 104 &namtrc_bc ! data for boundary conditions 92 105 !----------------------------------------------------------------------- 93 106 / 107 !---------------------------------------------------------------------- 108 &namtrc_bdy ! Setup of tracer boundary conditions 109 !----------------------------------------------------------------------- -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/cpp_ORCA2_LIM_PISCES.fcm
r5930 r7068 1 bld::tool::fppkeys key_trabbl key_lim2 key_zdftke key_zdfddm key_zdftmx key_top key_ pisces key_mpp_mpi key_iomput1 bld::tool::fppkeys key_trabbl key_lim2 key_zdftke key_zdfddm key_zdftmx key_top key_mpp_mpi key_iomput -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_top_cfg
r7050 r7068 5 5 &namtrc_run ! run information 6 6 !----------------------------------------------------------------------- 7 jptra = 24 ! Total number of tracers8 7 ln_top_euler = .true. 9 8 / … … 11 10 &namtrc ! tracers definition 12 11 !----------------------------------------------------------------------- 12 jptra = 24 13 ! 14 ln_pisces = .true. 13 15 ln_age = .false. 14 16 ln_cfc11 = .false. 15 17 ln_cfc12 = .false. 16 18 ln_c14 = .false. 19 ln_my_trc = .false. 20 ! 17 21 ln_trcdta = .true. ! Initialisation from data input file (T) or not (F) 18 22 ! ! ! ! ! … … 85 89 / 86 90 !----------------------------------------------------------------------- 87 &namtrc_dia ! parameters for passive tracer additional diagnostics 91 &namtrc_dmp ! passive tracer newtonian damping 92 !----------------------------------------------------------------------- 93 / 94 !----------------------------------------------------------------------- 95 &namtrc_ice ! Representation of sea ice growth & melt effects 96 !----------------------------------------------------------------------- 97 / 98 !----------------------------------------------------------------------- 99 &namtrc_trd ! diagnostics on tracer trends ('key_trdtrc') 100 ! or mixed-layer trends ('key_trdmld_trc') 88 101 !---------------------------------------------------------------------- 89 102 / 90 103 !---------------------------------------------------------------------- 91 &namtrc_bc 104 &namtrc_bc ! data for boundary conditions 92 105 !----------------------------------------------------------------------- 93 106 / 107 !---------------------------------------------------------------------- 108 &namtrc_bdy ! Setup of tracer boundary conditions 109 !----------------------------------------------------------------------- -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/cpp_ORCA2_OFF_PISCES.fcm
r5836 r7068 1 bld::tool::fppkeys key_trabbl key_top key_offline key_ pisces key_iomput key_mpp_mpi1 bld::tool::fppkeys key_trabbl key_top key_offline key_iomput key_mpp_mpi -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_top_ref
r7041 r7068 12 12 &namtrc_run ! run information 13 13 !----------------------------------------------------------------------- 14 jptra = 3 ! Total number of tracers15 14 nn_dttrc = 1 ! time step frequency for passive sn_tracers 16 15 ln_top_euler = .false. ! use Euler time-stepping for TOP … … 27 26 &namtrc ! tracers definition 28 27 !----------------------------------------------------------------------- 29 ln_age = .true. 30 ln_cfc11 = .true. 31 ln_cfc12 = .false. 32 ln_c14 = .true. 28 jptra = 1 ! Number of passive tracers of the BGC model 29 ! 30 ln_pisces = .false. ! Run PISCES BGC model 31 ln_age = .true. ! Run the sea water age tracer 32 ln_cfc11 = .true. ! Run the CFC11 passive tracer 33 ln_cfc12 = .false. ! Run the CFC12 passive tracer 34 ln_c14 = .true. ! Run the Radiocarbon passive tracer 35 ln_my_trc = .false. ! Run MY_TRC BGC model 36 ! 33 37 ln_trcdta = .false. ! Initialisation from data input file (T) or not (F) 34 38 ln_trcdmp = .false. ! add a damping termn (T) or not (F) 35 39 ln_trcdmp_clo = .false. ! damping term (T) or not (F) on closed seas 36 ! 37 ! ! name ! title of the field ! units ! initial data from file or not ! 38 sn_tracer(1) = 'Age ' , 'Sea water age since surface contact ', 'yr' , .false. 39 sn_tracer(2) = 'CFC11 ' , 'CFC11 Concentration ', 'umolC/L', .false. 40 sn_tracer(3) = 'RC14 ' , 'Radiocarbon ratio ', '-' , .false. 40 ! ! ! ! ! ! 41 ! ! name ! title of the field ! units ! initial data from file or not ! 42 sn_tracer(1) = 'tracer ' , 'Tracer Concentration ', ' - ' , .false. 41 43 / 42 44 !----------------------------------------------------------------------- … … 44 46 !----------------------------------------------------------------------- 45 47 cn_dir = './' ! root directory for the location of the data files 48 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 49 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 50 sn_trcdta(1) = 'data_TRC_nomask' , -12 , 'TRC' , .false. , .true. , 'yearly' , '' , '' , '' 46 51 / 47 52 !----------------------------------------------------------------------- -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/cfg.txt
r7050 r7068 11 11 GYRE OPA_SRC 12 12 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 13 ORCA2_LIM3_PISCES OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC 14 ORCA2_LIM3_TRC_N OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC 13 15 ORCA2_LIM3_TRC OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC 14 ORCA2_LIM3_PISCES OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r6140 r7068 120 120 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sprecip !: solid precipitation [Kg/m2/s] 121 121 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fr_i !: ice fraction = 1 - lead fraction (between 0 to 1) 122 #if defined key_cpl_carbon_cycle123 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: atm_co2 !: atmospheric pCO2 [ppm] 124 #endif125 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xcplmask !: coupling mask for ln_mixcpl (warning: allocated in sbccpl) 126 124 … … 166 164 ! 167 165 ALLOCATE( tprecip(jpi,jpj) , sprecip(jpi,jpj) , fr_i(jpi,jpj) , & 168 #if defined key_cpl_carbon_cycle169 166 & atm_co2(jpi,jpj) , & 170 #endif171 167 & ssu_m (jpi,jpj) , sst_m(jpi,jpj) , frq_m(jpi,jpj) , & 172 168 & ssv_m (jpi,jpj) , sss_m(jpi,jpj) , ssh_m(jpi,jpj) , STAT=ierr(4) ) -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90
r7041 r7068 13 13 14 14 INTEGER, PUBLIC :: jp_age !: number of passive tracers in PISCES 15 INTEGER, PUBLIC :: jp_age0 !: index of AGE passive tracers16 17 LOGICAL, PUBLIC :: ln_age18 15 19 16 !!====================================================================== -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcini_age.F90
r7041 r7068 39 39 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 40 40 41 jp_age = 142 DO jn = 1, jptra43 cltra = ctrcnm(jn)44 IF( cltra == 'AGE' .OR. cltra == 'Age' .OR. cltra == 'age' ) jp_age0 = jn45 ENDDO46 47 IF( lwp ) THEN48 WRITE(numout,*) ''49 WRITE(numout,*) ' Index of age tracer in the passive tracer array jp_age0 = ', jp_age050 WRITE(numout,*)51 ENDIF52 53 54 41 rryear = 1._wp / ( nyear_len(1) * rday ) ! recip number of seconds in one year 55 42 … … 66 53 67 54 68 IF( .NOT. ln_rsttr ) trn(:,:,:,jp_age 0) = 0.55 IF( .NOT. ln_rsttr ) trn(:,:,:,jp_age) = 0. 69 56 ! 70 57 END SUBROUTINE trc_ini_age -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90
r7041 r7068 38 38 !!---------------------------------------------------------------------- 39 39 40 ctrcnm (jp_age) = 'Age' 41 ctrcln (jp_age) = 'Sea water age since surface contact' 42 ctrcun (jp_age) = 'year' 43 ln_trc_ini(jp_age) = .false. 44 ! 45 ln_trc_sbc(jp_age) = '' 46 ln_trc_cbc(jp_age) = '' 47 ln_trc_obc(jp_age) = '' 48 ! 49 40 50 REWIND( numtrc_ref ) ! Namelist namagedate in reference namelist : AGE parameters 41 51 READ ( numtrc_ref, namage, IOSTAT = ios, ERR = 901) … … 48 58 49 59 IF(lwp) THEN ! control print 60 WRITE(numout,*) ' ' 61 WRITE(numout,*) ' Sea Age Tracer' 62 WRITE(numout,*) ' tracer nb : ', jp_age, ' short name : ', TRIM( ctrcnm(jp_age) ) 50 63 WRITE(numout,*) 51 64 WRITE(numout,*) ' trc_nam_age: Read namage, namelist for Age passive tracer' … … 53 66 WRITE(numout,*) ' depth over which age tracer reset to zero rn_age_depth = ', rn_age_depth 54 67 WRITE(numout,*) ' recip of relax. timescale (s) for age tracer shallower than age_depth rn_age_kill_rate = ', rn_age_kill_rate 68 WRITE(numout,*) '' 55 69 ENDIF 56 70 -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcsms_age.F90
r7041 r7068 58 58 59 59 DO jk = 1, nla_age 60 tra(:,:,jk,jp_age 0) = rn_age_kill_rate * trb(:,:,jk,jp_age0)60 tra(:,:,jk,jp_age) = rn_age_kill_rate * trb(:,:,jk,jp_age) 61 61 ENDDO 62 62 ! 63 tra(:,:,nl_age,jp_age 0) = frac_kill_age * rn_age_kill_rate * trb(:,:,nl_age,jp_age0) &63 tra(:,:,nl_age,jp_age) = frac_kill_age * rn_age_kill_rate * trb(:,:,nl_age,jp_age) & 64 64 & + frac_add_age * rryear * tmask(:,:,nl_age) 65 65 ! 66 66 DO jk = nlb_age, jpk 67 tra(:,:,jk,jp_age 0) = tmask(:,:,jk) * rryear67 tra(:,:,jk,jp_age) = tmask(:,:,jk) * rryear 68 68 ENDDO 69 69 ! 70 IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_age 0), jn, jptra_sms, kt ) ! save trends70 IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_age), jn, jptra_sms, kt ) ! save trends 71 71 ! 72 72 IF( nn_timing == 1 ) CALL timing_stop('trc_sms_age') -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcwri_age.F90
r7041 r7068 33 33 ! write the tracer concentrations in the file 34 34 35 cltra = TRIM( ctrcnm(jp_age 0) ) ! short title for tracer36 CALL iom_put( cltra, trn(:,:,:,jp_age 0) )35 cltra = TRIM( ctrcnm(jp_age) ) ! short title for tracer 36 CALL iom_put( cltra, trn(:,:,:,jp_age) ) 37 37 38 38 ! -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/par_c14.F90
r7041 r7068 9 9 10 10 IMPLICIT NONE 11 12 11 INTEGER, PUBLIC :: jp_c14 !: number of c14 tracer 13 INTEGER, PUBLIC :: jp_c140 !: First index of C14 tracer14 15 LOGICAL, PUBLIC :: ln_c1416 12 17 13 END MODULE par_c14 -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcini_c14.F90
r7041 r7068 51 51 IF(lwp) WRITE(numout,*) ' trc_ini_c14: initialisation of C14 model' 52 52 ! 53 jp_c14 = 154 DO jn = 1, jptra55 cltra = ctrcnm(jn)56 IF( cltra == 'C14' .OR. cltra == 'RC14' .OR. cltra == 'C14b' ) jp_c140 = jn57 ENDDO58 59 IF( lwp ) THEN60 WRITE(numout,*) ''61 WRITE(numout,*) ' Index of c14 tracer in the passive tracer array jp_c140 = ', jp_c14062 WRITE(numout,*)63 ENDIF64 65 !66 53 IF( .NOT. ln_rsttr ) THEN 67 54 ! … … 69 56 IF(lwp) WRITE(numout,*) ' ==> Ocean C14/C :', rc14init 70 57 ! 71 trn(:,:,:,jp_c14 0) = rc14init * tmask(:,:,:)58 trn(:,:,:,jp_c14) = rc14init * tmask(:,:,:) 72 59 ! 73 60 qtr_c14(:,:) = 0._wp ! Init of air-sea BC -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcnam_c14.F90
r7041 r7068 43 43 NAMELIST/namc14_fcg/ cfileco2, cfilec14, tyrc14_beg ! for transient exps; atm forcing 44 44 !!------------------------------------------------------------------- 45 ! 46 ctrcnm (jp_c14) = 'RC14' 47 ctrcln (jp_c14) = 'Radiocarbon ratio' 48 ctrcun (jp_c14) = '-' 49 ln_trc_ini(jp_c14) = .false. 50 ! 45 51 46 52 REWIND( numtrc_ref ) ! Namelist namc14_typ in reference namelist : … … 54 60 55 61 IF(lwp) THEN ! control print 62 WRITE(numout,*) ' ' 63 WRITE(numout,*) ' Radiocarbon C14' 64 WRITE(numout,*) ' tracer nb : ', jp_c14, ' short name : ', TRIM( ctrcnm(jp_c14) ) 65 WRITE(numout,*) ' ' 56 66 WRITE(numout,*) ' Namelist namc14_typ' 57 67 WRITE(numout,*) -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcsms_c14.F90
r7041 r7068 46 46 ! freshwater fluxes which should not impact the C14/C ratio 47 47 ! 48 ! => Delta-C14= ( trn(...jp_c14 0) -1)*1000.48 ! => Delta-C14= ( trn(...jp_c14) -1)*1000. 49 49 !! 50 50 !!---------------------------------------------------------------------- … … 121 121 ! Flux of C-14 from air-to-sea; units: (C14/C ratio) x m/s 122 122 ! already masked 123 qtr_c14(:,:) = exch_c14(:,:) * ( c14sbc(:,:) - trb(:,:,1,jp_c14 0) )123 qtr_c14(:,:) = exch_c14(:,:) * ( c14sbc(:,:) - trb(:,:,1,jp_c14) ) 124 124 125 125 ! cumulation of air-to-sea flux at each time step 126 126 qint_c14(:,:) = qint_c14(:,:) + qtr_c14(:,:) * rdttrc 127 127 ! 128 ! Add the surface flux to the trend of jp_c14 0128 ! Add the surface flux to the trend of jp_c14 129 129 DO jj = 1, jpj 130 130 DO ji = 1, jpi 131 tra(ji,jj,1,jp_c14 0) = tra(ji,jj,1,jp_c140) + qtr_c14(ji,jj) / e3t_n(ji,jj,1)131 tra(ji,jj,1,jp_c14) = tra(ji,jj,1,jp_c14) + qtr_c14(ji,jj) / e3t_n(ji,jj,1) 132 132 END DO 133 133 END DO 134 134 ! 135 ! Computation of decay effects on jp_c14 0135 ! Computation of decay effects on jp_c14 136 136 DO jk = 1, jpk 137 137 DO jj = 1, jpj 138 138 DO ji = 1, jpi 139 139 ! 140 tra(ji,jj,jk,jp_c14 0) = tra(ji,jj,jk,jp_c140) - rlam14 * trb(ji,jj,jk,jp_c140) * tmask(ji,jj,jk)140 tra(ji,jj,jk,jp_c14) = tra(ji,jj,jk,jp_c14) - rlam14 * trb(ji,jj,jk,jp_c14) * tmask(ji,jj,jk) 141 141 ! 142 142 END DO … … 159 159 ENDIF 160 160 161 IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_c14 0), jp_c14, jptra_sms, kt ) ! save trends161 IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_c14), 1, jptra_sms, kt ) ! save trends 162 162 ! 163 163 IF( nn_timing == 1 ) CALL timing_stop('trc_sms_c14') -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcwri_c14.F90
r7041 r7068 42 42 ! write the tracer concentrations in the file 43 43 ! --------------------------------------- 44 cltra = TRIM( ctrcnm(jp_c14 0) ) ! short title for tracer45 CALL iom_put( cltra, trn(:,:,:,jp_c14 0) )44 cltra = TRIM( ctrcnm(jp_c14) ) ! short title for tracer 45 CALL iom_put( cltra, trn(:,:,:,jp_c14) ) 46 46 47 47 ! compute and write the tracer diagnostic in the file … … 61 61 DO ji = 1, jpi 62 62 IF( tmask(ji,jj,jk) > 0._wp) THEN 63 z3d (ji,jj,jk) = trn(ji,jj,jk,jp_c14 0)63 z3d (ji,jj,jk) = trn(ji,jj,jk,jp_c14) 64 64 zz3d(ji,jj,jk) = LOG( z3d(ji,jj,jk) ) 65 65 ENDIF … … 114 114 ENDIF 115 115 IF( iom_use("C14Inv") ) THEN 116 ztemp = glob_sum( trn(:,:,:,jp_c14 0) * cvol(:,:,:) )116 ztemp = glob_sum( trn(:,:,:,jp_c14) * cvol(:,:,:) ) 117 117 ztemp = atomc14 * xdicsur * ztemp 118 118 CALL iom_put( "C14Inv", ztemp ) ! Radiocarbon ocean inventory [10^26 atoms] -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90
r7041 r7068 12 12 13 13 IMPLICIT NONE 14 15 INTEGER, PUBLIC :: jp_cfc !: number of CFC passive tracers16 INTEGER, PUBLIC :: jpc11, jpc12 !: index of CFC tracers17 14 INTEGER, PUBLIC :: jp_cfc0, jp_cfc1 !: First/last index of CFC tracers 18 19 LOGICAL, PUBLIC :: ln_cfc11, ln_cfc12, ll_cfc20 15 21 16 !!====================================================================== -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90
r7041 r7068 49 49 IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model' 50 50 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 51 52 53 ! assign an index in trc arrays for each CFC prognostic variables54 jp_cfc = 155 IF( ln_cfc11 .AND. ln_cfc12 ) jp_cfc = 256 57 ! assign an index in trc arrays for each prognostic variables58 DO jn = 1, jptra59 cltra = ctrcnm(jn)60 IF( cltra == 'CFC11' .OR. cltra == 'cfc11' ) jpc11 = jn61 IF( cltra == 'CFC12' .OR. cltra == 'cfc12' ) jpc12 = jn62 ENDDO63 64 IF( jp_cfc == 1 ) THEN65 IF( ln_cfc11 ) jp_cfc0 = jpc1166 IF( ln_cfc12 ) jp_cfc0 = jpc1267 ELSE68 jp_cfc0 = MIN( jpc11, jpc12 )69 ENDIF70 jp_cfc1 = jp_cfc0 + jp_cfc - 171 72 IF( lwp ) THEN73 WRITE(numout,*) ''74 WRITE(numout,*) ' First index of CFC tracer in the passive tracer array jp_cfc0 = ', jp_cfc075 WRITE(numout,*) ' Last index of CFC tracer in the passive tracer array jp_cfc1 = ', jp_cfc176 WRITE(numout,*)77 ENDIF78 51 79 52 IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' … … 142 115 p_cfc(38,1:2,1) = 8.e-3 143 116 p_cfc(39,1:2,1) = 1.e-2 144 145 117 IF(lwp) THEN ! Control print 146 118 WRITE(numout,*) -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90
r7041 r7068 42 42 !!---------------------------------------------------------------------- 43 43 44 IF( ln_cfc11 ) THEN 45 ctrcnm (jp_cfc0) = 'CFC11' 46 ctrcln (jp_cfc0) = 'Chlorofluoro carbon 11 Concentration' 47 ctrcun (jp_cfc0) = 'umolC/L' 48 ln_trc_ini(jp_cfc0) = .false. 49 ENDIF 50 ! 51 IF( ln_cfc12 ) THEN 52 ctrcnm (jp_cfc1) = 'CFC12' 53 ctrcln (jp_cfc1) = 'Chlorofluoro carbon 12 Concentration' 54 ctrcun (jp_cfc1) = 'umolC/L' 55 ln_trc_ini(jp_cfc1) = .false. 56 ENDIF 57 ! 58 IF(lwp) THEN ! control print 59 ENDIF 60 44 61 REWIND( numtrc_ref ) ! Namelist namcfcdate in reference namelist : CFC parameters 45 62 READ ( numtrc_ref, namcfc, IOSTAT = ios, ERR = 901) … … 52 69 53 70 IF(lwp) THEN ! control print 54 WRITE(numout,*) 71 WRITE(numout,*) ' ' 72 WRITE(numout,*) ' CFCs' 73 IF( ln_cfc11 ) WRITE(numout,*) ' tracer nb : ', jp_cfc0, ' short name : ', TRIM( ctrcnm(jp_cfc0) ) 74 IF( ln_cfc12 ) WRITE(numout,*) ' tracer nb : ', jp_cfc1, ' short name : ', TRIM( ctrcnm(jp_cfc1) ) 75 WRITE(numout,*) ' ' 55 76 WRITE(numout,*) ' trc_nam: Read namdates, namelist for CFC chemical model' 56 77 WRITE(numout,*) ' ~~~~~~~' -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r7041 r7068 8 8 !! - ! 2001-03 (M. Levy) LNO3 + dia2d 9 9 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' LOBSTER bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! p2z_bio : … … 506 502 END SUBROUTINE p2z_bio_init 507 503 508 #else509 !!======================================================================510 !! Dummy module : No PISCES bio-model511 !!======================================================================512 CONTAINS513 SUBROUTINE p2z_bio( kt ) ! Empty routine514 INTEGER, INTENT( in ) :: kt515 WRITE(*,*) 'p2z_bio: You should not have seen this print! error?', kt516 END SUBROUTINE p2z_bio517 #endif518 519 504 !!====================================================================== 520 505 END MODULE p2zbio -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90
r7041 r7068 9 9 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 10 10 !! 3.5 ! 2012-03 (C. Ethe) Merge PISCES-LOBSTER 11 !!----------------------------------------------------------------------12 #if defined key_pisces13 !!----------------------------------------------------------------------14 !! 'key_pisces' LOBSTER bio-model15 11 !!---------------------------------------------------------------------- 16 12 !! p2z_exp : Compute loss of organic matter in the sediments … … 265 261 END FUNCTION p2z_exp_alloc 266 262 267 #else268 !!======================================================================269 !! Dummy module : No PISCES bio-model270 !!======================================================================271 CONTAINS272 SUBROUTINE p2z_exp( kt ) ! Empty routine273 INTEGER, INTENT( in ) :: kt274 WRITE(*,*) 'p2z_exp: You should not have seen this print! error?', kt275 END SUBROUTINE p2z_exp276 #endif277 278 263 !!====================================================================== 279 264 END MODULE p2zexp -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r7041 r7068 10 10 !! NEMO 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 11 11 !! 3.2 ! 2009-04 (C. Ethe, G. Madec) minor optimisation + style 12 !!----------------------------------------------------------------------13 #if defined key_pisces14 !!----------------------------------------------------------------------15 !! 'key_pisces' LOBSTER bio-model16 12 !!---------------------------------------------------------------------- 17 13 !! p2z_opt : Compute the light availability in the water column … … 208 204 END SUBROUTINE p2z_opt_init 209 205 210 #else211 !!======================================================================212 !! Dummy module : No PISCES bio-model213 !!======================================================================214 CONTAINS215 SUBROUTINE p2z_opt( kt ) ! Empty routine216 INTEGER, INTENT( in ) :: kt217 WRITE(*,*) 'p2z_opt: You should not have seen this print! error?', kt218 END SUBROUTINE p2z_opt219 #endif220 221 206 !!====================================================================== 222 207 END MODULE p2zopt -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r7041 r7068 7 7 !! - ! 2000-12 (E. Kestenare) clean up 8 8 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 + simplifications 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' LOBSTER bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p2z_sed : Compute loss of organic matter in the sediments … … 159 155 END SUBROUTINE p2z_sed_init 160 156 161 #else162 !!======================================================================163 !! Dummy module : No PISCES bio-model164 !!======================================================================165 CONTAINS166 SUBROUTINE p2z_sed( kt ) ! Empty routine167 INTEGER, INTENT( in ) :: kt168 WRITE(*,*) 'p2z_sed: You should not have seen this print! error?', kt169 END SUBROUTINE p2z_sed170 #endif171 172 157 !!====================================================================== 173 158 END MODULE p2zsed -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90
r7041 r7068 6 6 !! History : 1.0 ! M. Levy 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' LOBSTER bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p2zsms : Time loop of passive tracers sms … … 72 68 END SUBROUTINE p2z_sms 73 69 74 #else75 !!======================================================================76 !! Dummy module : No passive tracer77 !!======================================================================78 CONTAINS79 SUBROUTINE p2z_sms( kt ) ! Empty routine80 INTEGER, INTENT( in ) :: kt81 WRITE(*,*) 'p2z_sms: You should not have seen this print! error?', kt82 END SUBROUTINE p2z_sms83 #endif84 85 70 !!====================================================================== 86 71 END MODULE p2zsms -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zbio.F90
r6140 r7068 6 6 !! History : 1.0 ! 2004 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4z_bio : computes the interactions between the different … … 96 92 END SUBROUTINE p4z_bio 97 93 98 #else99 !!======================================================================100 !! Dummy module : No PISCES bio-model101 !!======================================================================102 CONTAINS103 SUBROUTINE p4z_bio ! Empty routine104 END SUBROUTINE p4z_bio105 #endif106 107 94 !!====================================================================== 108 95 END MODULE p4zbio -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90
r6945 r7068 11 11 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 12 12 !! ! 2011-02 (J. Simeon, J.Orr ) update O2 solubility constants 13 !!----------------------------------------------------------------------14 #if defined key_pisces15 !!----------------------------------------------------------------------16 !! 'key_pisces' PISCES bio-model17 13 !!---------------------------------------------------------------------- 18 14 !! p4z_che : Sea water chemistry computed following OCMIP protocol … … 333 329 END FUNCTION p4z_che_alloc 334 330 335 #else336 !!======================================================================337 !! Dummy module : No PISCES bio-model338 !!======================================================================339 CONTAINS340 SUBROUTINE p4z_che( kt ) ! Empty routine341 INTEGER, INTENT(in) :: kt342 WRITE(*,*) 'p4z_che: You should not have seen this print! error?', kt343 END SUBROUTINE p4z_che344 #endif345 346 331 !!====================================================================== 347 332 END MODULE p4zche -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r7041 r7068 5 5 !!====================================================================== 6 6 !! History : 3.5 ! 2012-07 (O. Aumont, A. Tagliabue, C. Ethe) Original code 7 !!----------------------------------------------------------------------8 #if defined key_pisces9 !!----------------------------------------------------------------------10 !! 'key_top' and TOP models11 !! 'key_pisces' PISCES bio-model12 7 !!---------------------------------------------------------------------- 13 8 !! p4z_fechem : Compute remineralization/scavenging of iron … … 359 354 END SUBROUTINE p4z_fechem_init 360 355 361 #else362 !!======================================================================363 !! Dummy module : No PISCES bio-model364 !!======================================================================365 CONTAINS366 SUBROUTINE p4z_fechem ! Empty routine367 END SUBROUTINE p4z_fechem368 #endif369 370 356 !!====================================================================== 371 357 END MODULE p4zfechem -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r7041 r7068 11 11 !! ! 2011-02 (J. Simeon, J. Orr) Include total atm P correction 12 12 !!---------------------------------------------------------------------- 13 #if defined key_pisces14 !!----------------------------------------------------------------------15 !! 'key_pisces' PISCES bio-model16 !!----------------------------------------------------------------------17 13 !! p4z_flx : CALCULATES GAS EXCHANGE AND CHEMISTRY AT SEA SURFACE 18 14 !! p4z_flx_init : Read the namelist … … 26 22 USE iom ! I/O manager 27 23 USE fldread ! read input fields 28 #if defined key_cpl_carbon_cycle29 24 USE sbc_oce, ONLY : atm_co2 ! atmospheric pCO2 30 #endif31 25 32 26 IMPLICIT NONE … … 116 110 ENDIF 117 111 118 #if defined key_cpl_carbon_cycle 119 satmco2(:,:) = atm_co2(:,:) 120 #endif 112 ! IF( ln_cpl_carbon_cycle ) satmco2(:,:) = atm_co2(:,:) 121 113 122 114 DO jm = 1, 10 … … 384 376 END FUNCTION p4z_flx_alloc 385 377 386 #else387 !!======================================================================388 !! Dummy module : No PISCES bio-model389 !!======================================================================390 CONTAINS391 SUBROUTINE p4z_flx( kt ) ! Empty routine392 INTEGER, INTENT( in ) :: kt393 WRITE(*,*) 'p4z_flx: You should not have seen this print! error?', kt394 END SUBROUTINE p4z_flx395 #endif396 397 378 !!====================================================================== 398 379 END MODULE p4zflx -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zint.F90
r5656 r7068 6 6 !! History : 1.0 ! 2004-03 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4z_int : interpolation and computation of various accessory fields … … 70 66 END SUBROUTINE p4z_int 71 67 72 #else73 !!======================================================================74 !! Dummy module : No PISCES bio-model75 !!======================================================================76 CONTAINS77 SUBROUTINE p4z_int ! Empty routine78 WRITE(*,*) 'p4z_int: You should not have seen this print! error?'79 END SUBROUTINE p4z_int80 #endif81 82 68 !!====================================================================== 83 69 END MODULE p4zint -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90
r6945 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-04 (O. Aumont, C. Ethe) Limitation for iron modelled in quota 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_lim : Compute the nutrients limitation terms … … 268 264 END SUBROUTINE p4z_lim_init 269 265 270 #else271 !!======================================================================272 !! Dummy module : No PISCES bio-model273 !!======================================================================274 CONTAINS275 SUBROUTINE p4z_lim ! Empty routine276 END SUBROUTINE p4z_lim277 #endif278 279 266 !!====================================================================== 280 267 END MODULE p4zlim -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90
r7041 r7068 11 11 !! ! 2011-02 (J. Simeon, J. Orr) Calcon salinity dependence 12 12 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Improvment of calcite dissolution 13 !!----------------------------------------------------------------------14 #if defined key_pisces15 !!----------------------------------------------------------------------16 !! 'key_pisces' PISCES bio-model17 13 !!---------------------------------------------------------------------- 18 14 !! p4z_lys : Compute the CaCO3 dissolution … … 204 200 END SUBROUTINE p4z_lys_init 205 201 206 #else207 !!======================================================================208 !! Dummy module : No PISCES bio-model209 !!======================================================================210 CONTAINS211 SUBROUTINE p4z_lys( kt ) ! Empty routine212 INTEGER, INTENT( in ) :: kt213 WRITE(*,*) 'p4z_lys: You should not have seen this print! error?', kt214 END SUBROUTINE p4z_lys215 #endif216 202 !!====================================================================== 217 203 END MODULE p4zlys -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r7041 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_meso : Compute the sources/sinks for mesozooplankton … … 297 293 END SUBROUTINE p4z_meso_init 298 294 299 300 #else301 !!======================================================================302 !! Dummy module : No PISCES bio-model303 !!======================================================================304 CONTAINS305 SUBROUTINE p4z_meso ! Empty routine306 END SUBROUTINE p4z_meso307 #endif308 309 295 !!====================================================================== 310 296 END MODULE p4zmeso -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90
r7041 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_micro : Compute the sources/sinks for microzooplankton … … 250 246 END SUBROUTINE p4z_micro_init 251 247 252 #else253 !!======================================================================254 !! Dummy module : No PISCES bio-model255 !!======================================================================256 CONTAINS257 SUBROUTINE p4z_micro ! Empty routine258 END SUBROUTINE p4z_micro259 #endif260 261 248 !!====================================================================== 262 249 END MODULE p4zmicro -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90
r7041 r7068 6 6 !! History : 1.0 ! 2002 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4z_mort : Compute the mortality terms for phytoplankton … … 245 241 END SUBROUTINE p4z_mort_init 246 242 247 #else248 !!======================================================================249 !! Dummy module : No PISCES bio-model250 !!======================================================================251 CONTAINS252 SUBROUTINE p4z_mort ! Empty routine253 END SUBROUTINE p4z_mort254 #endif255 256 243 !!====================================================================== 257 244 END MODULE p4zmort -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r7041 r7068 8 8 !! 3.2 ! 2009-04 (C. Ethe, G. Madec) optimisation 9 9 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Improve light availability of nano & diat 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' PISCES bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! p4z_opt : light availability in the water column … … 421 417 END FUNCTION p4z_opt_alloc 422 418 423 #else424 !!----------------------------------------------------------------------425 !! Dummy module : No PISCES bio-model426 !!----------------------------------------------------------------------427 CONTAINS428 SUBROUTINE p4z_opt ! Empty routine429 END SUBROUTINE p4z_opt430 #endif431 432 419 !!====================================================================== 433 420 END MODULE p4zopt -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r7041 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-05 (O. Aumont, C. Ethe) New parameterization of light limitation 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_prod : Compute the growth Rate of the two phytoplanktons groups … … 563 559 END FUNCTION p4z_prod_alloc 564 560 565 #else566 !!======================================================================567 !! Dummy module : No PISCES bio-model568 !!======================================================================569 CONTAINS570 SUBROUTINE p4z_prod ! Empty routine571 END SUBROUTINE p4z_prod572 #endif573 574 561 !!====================================================================== 575 562 END MODULE p4zprod -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r7041 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_top' and TOP models13 !! 'key_pisces' PISCES bio-model14 9 !!---------------------------------------------------------------------- 15 10 !! p4z_rem : Compute remineralization/dissolution of organic compounds … … 350 345 END FUNCTION p4z_rem_alloc 351 346 352 #else353 !!======================================================================354 !! Dummy module : No PISCES bio-model355 !!======================================================================356 CONTAINS357 SUBROUTINE p4z_rem ! Empty routine358 END SUBROUTINE p4z_rem359 #endif360 361 347 !!====================================================================== 362 348 END MODULE p4zrem -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
r6962 r7068 5 5 !!====================================================================== 6 6 !! History : 3.5 ! 2012-07 (O. Aumont, C. Ethe) Original code 7 !!----------------------------------------------------------------------8 #if defined key_pisces9 !!----------------------------------------------------------------------10 !! 'key_pisces' PISCES bio-model11 7 !!---------------------------------------------------------------------- 12 8 !! p4z_sbc : Read and interpolate time-varying nutrients fluxes … … 508 504 END SUBROUTINE p4z_sbc_init 509 505 510 #else511 !!======================================================================512 !! Dummy module : No PISCES bio-model513 !!======================================================================514 CONTAINS515 SUBROUTINE p4z_sbc ! Empty routine516 END SUBROUTINE p4z_sbc517 #endif518 519 506 !!====================================================================== 520 507 END MODULE p4zsbc -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r7041 r7068 8 8 !! 3.4 ! 2011-06 (C. Ethe) USE of fldread 9 9 !! 3.5 ! 2012-07 (O. Aumont) improvment of river input of nutrients 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' PISCES bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! p4z_sed : Compute loss of organic matter in the sediments … … 56 52 INTEGER, INTENT(in) :: kt, knt ! ocean time step 57 53 INTEGER :: ji, jj, jk, ikt 58 #if ! defined key_sed59 54 REAL(wp) :: zsumsedsi, zsumsedpo4, zsumsedcal 60 55 REAL(wp) :: zrivalk, zrivsil, zrivno3 61 #endif62 56 REAL(wp) :: zwflux, zfminus, zfplus 63 57 REAL(wp) :: zlim, zfact, zfactcal … … 205 199 END DO 206 200 207 #if ! defined key_sed 208 ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 209 ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 210 ! ------------------------------------------------------- 211 DO jj = 1, jpj 212 DO ji = 1, jpi 213 IF( tmask(ji,jj,1) == 1 ) THEN 214 ikt = mbkt(ji,jj) 215 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 216 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E3 * 1E6 / 1E4 217 zflx = LOG10( MAX( 1E-3, zflx ) ) 218 zo2 = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) ) 219 zno3 = LOG10( MAX( 1. , trb(ji,jj,ikt,jpno3) * 1E6 * rno3 ) ) 220 zdep = LOG10( gdepw_n(ji,jj,ikt+1) ) 221 zdenit2d(ji,jj) = -2.2567 - 1.185 * zflx - 0.221 * zflx**2 - 0.3995 * zno3 * zo2 + 1.25 * zno3 & 222 & + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 223 zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 224 ! 225 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 226 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 227 zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 228 ENDIF 229 END DO 230 END DO 231 232 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments. 233 ! First, the total loss is computed. 234 ! The factor for calcite comes from the alkalinity effect 235 ! ------------------------------------------------------------- 236 DO jj = 1, jpj 237 DO ji = 1, jpi 238 IF( tmask(ji,jj,1) == 1 ) THEN 239 ikt = mbkt(ji,jj) 240 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 241 zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 242 ! For calcite, burial efficiency is made a function of saturation 243 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 244 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 245 zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 246 ENDIF 247 END DO 248 END DO 249 zsumsedsi = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 250 zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 251 zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 252 #endif 201 IF( .NOT.lk_sed ) THEN 202 ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 203 ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 204 ! ------------------------------------------------------- 205 DO jj = 1, jpj 206 DO ji = 1, jpi 207 IF( tmask(ji,jj,1) == 1 ) THEN 208 ikt = mbkt(ji,jj) 209 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 210 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E3 * 1E6 / 1E4 211 zflx = LOG10( MAX( 1E-3, zflx ) ) 212 zo2 = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) ) 213 zno3 = LOG10( MAX( 1. , trb(ji,jj,ikt,jpno3) * 1E6 * rno3 ) ) 214 zdep = LOG10( gdepw_n(ji,jj,ikt+1) ) 215 zdenit2d(ji,jj) = -2.2567 - 1.185 * zflx - 0.221 * zflx**2 - 0.3995 * zno3 * zo2 + 1.25 * zno3 & 216 & + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 217 zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 218 ! 219 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 220 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 221 zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 222 ENDIF 223 END DO 224 END DO 225 226 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments. 227 ! First, the total loss is computed. 228 ! The factor for calcite comes from the alkalinity effect 229 ! ------------------------------------------------------------- 230 DO jj = 1, jpj 231 DO ji = 1, jpi 232 IF( tmask(ji,jj,1) == 1 ) THEN 233 ikt = mbkt(ji,jj) 234 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 235 zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 236 ! For calcite, burial efficiency is made a function of saturation 237 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 238 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 239 zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 240 ENDIF 241 END DO 242 END DO 243 zsumsedsi = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 244 zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 245 zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 246 ! 247 ENDIF 253 248 254 249 ! This loss is scaled at each bottom grid cell for equilibrating the total budget of silica in the ocean. 255 250 ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers) 256 251 ! ------------------------------------------------------ 257 #if ! defined key_sed 258 zrivsil = 1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn ) 259 #endif 252 IF( .NOT.lk_sed ) zrivsil = 1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn ) 260 253 261 254 DO jj = 1, jpj … … 270 263 tra(ji,jj,ikt,jpgsi) = tra(ji,jj,ikt,jpgsi) - zsiloss 271 264 tra(ji,jj,ikt,jpcal) = tra(ji,jj,ikt,jpcal) - zcaloss 272 #if ! defined key_sed 273 tra(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil274 zfactcal = MIN( excess(ji,jj,ikt), 0.2 )275 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) )276 zrivalk = 1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn )277 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0278 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk279 #endif 265 IF( .NOT.lk_sed ) THEN 266 tra(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil 267 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 268 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 269 zrivalk = 1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn ) 270 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 271 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk 272 ENDIF 280 273 END DO 281 274 END DO … … 294 287 zwstpoc = trb(ji,jj,ikt,jpgoc) * zws4 + trb(ji,jj,ikt,jppoc) * zws3 295 288 296 #if ! defined key_sed 297 ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification298 ! in the sediments and just above the sediments. Not very clever, but simpliest option.299 zpdenit = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 )300 z1pdenit = zwstpoc * zrivno3 - zpdenit301 zolimit = MIN( ( trb(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) )302 zdenitt = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) )303 tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt304 tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt305 tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt306 tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt)307 tra(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut308 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) )309 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt310 sdenit(ji,jj) = rdenit * zpdenit * e3t_n(ji,jj,ikt)311 #endif 289 IF( .NOT.lk_sed ) THEN 290 ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification 291 ! in the sediments and just above the sediments. Not very clever, but simpliest option. 292 zpdenit = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 293 z1pdenit = zwstpoc * zrivno3 - zpdenit 294 zolimit = MIN( ( trb(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 295 zdenitt = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) ) 296 tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt 297 tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt 298 tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt 299 tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt) 300 tra(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut 301 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 302 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 303 sdenit(ji,jj) = rdenit * zpdenit * e3t_n(ji,jj,ikt) 304 ENDIF 312 305 END DO 313 306 END DO … … 392 385 393 386 394 #else395 !!======================================================================396 !! Dummy module : No PISCES bio-model397 !!======================================================================398 CONTAINS399 SUBROUTINE p4z_sed ! Empty routine400 END SUBROUTINE p4z_sed401 #endif402 403 387 !!====================================================================== 404 388 END MODULE p4zsed -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
r7041 r7068 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Change aggregation formula 9 9 !! 3.5 ! 2012-07 (O. Aumont) Introduce potential time-splitting 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 10 !!---------------------------------------------------------------------- 13 11 !! p4z_sink : Compute vertical flux of particulate matter due to gravitational sinking … … 409 407 END FUNCTION p4z_sink_alloc 410 408 411 #else412 !!======================================================================413 !! Dummy module : No PISCES bio-model414 !!======================================================================415 CONTAINS416 SUBROUTINE p4z_sink ! Empty routine417 END SUBROUTINE p4z_sink418 #endif419 420 409 !!====================================================================== 421 410 END MODULE p4zsink -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r7041 r7068 6 6 !! History : 1.0 ! 2004-03 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4zsms : Time loop of passive tracers sms … … 546 542 END SUBROUTINE p4z_chk_mass 547 543 548 #else549 !!======================================================================550 !! Dummy module : No PISCES bio-model551 !!======================================================================552 CONTAINS553 SUBROUTINE p4z_sms( kt ) ! Empty routine554 INTEGER, INTENT( in ) :: kt555 WRITE(*,*) 'p4z_sms: You should not have seen this print! error?', kt556 END SUBROUTINE p4z_sms557 #endif558 559 544 !!====================================================================== 560 545 END MODULE p4zsms -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sedmodel.F90
r5215 r7068 15 15 PUBLIC sed_model ! called by step.F90 16 16 17 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .TRUE. !: sediment flag18 19 !! $Id$20 17 CONTAINS 21 18 … … 47 44 !! MODULE sedmodel : Dummy module 48 45 !!====================================================================== 49 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .FALSE. !: sediment flag50 !! $Id$51 46 CONTAINS 52 47 SUBROUTINE sed_model( kt ) ! Empty routine -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90
r7041 r7068 13 13 IMPLICIT NONE 14 14 15 INTEGER, PUBLIC :: jp_pisces !: number of passive tracers in PISCES16 17 #if defined key_pisces18 !!---------------------------------------------------------------------19 !! 'key_pisces : PISCES bio-model20 !!---------------------------------------------------------------------21 LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag22 15 ! productive layer depth 23 INTEGER, PUBLIC :: jpkb !: first vertical layers where biology is active 24 INTEGER, PUBLIC :: jpkbm1 !: first vertical layers where biology is active 25 26 #else 27 !!--------------------------------------------------------------------- 28 LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .FALSE. !: PISCES flag 29 #endif 16 INTEGER, PUBLIC :: jpkb !: first vertical layers where biology is active 17 INTEGER, PUBLIC :: jpkbm1 !: first vertical layers where biology is active 30 18 31 19 ! assign an index in trc arrays for each LOBSTER prognostic variables -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90
r7041 r7068 6 6 !! History : 1.0 ! 2000-02 (O. Aumont) original code 7 7 !! 3.2 ! 2009-04 (C. Ethe & NEMO team) style 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES model12 8 !!---------------------------------------------------------------------- 13 9 USE par_oce … … 112 108 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tgfunc2 !: Temp. dependancy of mesozooplankton rates 113 109 110 #if defined key_sed 111 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .TRUE. !: sediment flag 112 #else 113 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .FALSE. !: sediment flag 114 #endif 114 115 115 116 !!---------------------------------------------------------------------- … … 165 166 END FUNCTION sms_pisces_alloc 166 167 167 #else168 !!----------------------------------------------------------------------169 !! Empty module : NO PISCES model170 !!----------------------------------------------------------------------171 #endif172 173 168 !!====================================================================== 174 169 END MODULE sms_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90
r7041 r7068 5 5 !!====================================================================== 6 6 !! History : 3.5 ! 2013 (M. Vancoppenolle, O. Aumont, G. Madec), original code 7 !!----------------------------------------------------------------------8 #if defined key_pisces9 !!----------------------------------------------------------------------10 !! 'key_pisces' PISCES bio-model11 7 !!---------------------------------------------------------------------- 12 8 !! trc_ice_pisces : PISCES fake sea ice model setting … … 276 272 277 273 278 #else279 !!----------------------------------------------------------------------280 !! Dummy module No PISCES biochemical model281 !!----------------------------------------------------------------------282 CONTAINS283 SUBROUTINE trc_ice_ini_pisces ! Empty routine284 END SUBROUTINE trc_ice_ini_pisces285 #endif286 287 274 !!====================================================================== 288 275 END MODULE trcice_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90
r7041 r7068 10 10 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) from trcini.pisces.h90 11 11 !! 3.5 ! 2012-05 (C. Ethe) Merge PISCES-LOBSTER 12 !!----------------------------------------------------------------------13 #if defined key_pisces14 !!----------------------------------------------------------------------15 !! 'key_pisces' PISCES bio-model16 12 !!---------------------------------------------------------------------- 17 13 !! trc_ini_pisces : PISCES biochemical model initialisation … … 135 131 ENDDO 136 132 137 jp_pisces = 24138 jp_pcs0 = MIN( jpdic, jptal, jpoxy, jpcal, jppo4, jppoc, jpsil, &139 & jpphy, jpzoo, jpdoc, jpdia, jpmes, jpdsi, jpfer, &140 & jpbfe, jpgoc, jpsfe, jpdfe, jpgsi, jpnfe, jpnch, &141 & jpdch, jpno3, jpnh4 )142 143 jp_pcs1 = jp_pcs0 + jp_pisces - 1144 145 146 IF( lwp ) THEN147 WRITE(numout,*) ''148 WRITE(numout,*) ' First index of PISCES model in the passive tracer array jp_pcs0 = ', jp_pcs0149 WRITE(numout,*) ' Last index of PISCES model in the passive tracer array jp_pcs1 = ', jp_pcs1150 WRITE(numout,*)151 ENDIF152 153 154 133 CALL p4z_sms_init ! Maint routine 155 134 ! ! Time-step … … 257 236 ENDDO 258 237 259 260 jp_pcs0 = MIN( jpdet, jpzoo, jpphy, jpno3, jpnh4, jpdom )261 jp_pcs1 = jp_pcs0 + jp_pisces - 1262 263 264 IF( lwp ) THEN265 WRITE(numout,*) ''266 WRITE(numout,*) ' First index of LOBSTER model in the passive tracer array jp_pcs0 = ', jp_pcs0267 WRITE(numout,*) ' Last index of LOBSTER model in the passive tracer array jp_pcs1 = ', jp_pcs1268 WRITE(numout,*)269 ENDIF270 271 272 238 jpkb = 10 ! last level where depth less than 200 m 273 239 DO jk = jpkm1, 1, -1 … … 304 270 ! 305 271 END SUBROUTINE p2z_ini 306 #else307 !!----------------------------------------------------------------------308 !! Dummy module No PISCES biochemical model309 !!----------------------------------------------------------------------310 CONTAINS311 SUBROUTINE trc_ini_pisces ! Empty routine312 END SUBROUTINE trc_ini_pisces313 #endif314 272 315 273 !!====================================================================== -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90
r7041 r7068 8 8 !! 1.0 ! 2003-08 (C. Ethe) module F90 9 9 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) from trcnam.pisces.h90 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' : PISCES bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! trc_nam_pisces : PISCES model namelist read … … 74 70 75 71 IF(lwp) THEN ! control print 76 WRITE(numout,*) ' Namelist : nampismod' 77 WRITE(numout,*) ' PISCES model ln_p4z =', ln_p4z 78 WRITE(numout,*) ' LOBSTER model ln_p2z =', ln_p2z 72 WRITE(numout,*) ' ' 73 IF( ln_p4z ) WRITE(numout,*) ' PISCES model is used' 74 IF( ln_p2z ) WRITE(numout,*) ' LOBSTER model is used' 75 WRITE(numout,*) ' ' 79 76 ENDIF 80 77 … … 87 84 END SUBROUTINE trc_nam_pisces 88 85 89 #else90 !!----------------------------------------------------------------------91 !! Dummy module : No PISCES bio-model92 !!----------------------------------------------------------------------93 CONTAINS94 SUBROUTINE trc_nam_pisces ! Empty routine95 END SUBROUTINE trc_nam_pisces96 #endif97 98 86 !!====================================================================== 99 87 END MODULE trcnam_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
r7041 r7068 6 6 !! History : 1.0 ! 2004-03 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! trcsms_pisces : Time loop of passive tracers sms … … 56 52 END SUBROUTINE trc_sms_pisces 57 53 58 #else59 !!======================================================================60 !! Dummy module : No PISCES bio-model61 !!======================================================================62 CONTAINS63 SUBROUTINE trc_sms_pisces( kt ) ! Empty routine64 INTEGER, INTENT( in ) :: kt65 WRITE(*,*) 'trc_sms_pisces: You should not have seen this print! error?', kt66 END SUBROUTINE trc_sms_pisces67 #endif68 69 54 !!====================================================================== 70 55 END MODULE trcsms_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90
r7041 r7068 6 6 !! History : 1.0 ! 2009-05 (C. Ethe) Original code 7 7 !!---------------------------------------------------------------------- 8 #if defined key_top && defined key_pisces && defined key_iomput 9 !!---------------------------------------------------------------------- 10 !! 'key_pisces PISCES model 8 #if defined key_top && defined key_iomput 11 9 !!---------------------------------------------------------------------- 12 10 !! trc_wri_pisces : outputs of concentration fields -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90
r7041 r7068 62 62 ENDIF 63 63 64 IF( ln_age ) CALL trc_rad_sms( kt, trb, trn, jp_age 0, jp_age0) ! AGE64 IF( ln_age ) CALL trc_rad_sms( kt, trb, trn, jp_age , jp_age ) ! AGE 65 65 IF( ll_cfc ) CALL trc_rad_sms( kt, trb, trn, jp_cfc0, jp_cfc1 ) ! CFC model 66 IF( ln_c14 ) CALL trc_rad_sms( kt, trb, trn, jp_c14 0, jp_c140) ! C1467 IF( l k_pisces ) CALL trc_rad_sms( kt, trb, trn, jp_pcs0, jp_pcs1, cpreserv='Y' ) ! PISCES model68 IF( l k_my_trc ) CALL trc_rad_sms( kt, trb, trn, jp_myt0, jp_myt1 ) ! MY_TRC model66 IF( ln_c14 ) CALL trc_rad_sms( kt, trb, trn, jp_c14 , jp_c14 ) ! C14 67 IF( ln_pisces ) CALL trc_rad_sms( kt, trb, trn, jp_pcs0, jp_pcs1, cpreserv='Y' ) ! PISCES model 68 IF( ln_my_trc ) CALL trc_rad_sms( kt, trb, trn, jp_myt0, jp_myt1 ) ! MY_TRC model 69 69 70 70 ! -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc.F90
r6140 r7068 41 41 PUBLIC trd_mxl_trc 42 42 PUBLIC trd_mxl_trc_alloc 43 PUBLIC trd_mxl_bio44 43 PUBLIC trd_mxl_trc_init 45 44 PUBLIC trd_mxl_trc_zint 46 PUBLIC trd_mxl_bio_zint47 45 48 46 CHARACTER (LEN=40) :: clhstnam ! name of the trends NetCDF file 49 47 INTEGER :: nmoymltrd 50 INTEGER, ALLOCATABLE, SAVE, DIMENSION(:) :: ndextrd1 51 INTEGER, DIMENSION(jptra) :: nidtrd, nh_t 48 INTEGER, ALLOCATABLE, SAVE, DIMENSION(:) :: ndextrd1, nidtrd, nh_t 52 49 INTEGER :: ndimtrd1 53 50 INTEGER, SAVE :: ionce, icount 54 #if defined key_pisces_reduced55 INTEGER :: nidtrdbio, nh_tb56 INTEGER, SAVE :: ioncebio, icountbio57 INTEGER, SAVE :: nmoymltrdbio58 #endif59 51 LOGICAL :: llwarn = .TRUE. ! this should always be .TRUE. 60 52 LOGICAL :: lldebug = .TRUE. 61 53 62 54 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: ztmltrd2 ! 63 #if defined key_pisces_reduced64 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ztmltrdbio2 ! only needed for mean diagnostics in trd_mxl_bio()65 #endif66 55 67 56 !! * Substitutions … … 79 68 !!---------------------------------------------------------------------- 80 69 ALLOCATE( ztmltrd2(jpi,jpj,jpltrd_trc,jptra) , & 81 #if defined key_pisces_reduced 82 & ztmltrdbio2(jpi,jpj,jpdiabio) , & 83 #endif 84 & ndextrd1(jpi*jpj) , STAT=trd_mxl_trc_alloc) 70 & ndextrd1(jpi*jpj), nidtrd(jptra), nh_t(jptra), STAT=trd_mxl_trc_alloc) 85 71 ! 86 72 IF( lk_mpp ) CALL mpp_sum ( trd_mxl_trc_alloc ) … … 131 117 SELECT CASE ( nn_ctls_trc ) ! choice of the control surface 132 118 CASE ( -2 ) ; STOP 'trdmxl_trc : not ready ' ! -> isopycnal surface (see ???) 133 #if defined key_pisces || defined key_pisces_reduced134 119 CASE ( -1 ) ; nmld_trc(:,:) = neln(:,:) ! -> euphotic layer with light criterion 135 #endif136 120 CASE ( 0 ) ; nmld_trc(:,:) = nmln(:,:) ! -> ML with density criterion (see zdfmxl) 137 121 CASE ( 1 ) ; nmld_trc(:,:) = nbol_trc(:,:) ! -> read index from file … … 207 191 ! 208 192 END SUBROUTINE trd_mxl_trc_zint 209 210 211 SUBROUTINE trd_mxl_bio_zint( ptrc_trdmxl, ktrd )212 !!----------------------------------------------------------------------213 !! *** ROUTINE trd_mxl_bio_zint ***214 !!215 !! ** Purpose : Compute the vertical average of the 3D fields given as arguments216 !! to the subroutine. This vertical average is performed from ocean217 !! surface down to a chosen control surface.218 !!219 !! ** Method/usage :220 !! The control surface can be either a mixed layer depth (time varying)221 !! or a fixed surface (jk level or bowl).222 !! Choose control surface with nctls in namelist NAMTRD :223 !! nctls_trc = 0 : use mixed layer with density criterion224 !! nctls_trc = 1 : read index from file 'ctlsurf_idx'225 !! nctls_trc > 1 : use fixed level surface jk = nctls_trc226 !! Note: in the remainder of the routine, the volume between the227 !! surface and the control surface is called "mixed-layer"228 !!----------------------------------------------------------------------229 !!230 INTEGER , INTENT(in) :: ktrd ! bio trend index231 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: ptrc_trdmxl ! passive trc trend232 #if defined key_pisces_reduced233 !234 INTEGER :: ji, jj, jk, isum235 REAL(wp), POINTER, DIMENSION(:,:) :: zvlmsk236 !!----------------------------------------------------------------------237 238 CALL wrk_alloc( jpi, jpj, zvlmsk )239 240 ! I. Definition of control surface and integration weights241 ! --------------------------------------------------------242 ! ==> only once per time step <==243 244 IF( icountbio == 1 ) THEN245 !246 tmltrd_bio(:,:,:) = 0.e0 ! <<< reset trend arrays to zero247 ! ... Set nmld(ji,jj) = index of first T point below control surf. or outside mixed-layer248 SELECT CASE ( nn_ctls_trc ) ! choice of the control surface249 CASE ( -2 ) ; STOP 'trdmxl_trc : not ready ' ! -> isopycnal surface (see ???)250 CASE ( -1 ) ; nmld_trc(:,:) = neln(:,:) ! -> euphotic layer with light criterion251 CASE ( 0 ) ; nmld_trc(:,:) = nmln(:,:) ! -> ML with density criterion (see zdfmxl)252 CASE ( 1 ) ; nmld_trc(:,:) = nbol_trc(:,:) ! -> read index from file253 CASE ( 2: ) ; nn_ctls_trc = MIN( nn_ctls_trc, jpktrd_trc - 1 )254 nmld_trc(:,:) = nn_ctls_trc + 1 ! -> model level255 END SELECT256 257 ! ... Compute ndextrd1 and ndimtrd1 only once258 IF( ioncebio == 1 ) THEN259 !260 ! Check of validity : nmld_trc(ji,jj) <= jpktrd_trc261 isum = 0262 zvlmsk(:,:) = 0.e0263 264 IF( jpktrd_trc < jpk ) THEN265 DO jj = 1, jpj266 DO ji = 1, jpi267 IF( nmld_trc(ji,jj) <= jpktrd_trc ) THEN268 zvlmsk(ji,jj) = tmask(ji,jj,1)269 ELSE270 isum = isum + 1271 zvlmsk(ji,jj) = 0.272 END IF273 END DO274 END DO275 END IF276 277 ! Index of ocean points (2D only)278 IF( isum > 0 ) THEN279 WRITE(numout,*)' tmltrd_trc : Number of invalid points nmld_trc > jpktrd', isum280 CALL wheneq( jpi*jpj, zvlmsk(:,:) , 1, 1., ndextrd1, ndimtrd1 )281 ELSE282 CALL wheneq( jpi*jpj, tmask(:,:,1), 1, 1., ndextrd1, ndimtrd1 )283 END IF284 285 ioncebio = 0 ! no more pass here286 !287 END IF ! ( ioncebio == 1 )288 289 ! ... Weights for vertical averaging290 wkx_trc(:,:,:) = 0.e0291 DO jk = 1, jpktrd_trc ! initialize wkx_trc with vertical scale factor in mixed-layer292 DO jj = 1,jpj293 DO ji = 1,jpi294 IF( jk - nmld_trc(ji,jj) < 0. ) wkx_trc(ji,jj,jk) = e3t_n(ji,jj,jk) * tmask(ji,jj,jk)295 END DO296 END DO297 END DO298 299 rmld_trc(:,:) = 0.300 DO jk = 1, jpktrd_trc ! compute mixed-layer depth : rmld_trc301 rmld_trc(:,:) = rmld_trc(:,:) + wkx_trc(:,:,jk)302 END DO303 304 DO jk = 1, jpktrd_trc ! compute integration weights305 wkx_trc(:,:,jk) = wkx_trc(:,:,jk) / MAX( 1., rmld_trc(:,:) )306 END DO307 308 icountbio = 0 ! <<< flag = off : control surface & integr. weights309 ! ! computed only once per time step310 END IF ! ( icountbio == 1 )311 312 ! II. Vertical integration of trends in the mixed-layer313 ! -----------------------------------------------------314 315 316 DO jk = 1, jpktrd_trc317 tmltrd_bio(:,:,ktrd) = tmltrd_bio(:,:,ktrd) + ptrc_trdmxl(:,:,jk) * wkx_trc(:,:,jk)318 END DO319 320 CALL wrk_dealloc( jpi, jpj, zvlmsk )321 #endif322 !323 END SUBROUTINE trd_mxl_bio_zint324 193 325 194 … … 877 746 878 747 879 SUBROUTINE trd_mxl_bio( kt )880 !!----------------------------------------------------------------------881 !! *** ROUTINE trd_mld ***882 !!883 !! ** Purpose : Compute and cumulate the mixed layer biological trends over an analysis884 !! period, and write NetCDF outputs.885 !!886 !! ** Method/usage :887 !! The stored trends can be chosen twofold (according to the ln_trdmxl_trc_instant888 !! logical namelist variable) :889 !! 1) to explain the difference between initial and final890 !! mixed-layer T & S (where initial and final relate to the891 !! current analysis window, defined by ntrd in the namelist)892 !! 2) to explain the difference between the current and previous893 !! TIME-AVERAGED mixed-layer T & S (where time-averaging is894 !! performed over each analysis window).895 !!896 !! ** Consistency check :897 !! If the control surface is fixed ( nctls > 1 ), the residual term (dh/dt898 !! entrainment) should be zero, at machine accuracy. Note that in the case899 !! of time-averaged mixed-layer fields, this residual WILL NOT BE ZERO900 !! over the first two analysis windows (except if restart).901 !! N.B. For ORCA2_LIM, use e.g. ntrd=5, ucf=1., nctls=8902 !! for checking residuals.903 !! On a NEC-SX5 computer, this typically leads to:904 !! O(1.e-20) temp. residuals (tml_res) when ln_trdmxl_trc_instant=.false.905 !! O(1.e-21) temp. residuals (tml_res) when ln_trdmxl_trc_instant=.true.906 !!907 !! ** Action :908 !! At each time step, mixed-layer averaged trends are stored in the909 !! tmltrd(:,:,jpmxl_xxx) array (see trdmxl_oce.F90 for definitions of jpmxl_xxx).910 !! This array is known when trd_mld is called, at the end of the stp subroutine,911 !! except for the purely vertical K_z diffusion term, which is embedded in the912 !! lateral diffusion trend.913 !!914 !! In I), this K_z term is diagnosed and stored, thus its contribution is removed915 !! from the lateral diffusion trend.916 !! In II), the instantaneous mixed-layer T & S are computed, and misc. cumulative917 !! arrays are updated.918 !! In III), called only once per analysis window, we compute the total trends,919 !! along with the residuals and the Asselin correction terms.920 !! In IV), the appropriate trends are written in the trends NetCDF file.921 !!922 !! References :923 !! - Vialard & al.924 !! - See NEMO documentation (in preparation)925 !!----------------------------------------------------------------------926 INTEGER, INTENT( in ) :: kt ! ocean time-step index927 #if defined key_pisces_reduced928 INTEGER :: jl, it, itmod929 LOGICAL :: llwarn = .TRUE., lldebug = .TRUE.930 REAL(wp) :: zfn, zfn2931 !!----------------------------------------------------------------------932 ! ... Warnings933 IF( nn_dttrc /= 1 ) CALL ctl_stop( " Be careful, trends diags never validated " )934 935 ! ======================================================================936 ! II. Cumulate the trends over the analysis window937 ! ======================================================================938 939 ztmltrdbio2(:,:,:) = 0.e0 ! <<< reset arrays to zero940 941 ! II.3 Initialize mixed-layer "before" arrays for the 1rst analysis window942 ! ------------------------------------------------------------------------943 IF( kt == nittrc000 + nn_dttrc ) THEN ! i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1)944 !945 tmltrd_csum_ub_bio (:,:,:) = 0.e0946 !947 END IF948 949 ! II.4 Cumulated trends over the analysis period950 ! ----------------------------------------------951 !952 ! [ 1rst analysis window ] [ 2nd analysis window ]953 !954 !955 ! o---[--o-----o-----o-----o--]-[--o-----o-----o-----o-----o--]---o-----o--> time steps956 ! ntrd 2*ntrd etc.957 ! 1 2 3 4 =5 e.g. =10958 !959 IF( ( kt >= 2 ).OR.( ln_rsttr ) ) THEN960 !961 nmoymltrdbio = nmoymltrdbio + 1962 963 ! ... Trends associated with the time mean of the ML passive tracers964 tmltrd_sum_bio (:,:,:) = tmltrd_sum_bio (:,:,:) + tmltrd_bio (:,:,:)965 tmltrd_csum_ln_bio(:,:,:) = tmltrd_csum_ln_bio(:,:,:) + tmltrd_sum_bio(:,:,:)966 !967 END IF968 969 ! ======================================================================970 ! III. Prepare fields for output (get here ONCE PER ANALYSIS PERIOD)971 ! ======================================================================972 973 ! Convert to appropriate physical units974 tmltrd_bio(:,:,:) = tmltrd_bio(:,:,:) * rn_ucf_trc975 976 MODULO_NTRD : IF( MOD( kt, nn_trd_trc ) == 0 ) THEN ! nitend MUST be multiple of ntrd977 !978 zfn = float(nmoymltrdbio) ; zfn2 = zfn * zfn979 980 ! III.1 Prepare fields for output ("instantaneous" diagnostics)981 ! -------------------------------------------------------------982 983 #if defined key_diainstant984 STOP 'tmltrd_bio : key_diainstant was never checked within trdmxl. Comment this to proceed.'985 #endif986 ! III.2 Prepare fields for output ("mean" diagnostics)987 ! ----------------------------------------------------988 989 ztmltrdbio2(:,:,:) = tmltrd_csum_ub_bio(:,:,:) + tmltrd_csum_ln_bio(:,:,:)990 991 !-- Lateral boundary conditions992 IF ( cp_cfg .NE. 'gyre' ) THEN ! other than GYRE configuration993 ! ES_B27_CD_WARN : lbc inutile GYRE, cf. + haut994 DO jn = 1, jpdiabio995 CALL lbc_lnk( ztmltrdbio2(:,:,jn), 'T', 1. )996 ENDDO997 ENDIF998 999 IF( lldebug ) THEN1000 !1001 WRITE(numout,*) 'trd_mxl_bio : write trends in the Mixed Layer for debugging process:'1002 WRITE(numout,*) '~~~~~~~~~~~ '1003 WRITE(numout,*) 'TRC kt = ', kt, 'nmoymltrdbio = ', nmoymltrdbio1004 WRITE(numout,*)1005 1006 DO jl = 1, jpdiabio1007 IF( ln_trdmxl_trc_instant ) THEN1008 WRITE(numout,97) 'TRC jl =', jl, ' bio TREND INDEX = ', jl, &1009 & ' SUM tmltrd_bio : ', SUM2D(tmltrd_bio(:,:,jl))1010 ELSE1011 WRITE(numout,97) 'TRC jl =', jl, ' bio TREND INDEX = ', jl, &1012 & ' SUM ztmltrdbio2 : ', SUM2D(ztmltrdbio2(:,:,jl))1013 endif1014 END DO1015 1016 97 FORMAT(a10, i3, 2x, a30, i3, a20, 2x, g20.10)1017 98 FORMAT(a10, i3, 2x, a30, 2x, g20.10)1018 99 FORMAT('TRC jj =', i3,' : ', 10(g10.3,2x))1019 WRITE(numout,*)1020 !1021 ENDIF1022 1023 ! III.3 Time evolution array swap1024 ! -------------------------------1025 1026 ! For passive tracer mean diagnostics1027 tmltrd_csum_ub_bio (:,:,:) = zfn * tmltrd_sum_bio(:,:,:) - tmltrd_csum_ln_bio(:,:,:)1028 1029 ! III.4 Convert to appropriate physical units1030 ! -------------------------------------------1031 ztmltrdbio2 (:,:,:) = ztmltrdbio2 (:,:,:) * rn_ucf_trc/zfn21032 1033 END IF MODULO_NTRD1034 1035 ! ======================================================================1036 ! IV. Write trends in the NetCDF file1037 ! ======================================================================1038 1039 ! IV.1 Code for IOIPSL/NetCDF output1040 ! ----------------------------------1041 1042 ! define time axis1043 itmod = kt - nittrc000 + 11044 it = kt1045 1046 IF( lwp .AND. MOD( itmod , nn_trd_trc ) == 0 ) THEN1047 WRITE(numout,*) ' '1048 WRITE(numout,*) 'trd_mxl_bio : write ML bio trends in the NetCDF file :'1049 WRITE(numout,*) '~~~~~~~~~~~ '1050 WRITE(numout,*) ' ', TRIM(clhstnam), ' at kt = ', kt1051 WRITE(numout,*) ' N.B. nmoymltrdbio = ', nmoymltrdbio1052 WRITE(numout,*) ' '1053 END IF1054 1055 1056 ! 2. Start writing data1057 ! ---------------------1058 1059 NETCDF_OUTPUT : IF( ln_trdmxl_trc_instant ) THEN ! <<< write the trends for passive tracer instant. diags1060 !1061 DO jl = 1, jpdiabio1062 CALL histwrite( nidtrdbio,TRIM("ML_"//ctrd_bio(jl,2)) , &1063 & it, tmltrd_bio(:,:,jl), ndimtrd1, ndextrd1 )1064 END DO1065 1066 1067 IF( kt == nitend ) CALL histclo( nidtrdbio )1068 1069 ELSE ! <<< write the trends for passive tracer mean diagnostics1070 1071 DO jl = 1, jpdiabio1072 CALL histwrite( nidtrdbio, TRIM("ML_"//ctrd_bio(jl,2)) , &1073 & it, ztmltrdbio2(:,:,jl), ndimtrd1, ndextrd1 )1074 END DO1075 1076 IF( kt == nitend ) CALL histclo( nidtrdbio )1077 !1078 END IF NETCDF_OUTPUT1079 1080 ! Compute the control surface (for next time step) : flag = on1081 icountbio = 11082 1083 1084 1085 IF( MOD( itmod, nn_trd_trc ) == 0 ) THEN1086 !1087 ! III.5 Reset cumulative arrays to zero1088 ! -------------------------------------1089 nmoymltrdbio = 01090 tmltrd_csum_ln_bio (:,:,:) = 0.e01091 tmltrd_sum_bio (:,:,:) = 0.e01092 END IF1093 1094 ! ======================================================================1095 ! Write restart file1096 ! ======================================================================1097 1098 ! restart write is done in trd_mxl_trc_write which is called by trd_mxl_bio (Marina)1099 !1100 #endif1101 END SUBROUTINE trd_mxl_bio1102 1103 1104 748 REAL FUNCTION sum2d( ztab ) 1105 749 !!---------------------------------------------------------------------- … … 1191 835 tmltrd_csum_ln_trc (:,:,:,:) = 0.e0 ; rmld_sum_trc (:,:) = 0.e0 1192 836 1193 #if defined key_pisces_reduced1194 nmoymltrdbio = 01195 tmltrd_sum_bio (:,:,:) = 0.e0 ; tmltrd_csum_ln_bio (:,:,:) = 0.e01196 DO jl = 1, jp_pisces_trd1197 ctrd_bio(jl,1) = ctrbil(jl) ! long name1198 ctrd_bio(jl,2) = ctrbio(jl) ! short name1199 ENDDO1200 #endif1201 1202 837 IF( ln_rsttr .AND. ln_trdmxl_trc_restart ) THEN 1203 838 CALL trd_mxl_trc_rst_read … … 1208 843 tml_sumb_trc (:,:,:) = 0.e0 ; tmltrd_csum_ub_trc (:,:,:,:) = 0.e0 ! mean 1209 844 tmltrd_atf_sumb_trc(:,:,:) = 0.e0 ; tmltrd_rad_sumb_trc(:,:,:) = 0.e0 1210 #if defined key_pisces_reduced1211 tmltrd_csum_ub_bio (:,:,:) = 0.e01212 #endif1213 845 1214 846 ENDIF … … 1216 848 icount = 1 ; ionce = 1 ! open specifier 1217 849 1218 #if defined key_pisces_reduced1219 icountbio = 1 ; ioncebio = 1 ! open specifier1220 #endif1221 850 1222 851 ! I.3 Read control surface from file ctlsurf_idx … … 1308 937 END DO 1309 938 1310 #if defined key_pisces_reduced1311 !-- Create a NetCDF file and enter the define mode1312 CALL dia_nam( clhstnam, nn_trd_trc, 'trdbio' )1313 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, &1314 & 1, jpi, 1, jpj, iiter, zjulian, rdt, nh_tb, nidtrdbio, domain_id=nidom, snc4chunks=snc4set )1315 #endif1316 1317 939 !-- Define physical units 1318 940 IF( rn_ucf_trc == 1. ) THEN … … 1354 976 END DO 1355 977 1356 #if defined key_pisces_reduced1357 DO jl = 1, jp_pisces_trd1358 CALL histdef(nidtrdbio, TRIM("ML_"//ctrd_bio(jl,2)), TRIM(clmxl//" ML_"//ctrd_bio(jl,1)) , &1359 & cltrcu, jpi, jpj, nh_tb, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) ! IOIPSL: time mean1360 END DO ! if zsto=rdt above1361 #endif1362 1363 978 !-- Leave IOIPSL/NetCDF define mode 1364 979 DO jn = 1, jptra … … 1366 981 END DO 1367 982 1368 #if defined key_pisces_reduced1369 !-- Leave IOIPSL/NetCDF define mode1370 CALL histend( nidtrdbio, snc4set )1371 1372 983 IF(lwp) WRITE(numout,*) 1373 IF(lwp) WRITE(numout,*) 'End of NetCDF Initialization for ML bio trends'1374 #endif1375 984 1376 985 END SUBROUTINE trd_mxl_trc_init … … 1385 994 WRITE(*,*) 'trd_mxl_trc: You should not have seen this print! error?', kt 1386 995 END SUBROUTINE trd_mxl_trc 1387 SUBROUTINE trd_mxl_bio( kt )1388 INTEGER, INTENT( in) :: kt1389 WRITE(*,*) 'trd_mxl_bio: You should not have seen this print! error?', kt1390 END SUBROUTINE trd_mxl_bio1391 996 SUBROUTINE trd_mxl_trc_zint( ptrc_trdmxl, ktrd, ctype, kjn ) 1392 997 INTEGER , INTENT( in ) :: ktrd, kjn ! ocean trend index and passive tracer rank -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc_rst.F90
r6140 r7068 107 107 END DO ! tracer loop 108 108 ! ! =========== 109 #if defined key_pisces_reduced110 DO jl = 1, jp_pisces_trd111 CALL iom_rstput( kt, nitrst, nummldw_trc, 'tmltrd_csum_ub_bio'//ctrd_bio(jl,2), tmltrd_csum_ub_bio(:,:,jl) )112 ENDDO113 #endif114 115 109 ENDIF 116 110 … … 188 182 ! ! =========== 189 183 190 #if defined key_pisces_reduced191 DO jl = 1, jp_pisces_trd192 CALL iom_get( inum, jpdom_autoglo, 'tmltrd_csum_ub_bio'//ctrd_bio(jl,2), tmltrd_csum_ub_bio(:,:,jl) )193 ENDDO194 #endif195 196 184 CALL iom_close( inum ) 197 185 ENDIF -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc_oce.F90
r7041 r7068 106 106 # endif 107 107 108 # if defined key_pisces_reduced109 CHARACTER(LEN=80) :: clname_bio, ctrd_bio(jpdiabio,2)110 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: &111 tmltrd_bio, & !: \ biological contributions to the total trend ,112 !: / cumulated over the current analysis window113 tmltrd_sum_bio, & !: sum of these trends over the analysis period114 tmltrd_csum_ln_bio, & !: now cumulated sum of trends over the "lower triangle"115 tmltrd_csum_ub_bio !: before (prev. analysis period) cumulated sum over the116 !: upper triangle117 #endif118 108 !!---------------------------------------------------------------------- 119 109 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 154 144 #endif 155 145 ! 156 # if defined key_pisces_reduced157 ALLOCATE( tmltrd_bio (jpi,jpj,jpdiabio) , &158 & tmltrd_sum_bio (jpi,jpj,jpdiabio) , &159 & tmltrd_csum_ln_bio(jpi,jpj,jpdiabio) , &160 & tmltrd_csum_ub_bio(jpi,jpj,jpdiabio) , STAT=ierr(2) )161 # endif162 !163 146 trd_trc_oce_alloc = MAXVAL(ierr) 164 147 ! -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/par_trc.F90
r7046 r7068 10 10 !!---------------------------------------------------------------------- 11 11 USE par_kind ! kind parameters 12 USE par_pisces ! PISCES model parameters 13 USE par_cfc ! CFCs tracers parameters 14 USE par_c14 ! C14 tracer parameters 15 USE par_age ! AGE tracer parameters 16 USE par_my_trc ! MY_TRC model parameters 12 17 ! 13 !14 USE par_pisces15 USE par_c1416 USE par_cfc17 USE par_age18 USE par_my_trc19 18 20 19 IMPLICIT NONE 21 20 22 21 INTEGER, PUBLIC, PARAMETER :: jpmaxtrc = 100 ! Maximum number of tracers 22 23 23 INTEGER, PUBLIC :: jptra ! Total number of tracers 24 INTEGER, PUBLIC :: jp_lc ! Total number of tracers 24 INTEGER, PUBLIC :: jp_pisces !: number of passive tracers in PISCES model 25 INTEGER, PUBLIC :: jp_cfc !: number of CFC passive tracers 26 INTEGER, PUBLIC :: jp_my_trc !: number of passive tracers in MY_TRC model 27 28 LOGICAL, PUBLIC :: ln_pisces !: PISCES flag 29 LOGICAL, PUBLIC :: ln_age !: AGE flag 30 LOGICAL, PUBLIC :: ln_cfc11 !: CFC11 flag 31 LOGICAL, PUBLIC :: ln_cfc12 !: CFC12 flag 32 LOGICAL, PUBLIC :: ll_cfc !: CFC flag 33 LOGICAL, PUBLIC :: ln_c14 !: C14 flag 34 LOGICAL, PUBLIC :: ln_my_trc !: MY_TRC flag 35 36 37 INTEGER, PUBLIC :: jp_bgc !: number of passive tracers for the BGC model 25 38 26 39 REAL(wp), PUBLIC :: rtrn = 0.5 * EPSILON( 1.e0 ) !: truncation value -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trc.F90
r7041 r7068 98 98 CHARACTER(len = 20) :: clunit !: unit 99 99 LOGICAL :: llinit !: read in a file or not 100 #if defined key_my_trc101 100 LOGICAL :: llsbc !: read in a file or not 102 101 LOGICAL :: llcbc !: read in a file or not 103 102 LOGICAL :: llobc !: read in a file or not 104 #endif105 103 END TYPE PTRACER 104 105 TYPE, PUBLIC :: STRACER !: Passive tracer type 106 LOGICAL :: llsbc !: read in a file or not 107 LOGICAL :: llcbc !: read in a file or not 108 LOGICAL :: llobc !: read in a file or not 109 END TYPE STRACER 110 106 111 CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrcnm !: tracer name 107 112 CHARACTER(len = 80), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ctrcln !: trccer field long name … … 116 121 !! information for inputs 117 122 !! -------------------------------------------------- 118 LOGICAL 119 LOGICAL 120 LOGICAL 121 LOGICAL 123 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_ini !: Initialisation from data input file 124 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_obc !: Use open boundary condition data 125 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_sbc !: Use surface boundary condition data 126 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_cbc !: Use coastal boundary condition data 122 127 123 128 … … 199 204 & sbc_trc_b(jpi,jpj,jptra), sbc_trc(jpi,jpj,jptra) , & 200 205 & cvol(jpi,jpj,jpk) , trai(jptra) , qsr_mean(jpi,jpj) , & 201 & ctrcnm(jptra) , ctrcln(jptra) , ctrcun(jptra) , &202 & ln_trc_ini(jptra) , &203 & trc_ice_ratio(jptra) , trc_ice_prescr(jptra) , cn_trc_o(jptra) , &204 #if defined key_my_trc205 & ln_trc_sbc(jptra) , ln_trc_cbc(jptra) , ln_trc_obc(jptra) , &206 #endif207 #if defined key_bdy208 & cn_trc_dflt(nb_bdy) , cn_trc(nb_bdy) , nn_trcdmp_bdy(nb_bdy) , &209 & trcdta_bdy(jptra,nb_bdy) , &210 #endif211 206 & STAT = trc_alloc ) 212 207 -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcice.F90
r7041 r7068 52 52 53 53 IF ( nn_ice_tr == 1 ) THEN 54 IF( l k_pisces ) CALL trc_ice_ini_pisces ! PISCES bio-model54 IF( ln_pisces ) CALL trc_ice_ini_pisces ! PISCES bio-model 55 55 IF( ll_cfc ) CALL trc_ice_ini_cfc ! CFC tracers 56 56 IF( ln_c14 ) CALL trc_ice_ini_c14 ! C14 tracer 57 57 IF( ln_age ) CALL trc_ice_ini_age ! AGE tracer 58 IF( l k_my_trc ) CALL trc_ice_ini_my_trc ! MY_TRC tracers58 IF( ln_my_trc ) CALL trc_ice_ini_my_trc ! MY_TRC tracers 59 59 ENDIF 60 60 -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r7041 r7068 59 59 IF(lwp) WRITE(numout,*) '~~~~~~~' 60 60 61 IF( .NOT.lk_offline ) CALL trc_nam_run ! Parameters of the run 62 ! 63 CALL top_alloc() ! allocate TOP arrays 61 ! 64 62 ! 65 63 CALL trc_ini_ctl ! control 66 64 CALL trc_nam ! read passive tracers namelists 65 CALL top_alloc() ! allocate TOP arrays 67 66 ! 68 67 ! … … 152 151 !! ** Purpose : SMS initialisation 153 152 !!---------------------------------------------------------------------- 154 USE par_trc155 153 USE trcini_pisces ! PISCES initialisation 156 154 USE trcini_cfc ! CFC initialisation … … 159 157 USE trcini_my_trc ! MY_TRC initialisation 160 158 !!---------------------------------------------------------------------- 161 jp_lc = 0 162 IF( lk_pisces ) THEN ! PISCES bio-model 163 CALL trc_ini_pisces 164 jp_lc = jp_pisces 165 ELSE 166 jp_pisces = 0 167 jp_pcs0 = 0 168 jp_pcs1 = 0 169 ENDIF 170 IF( lk_my_trc ) THEN ! MY_TRC 171 CALL trc_ini_my_trc 172 jp_lc = jp_lc + jp_my_trc 173 ELSE 174 jp_my_trc = 0 175 jp_myt0 = 0 176 jp_myt1 = 0 177 ENDIF 178 IF( ll_cfc ) THEN ! CFC 179 CALL trc_ini_cfc 180 jp_lc = jp_lc + jp_cfc 181 ELSE 182 jp_cfc = 0 183 jp_cfc0 = 0 184 jp_cfc1 = 0 185 ENDIF 186 IF( ln_c14 ) THEN ! C14 187 CALL trc_ini_c14 188 jp_lc = jp_lc + jp_c14 189 ELSE 190 jp_c14 = 0 191 jp_c140 = 0 192 ENDIF 193 IF( ln_age ) THEN ! AGE 194 CALL trc_ini_age 195 jp_lc = jp_lc + jp_age 196 ELSE 197 jp_age = 0 198 jp_age0 = 0 199 ENDIF 200 ! 201 IF( jp_lc /= jptra ) THEN 202 IF( lwp ) WRITE(numout,*) ' The total number of tracers in namelist_top jptra = ', jptra 203 IF( lwp ) WRITE(numout,*) ' The total number of tracers to be used by the model is jp_lc = ', jp_lc 204 CALL ctl_stop( " Change the value of total number of tracers in namelist " ) 205 ENDIF 159 ! 160 IF( ln_pisces ) CALL trc_ini_pisces ! PISCES model 161 IF( ln_my_trc ) CALL trc_ini_my_trc ! MY_TRC model 162 IF( ll_cfc ) CALL trc_ini_cfc ! CFC's 163 IF( ln_c14 ) CALL trc_ini_c14 ! C14 model 164 IF( ln_age ) CALL trc_ini_age ! AGE 206 165 ! 207 166 END SUBROUTINE trc_ini_sms … … 247 206 248 207 ! Initialisation of tracers Boundary Conditions 249 IF( l k_my_trc ) CALL trc_bc_init(jptra)208 IF( ln_my_trc ) CALL trc_bc_init(jptra) 250 209 251 210 IF( ln_rsttr ) THEN -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r7046 r7068 53 53 !!--------------------------------------------------------------------- 54 54 INTEGER :: jn ! dummy loop indice 55 ! 55 ! 56 IF( .NOT.lk_offline ) CALL trc_nam_run ! Parameters of the run 56 57 ! 57 58 CALL trc_nam_trc ! passive tracer informations … … 111 112 ENDIF 112 113 113 IF( l k_pisces ) THEN ; CALL trc_nam_pisces ! PISCES bio-model114 IF( ln_pisces ) THEN ; CALL trc_nam_pisces ! PISCES bio-model 114 115 ELSE ; IF(lwp) WRITE(numout,*) ' PISCES not used' 115 116 ENDIF 116 117 117 118 118 IF( l k_my_trc ) THEN ; CALL trc_nam_my_trc ! MY_TRC tracers119 IF( ln_my_trc ) THEN ; CALL trc_nam_my_trc ! MY_TRC tracers 119 120 ELSE ; IF(lwp) WRITE(numout,*) ' MY_TRC not used' 120 121 ENDIF … … 130 131 !! 131 132 !!--------------------------------------------------------------------- 132 NAMELIST/namtrc_run/ jptra,nn_dttrc, ln_rsttr, nn_rsttr, ln_top_euler, &133 NAMELIST/namtrc_run/ nn_dttrc, ln_rsttr, nn_rsttr, ln_top_euler, & 133 134 & cn_trcrst_indir, cn_trcrst_outdir, cn_trcrst_in, cn_trcrst_out 134 135 ! … … 158 159 WRITE(numout,*) 159 160 WRITE(numout,*) ' Namelist : namtrc_run' 160 WRITE(numout,*) ' Total number of passive tracers jptra = ', jptra161 161 WRITE(numout,*) ' time step freq. for passive tracer nn_dttrc = ', nn_dttrc 162 162 WRITE(numout,*) ' restart for passive tracer ln_rsttr = ', ln_rsttr … … 176 176 !! 177 177 !!--------------------------------------------------------------------- 178 INTEGER :: ios, ierr 178 INTEGER :: ios, ierr, ioptio, icfc ! Local integer output status for namelist read 179 179 INTEGER :: jn ! dummy loop indice 180 180 ! 181 181 TYPE(PTRACER), DIMENSION(jpmaxtrc) :: sn_tracer ! type of tracer for saving if not key_iomput 182 !! 183 NAMELIST/namtrc/ln_age, ln_cfc11, ln_cfc12, ln_c14, sn_tracer, ln_trcdta, ln_trcdmp, ln_trcdmp_clo 182 TYPE(STRACER), DIMENSION(jpmaxtrc) :: bc_tracer ! type of tracer for saving if not key_iomput 183 !! 184 NAMELIST/namtrc/jptra, ln_pisces, ln_my_trc, ln_age, ln_cfc11, ln_cfc12, ln_c14, & 185 & sn_tracer, ln_trcdta, ln_trcdmp, ln_trcdmp_clo 184 186 !!--------------------------------------------------------------------- 185 187 IF(lwp) WRITE(numout,*) … … 197 199 IF(lwm) WRITE ( numont, namtrc ) 198 200 199 200 DO jn = 1, jptra 201 ioptio = 0 202 IF( ln_pisces ) ioptio = ioptio + 1 203 IF( ln_my_trc ) ioptio = ioptio + 1 204 ! 205 IF( ioptio == 2 ) CALL ctl_stop( 'Choose only ONE BGC model - PISCES or MY_TRC' ) 206 IF( ioptio == 0 ) jptra = 0 207 208 ll_cfc = ln_cfc11 .OR. ln_cfc12 209 210 ! 211 jp_pisces = 0 ; jp_pcs0 = 0 ; jp_pcs1 = 0 212 jp_my_trc = 0 ; jp_myt0 = 0 ; jp_myt1 = 0 213 jp_cfc = 0 ; jp_cfc0 = 0 ; jp_cfc1 = 0 214 jp_age = 0 ; jp_c14 = 0 215 IF( ln_pisces ) THEN 216 jp_pisces = jptra 217 jp_pcs0 = 1 218 jp_pcs1 = jp_pisces 219 ENDIF 220 IF( ln_my_trc ) THEN 221 jp_my_trc = jptra 222 jp_myt0 = 1 223 jp_myt1 = jp_my_trc 224 ENDIF 225 ! 226 jp_bgc = jptra 227 ! 228 IF( ln_age ) THEN 229 jptra = jptra + 1 230 jp_age = jptra 231 ENDIF 232 IF( ln_cfc11 ) jp_cfc = jp_cfc + 1 233 IF( ln_cfc12 ) jp_cfc = jp_cfc + 1 234 IF( ll_cfc ) THEN 235 jptra = jptra + jp_cfc 236 jp_cfc0 = jptra - jp_cfc + 1 237 jp_cfc1 = jptra 238 ENDIF 239 IF( ln_c14 ) THEN 240 jptra = jptra + 1 241 jp_c14 = jptra 242 ENDIF 243 244 IF(lwp) THEN ! control print 245 WRITE(numout,*) 246 WRITE(numout,*) ' Namelist : namtrc' 247 WRITE(numout,*) ' Total number of passive tracers jptra = ', jptra 248 WRITE(numout,*) ' Simulating PISCES model ln_pisces = ', ln_pisces 249 WRITE(numout,*) ' Simulating water mass age ln_age = ', ln_age 250 WRITE(numout,*) ' Simulating CFC11 passive tracer ln_cfc11 = ', ln_cfc11 251 WRITE(numout,*) ' Simulating CFC12 passive tracer ln_cfc12 = ', ln_cfc12 252 WRITE(numout,*) ' Simulating C14 passive tracer ln_c14 = ', ln_c14 253 WRITE(numout,*) ' Simulating MY_TRC model ln_my_trc = ', ln_my_trc 254 WRITE(numout,*) ' Read inputs data from file (y/n) ln_trcdta = ', ln_trcdta 255 WRITE(numout,*) ' Damping of passive tracer (y/n) ln_trcdmp = ', ln_trcdmp 256 WRITE(numout,*) ' Restoring of tracer on closed seas ln_trcdmp_clo = ', ln_trcdmp_clo 257 WRITE(numout,*) ' ' 258 WRITE(numout,*) ' ' 259 ENDIF 260 ! 261 ALLOCATE( ctrcnm(jptra) , ctrcln(jptra) , ctrcun(jptra) , ln_trc_ini(jptra), & 262 #if defined key_bdy 263 & cn_trc_dflt(nb_bdy), cn_trc(nb_bdy), nn_trcdmp_bdy(nb_bdy), trcdta_bdy(jptra,nb_bdy), & 264 #endif 265 & ln_trc_sbc(jptra), ln_trc_cbc(jptra), ln_trc_obc(jptra), STAT = ierr ) 266 ! 267 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'trc_nam_ice: unable to allocate arrays' ) 268 ! 269 DO jn = 1, jp_bgc 201 270 ctrcnm (jn) = TRIM( sn_tracer(jn)%clsname ) 202 271 ctrcln (jn) = TRIM( sn_tracer(jn)%cllname ) 203 272 ctrcun (jn) = TRIM( sn_tracer(jn)%clunit ) 204 273 ln_trc_ini(jn) = sn_tracer(jn)%llinit 205 #if defined key_my_trc206 ln_trc_sbc(jn) = sn_tracer(jn)%llsbc207 ln_trc_cbc(jn) = sn_tracer(jn)%llcbc208 ln_trc_obc(jn) = sn_tracer(jn)%llobc209 #endif210 274 END DO 211 275 ! 212 ll_cfc = ln_cfc11 .OR. ln_cfc12 276 IF( ln_my_trc ) THEN 277 DO jn = 1, jp_bgc 278 ln_trc_sbc(jn) = bc_tracer(jn)%llsbc 279 ln_trc_cbc(jn) = bc_tracer(jn)%llcbc 280 ln_trc_obc(jn) = bc_tracer(jn)%llobc 281 END DO 282 ENDIF 213 283 ! 214 284 IF(lwp) THEN ! control print 215 WRITE(numout,*) 216 WRITE(numout,*) ' Namelist : namtrc' 217 WRITE(numout,*) ' Simulating water mass age ln_age = ', ln_age 218 WRITE(numout,*) ' Simulating CFC11 passive tracer ln_cfc11 = ', ln_cfc11 219 WRITE(numout,*) ' Simulating CFC12 passive tracer ln_cfc12 = ', ln_cfc12 220 WRITE(numout,*) ' Simulating C14 passive tracer ln_c14 = ', ln_c14 221 WRITE(numout,*) ' Read inputs data from file (y/n) ln_trcdta = ', ln_trcdta 222 WRITE(numout,*) ' Damping of passive tracer (y/n) ln_trcdmp = ', ln_trcdmp 223 WRITE(numout,*) ' Restoring of tracer on closed seas ln_trcdmp_clo = ', ln_trcdmp_clo 224 WRITE(numout,*) ' ' 225 DO jn = 1, jptra 285 DO jn = 1, jp_bgc 226 286 WRITE(numout,*) ' tracer nb : ', jn, ' short name : ', ctrcnm(jn) 227 287 END DO 228 288 WRITE(numout,*) ' ' 229 289 ENDIF 290 ! 230 291 ! 231 292 IF( ln_age .OR. ll_cfc .OR. ln_c14 ) THEN … … 252 313 INTEGER :: ios, ierr ! Local integer output status for namelist read 253 314 ! 254 TYPE(TRC_I_NML), ALLOCATABLE, DIMENSION(:) :: sn_tri_tracer ! type of tracer for saving if not key_iomput315 TYPE(TRC_I_NML), DIMENSION(jpmaxtrc) :: sn_tri_tracer ! type of tracer for saving if not key_iomput 255 316 !! 256 317 NAMELIST/namtrc_ice/ nn_ice_tr, sn_tri_tracer … … 265 326 IF( nn_timing == 1 ) CALL timing_start('trc_nam_ice') 266 327 267 ALLOCATE( sn_tri_tracer(jptra), STAT = ierr )268 328 ! 269 329 REWIND( numnat_ref ) ! Namelist namtrc_ice in reference namelist : Passive tracer input data … … 281 341 ENDIF 282 342 343 ALLOCATE( trc_ice_ratio(jptra), trc_ice_prescr(jptra), cn_trc_o(jptra), STAT = ierr ) 344 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'trc_nam_ice: unable to allocate arrays' ) 345 ! 283 346 ! Assign namelist stuff 284 347 DO jn = 1, jptra 285 trc_ice_ratio (jn)= sn_tri_tracer(jn)%trc_ratio348 trc_ice_ratio (jn) = sn_tri_tracer(jn)%trc_ratio 286 349 trc_ice_prescr(jn) = sn_tri_tracer(jn)%trc_prescr 287 350 cn_trc_o (jn) = sn_tri_tracer(jn)%ctrc_o -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcsms.F90
r7041 r7068 49 49 IF( nn_timing == 1 ) CALL timing_start('trc_sms') 50 50 ! 51 IF( l k_pisces ) CALL trc_sms_pisces ( kt ) ! main program of PISCES51 IF( ln_pisces ) CALL trc_sms_pisces ( kt ) ! main program of PISCES 52 52 IF( ll_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC 53 53 IF( ln_c14 ) CALL trc_sms_c14 ( kt ) ! surface fluxes of C14 54 54 IF( ln_age ) CALL trc_sms_age ( kt ) ! Age tracer 55 IF( l k_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers55 IF( ln_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers 56 56 57 57 IF(ln_ctl) THEN ! print mean trends (used for debugging) -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
r7041 r7068 54 54 ! write the tracer concentrations in the file 55 55 ! --------------------------------------- 56 IF( l k_pisces ) CALL trc_wri_pisces ! PISCES56 IF( ln_pisces ) CALL trc_wri_pisces ! PISCES 57 57 IF( ll_cfc ) CALL trc_wri_cfc ! surface fluxes of CFC 58 58 IF( ln_c14 ) CALL trc_wri_c14 ! surface fluxes of C14 59 59 IF( ln_age ) CALL trc_wri_age ! AGE tracer 60 IF( l k_my_trc ) CALL trc_wri_my_trc ! MY_TRC tracers60 IF( ln_my_trc ) CALL trc_wri_my_trc ! MY_TRC tracers 61 61 ! 62 62 IF( nn_timing == 1 ) CALL timing_stop('trc_wri')
Note: See TracChangeset
for help on using the changeset viewer.