New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 8471 – NEMO

Changeset 8471


Ignore:
Timestamp:
2017-08-29T18:12:42+02:00 (7 years ago)
Author:
jpalmier
Message:

JPALM -- #1933 -- add and correct passive tracer trends - needs improvements and testing

Location:
branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM/CONFIG/SHARED/field_def.xml

    r8353 r8471  
    11<!-- 
     2< GO6.0 version of the XIOS namelist > 
     3< XIOS2 version namelist > 
     4 
    25<?xml version="1.0"?> 
    36       --> 
     
    10011004       <field id="CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3" /> 
    10021005       <field id="CFC11_E3T"   long_name="CFC11 * E3T"                              unit="umol/m2"  > CFC11 * e3t </field > 
     1006       <!-- CFC12 : variables available with key_cfc --> 
    10031007       <field id="CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3" /> 
    10041008       <field id="CFC12_E3T"   long_name="CFC12 * E3T"                              unit="umol/m2"  > CFC12 * e3t </field > 
     1009       <!-- SF6 : variables available with key_cfc --> 
    10051010       <field id="SF6"         long_name="SF6 Concentration"                        unit="umol/m3" /> 
    10061011       <field id="SF6_E3T"     long_name="SF6 * E3T"                                unit="umol/m2"  > SF6 * e3t </field > 
     
    11401145       <field id="qint_C14b"   long_name="Cumulative air-sea flux of Bomb C14"     unit="mol/m2"     /> 
    11411146       <field id="fdecay"      long_name="Radiactive decay of Bomb C14"            unit="mol/m3"  grid_ref="grid_T_3D"  /> 
     1147 
     1148     </field_group> 
     1149 
     1150 
     1151     <field_group id="ptrd_T" grid_ref="grid_T_3D">  <!-- key_trdtrc || key_trdmlx_trc --> 
     1152       <!-- CFC11 : variables available with key_cfc --> 
     1153       <field id="XAD_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1154       <field id="YAD_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1155       <field id="ZAD_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1156       <field id="TAD_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1157       <field id="TAD_CFC11_E3T"   long_name="TAD_CFC11 * E3T"                          unit="umol/m2/s" > TAD_CFC11 * e3t </field> 
     1158       <field id="LDF_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1159       <field id="BBL_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1160       <field id="FOR_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1161       <field id="ZDF_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1162       <field id="ZDP_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1163       <field id="DMP_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1164       <field id="SMS_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1165       <field id="SMS_CFC11_E3T"   long_name="SMS_CFC11 * E3T"                          unit="umol/m2/s" > SMS_CFC11 * e3t </field> 
     1166       <field id="ATF_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1167       <field id="RDB_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1168       <field id="RDN_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1169       <field id="TOT_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" /> 
     1170       <field id="TOT_CFC11_E3T"   long_name="TOT_CFC11 * E3T"                          unit="umol/m2/s" > TOT_CFC11 * e3t </field> 
     1171       <field id="ISO_CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3/s" > LDF_CFC11 + ZDF_CFC11 - ZDP_CFC11 </field>   
     1172       <!-- CFC12 : variables available with key_cfc --> 
     1173       <field id="XAD_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1174       <field id="YAD_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1175       <field id="ZAD_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1176       <field id="TAD_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1177       <field id="TAD_CFC12_E3T"   long_name="TAD_CFC12 * E3T"                          unit="umol/m2/s" > TAD_CFC12 * e3t </field> 
     1178       <field id="LDF_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1179       <field id="BBL_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1180       <field id="FOR_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1181       <field id="ZDF_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1182       <field id="ZDP_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1183       <field id="DMP_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1184       <field id="SMS_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1185       <field id="SMS_CFC12_E3T"   long_name="SMS_CFC12 * E3T"                          unit="umol/m2/s" > SMS_CFC12 * e3t </field> 
     1186       <field id="ATF_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1187       <field id="RDB_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1188       <field id="RDN_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" /> 
     1189       <field id="TOT_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" />  
     1190       <field id="TOT_CFC12_E3T"   long_name="TOT_CFC12 * E3T"                          unit="umol/m2/s" > TOT_CFC12 * e3t </field> 
     1191       <field id="ISO_CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3/s" > LDF_CFC12 + ZDF_CFC12 - ZDP_CFC12 </field> 
     1192       <!-- SF6 : variables available with key_cfc --> 
     1193       <field id="XAD_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1194       <field id="YAD_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1195       <field id="ZAD_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1196       <field id="TAD_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1197       <field id="TAD_SF6_E3T"     long_name="TAD_SF6 * E3T"                            unit="umol/m2/s" > TAD_SF6 * e3t </field> 
     1198       <field id="LDF_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1199       <field id="BBL_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1200       <field id="FOR_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1201       <field id="ZDF_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1202       <field id="ZDP_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1203       <field id="DMP_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1204       <field id="SMS_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1205       <field id="SMS_SF6_E3T"     long_name="SMS_SF6 * E3T"                            unit="umol/m2/s" > SMS_SF6 * e3t </field> 
     1206       <field id="ATF_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1207       <field id="RDB_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1208       <field id="RDN_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1209       <field id="TOT_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" /> 
     1210       <field id="TOT_SF6_E3T"     long_name="TOT_SF6 * E3T"                            unit="umol/m2/s" > TOT_SF6 * e3t </field> 
     1211       <field id="ISO_SF6"         long_name="SF6 Concentration"                        unit="umol/m3/s" > LDF_SF6 + ZDF_SF6 - ZDP_SF6 </field> 
     1212       <!-- Bomb C14 : variables available with key_c14b --> 
     1213       <field id="XAD_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1214       <field id="YAD_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1215       <field id="ZAD_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1216       <field id="TAD_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1217       <field id="TAD_C14B_E3T"    long_name="TAD_C14B * E3T"                           unit="1/s" > TAD_C14B * e3t </field> 
     1218       <field id="LDF_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1219       <field id="BBL_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1220       <field id="FOR_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1221       <field id="ZDF_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1222       <field id="ZDP_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1223       <field id="DMP_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1224       <field id="SMS_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1225       <field id="SMS_C14B_E3T"    long_name="SMS_C14B * E3T"                           unit="1/s" > SMS_C14B * e3t </field> 
     1226       <field id="ATF_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1227       <field id="RDB_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1228       <field id="RDN_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1229       <field id="TOT_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"         /> 
     1230       <field id="TOT_C14B_E3T"    long_name="TOT_C14B * E3T"                           unit="1/s" > TOT_C14B * e3t </field> 
     1231       <field id="ISO_C14B"        long_name="Bomb C14 Concentration"                   unit="1/s"        > LDF_C14B + ZDF_C14B - ZDP_C14B </field> 
     1232       <!-- AGE : variables available with key_age --> 
     1233       <field id="XAD_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1234       <field id="YAD_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1235       <field id="ZAD_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1236       <field id="TAD_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1237       <field id="TAD_Age_E3T"    long_name="TAD_Age * E3T"                                     unit="yr/s" > TAD_Age * e3t </field> 
     1238       <field id="LDF_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1239       <field id="BBL_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1240       <field id="FOR_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1241       <field id="ZDF_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1242       <field id="ZDP_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1243       <field id="DMP_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1244       <field id="SMS_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1245       <field id="SMS_Age_E3T"    long_name="SMS_Age * E3T"                                     unit="yr/s" > SMS_Age * e3t </field> 
     1246       <field id="ATF_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1247       <field id="RDB_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1248       <field id="RDN_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1249       <field id="TOT_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"         /> 
     1250       <field id="TOT_Age_E3T"    long_name="TOT_Age * E3T"                                     unit="yr/s" > TOT_Age * e3t </field> 
     1251       <field id="ISO_Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr/s"  > LDF_Age + ZDF_Age - ZDP_Age  </field> 
    11421252     </field_group> 
    11431253 
     
    11621272    --> 
    11631273 
    1164      <field_group id="TRD" > 
    1165           <field field_ref="ttrd_totad_li"   name="opottempadvect"  /> 
    1166           <field field_ref="ttrd_iso_li"     name="opottemppmdiff"  /> 
    1167           <field field_ref="ttrd_zdfp_li"    name="opottempdiff"  /> 
    1168           <field field_ref="ttrd_evd_li"     name="opottempevd" /> 
    1169           <field field_ref="strd_evd_li"     name="osaltevd" /> 
    1170           <field field_ref="ttrd_qns_li"     name="opottempqns"  /> 
    1171           <field field_ref="ttrd_qsr_li"     name="rsdoabsorb" operation="accumulate" /> 
    1172           <field field_ref="strd_totad_li"   name="osaltadvect" /> 
    1173           <field field_ref="strd_iso_li"     name="osaltpmdiff"  /> 
    1174           <field field_ref="strd_zdfp_li"    name="osaltdiff" /> 
     1274    <field_group id="groupCFC" > 
     1275      <field field_ref="CFC11"     name="CFC11"     /> 
     1276      <field field_ref="CFC11_E3T" name="CFC11_E3T" /> 
     1277      <field field_ref="CFC12"     name="CFC12"     /> 
     1278      <field field_ref="CFC12_E3T" name="CFC12_E3T" /> 
     1279      <field field_ref="SF6"       name="SF6"       /> 
     1280      <field field_ref="SF6_E3T"   name="SF6_E3T"   /> 
    11751281    </field_group> 
    1176      
     1282 
     1283    <field_group id="groupCFC_dia" > 
     1284      <field field_ref="qtrCFC11"    name="qtrCFC11"   /> 
     1285      <field field_ref="qintCFC11"   name="qintCFC11"  /> 
     1286      <field field_ref="qtrCFC12"    name="qtrCFC12"   /> 
     1287      <field field_ref="qintCFC12"   name="qintCFC12"  /> 
     1288      <field field_ref="qtrSF6"      name="qtrSF6"     /> 
     1289      <field field_ref="qintSF6"     name="qintSF6"    /> 
     1290    </field_group> 
     1291 
     1292    <field_group id="groupAGE" > 
     1293      <field field_ref="Age" name="Age" /> 
     1294    </field_group> 
     1295 
     1296    <field_group id="trendCFC11" > 
     1297          <!-- cfc11 --> 
     1298          <field field_ref="TOT_CFC11"     name="TOT_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1299          <field field_ref="TOT_CFC11_E3T" name="TOT_CFC11_E3T" standard_name="CFC-11_Concentration"                  /> 
     1300          <field field_ref="XAD_CFC11"     name="XAD_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1301          <field field_ref="YAD_CFC11"     name="YAD_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1302          <field field_ref="ZAD_CFC11"     name="ZAD_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1303          <field field_ref="TAD_CFC11"     name="TAD_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1304          <field field_ref="TAD_CFC11_E3T" name="TAD_CFC11_E3T" standard_name="CFC-11_Concentration"                  /> 
     1305          <field field_ref="LDF_CFC11"     name="LDF_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1306          <field field_ref="BBL_CFC11"     name="BBL_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1307          <field field_ref="FOR_CFC11"     name="FOR_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1308          <field field_ref="ZDF_CFC11"     name="ZDF_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1309          <field field_ref="ZDP_CFC11"     name="ZDP_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1310          <field field_ref="DMP_CFC11"     name="DMP_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1311          <field field_ref="SMS_CFC11"     name="SMS_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1312          <field field_ref="SMS_CFC11_E3T" name="SMS_CFC11_E3T" standard_name="CFC-11_Concentration"                  /> 
     1313          <field field_ref="ATF_CFC11"     name="ATF_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1314          <field field_ref="ISO_CFC11"     name="ISO_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1315   </field_group> 
     1316 
     1317    <field_group id="trendCFC12" > 
     1318          <!-- cfc12 --> 
     1319          <field field_ref="TOT_CFC12"     name="TOT_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1320          <field field_ref="TOT_CFC12_E3T" name="TOT_CFC12_E3T" standard_name="CFC-12_Concentration"                  /> 
     1321          <field field_ref="XAD_CFC12"     name="XAD_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1322          <field field_ref="YAD_CFC12"     name="YAD_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1323          <field field_ref="ZAD_CFC12"     name="ZAD_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1324          <field field_ref="TAD_CFC12"     name="TAD_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1325          <field field_ref="TAD_CFC12_E3T" name="TAD_CFC12_E3T" standard_name="CFC-12_Concentration"                  /> 
     1326          <field field_ref="LDF_CFC12"     name="LDF_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1327          <field field_ref="BBL_CFC12"     name="BBL_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1328          <field field_ref="FOR_CFC12"     name="FOR_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1329          <field field_ref="ZDF_CFC12"     name="ZDF_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1330          <field field_ref="ZDP_CFC12"     name="ZDP_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1331          <field field_ref="DMP_CFC12"     name="DMP_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1332          <field field_ref="SMS_CFC12"     name="SMS_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1333          <field field_ref="SMS_CFC12_E3T" name="SMS_CFC12_E3T" standard_name="CFC-12_Concentration"                  /> 
     1334          <field field_ref="ATF_CFC12"     name="ATF_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1335          <field field_ref="ISO_CFC12"     name="ISO_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1336   </field_group> 
     1337 
     1338    <field_group id="trendSF6" > 
     1339          <!-- sf6 --> 
     1340          <field field_ref="TOT_SF6"      name="TOT_SF6"      standard_name="SF6_Concentration"                     /> 
     1341          <field field_ref="TOT_SF6_E3T"  name="TOT_SF6_E3T"  standard_name="SF6_Concentration"                     /> 
     1342          <field field_ref="XAD_SF6"      name="XAD_SF6"      standard_name="SF6_Concentration"                     /> 
     1343          <field field_ref="YAD_SF6"      name="YAD_SF6"      standard_name="SF6_Concentration"                     /> 
     1344          <field field_ref="ZAD_SF6"      name="ZAD_SF6"      standard_name="SF6_Concentration"                     /> 
     1345          <field field_ref="TAD_SF6"      name="TAD_SF6"      standard_name="SF6_Concentration"                     /> 
     1346          <field field_ref="TAD_SF6_E3T"  name="TAD_SF6_E3T"  standard_name="SF6_Concentration"                     /> 
     1347          <field field_ref="LDF_SF6"      name="LDF_SF6"      standard_name="SF6_Concentration"                     /> 
     1348          <field field_ref="BBL_SF6"      name="BBL_SF6"      standard_name="SF6_Concentration"                     /> 
     1349          <field field_ref="FOR_SF6"      name="FOR_SF6"      standard_name="SF6_Concentration"                     /> 
     1350          <field field_ref="ZDF_SF6"      name="ZDF_SF6"      standard_name="SF6_Concentration"                     /> 
     1351          <field field_ref="ZDP_SF6"      name="ZDP_SF6"      standard_name="SF6_Concentration"                     /> 
     1352          <field field_ref="DMP_SF6"      name="DMP_SF6"      standard_name="SF6_Concentration"                     /> 
     1353          <field field_ref="SMS_SF6"      name="SMS_SF6"      standard_name="SF6_Concentration"                     /> 
     1354          <field field_ref="SMS_SF6_E3T"  name="SMS_SF6_E3T"  standard_name="SF6_Concentration"                     /> 
     1355          <field field_ref="ATF_SF6"      name="ATF_SF6"      standard_name="SF6_Concentration"                     /> 
     1356          <field field_ref="ISO_SF6"      name="ISO_SF6"      standard_name="SF6_Concentration"                     /> 
     1357   </field_group> 
     1358 
     1359    <field_group id="trendAGE" > 
     1360          <!-- age --> 
     1361          <field field_ref="TOT_Age"      name="TOT_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1362          <field field_ref="TOT_Age_E3T"  name="TOT_Age_E3T"  standard_name="sea_water_age_since_surface_contact"   /> 
     1363          <field field_ref="XAD_Age"      name="XAD_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1364          <field field_ref="YAD_Age"      name="YAD_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1365          <field field_ref="ZAD_Age"      name="ZAD_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1366          <field field_ref="TAD_Age"      name="TAD_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1367          <field field_ref="TAD_Age_E3T"  name="TAD_Age_E3T"  standard_name="sea_water_age_since_surface_contact"   /> 
     1368          <field field_ref="LDF_Age"      name="LDF_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1369          <field field_ref="BBL_Age"      name="BBL_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1370          <field field_ref="FOR_Age"      name="FOR_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1371          <field field_ref="ZDF_Age"      name="ZDF_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1372          <field field_ref="ZDP_Age"      name="ZDP_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1373          <field field_ref="DMP_Age"      name="DMP_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1374          <field field_ref="SMS_Age"      name="SMS_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1375          <field field_ref="SMS_Age_E3T"  name="SMS_Age_E3T"  standard_name="sea_water_age_since_surface_contact"   /> 
     1376          <field field_ref="ATF_Age"      name="ATF_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1377          <field field_ref="ISO_Age"      name="ISO_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1378   </field_group> 
     1379 
     1380    <field_group id="trendC14B" > 
     1381          <!-- c14 bomb --> 
     1382          <field field_ref="TOT_C14B"      name="TOT_C14B"      standard_name="C14b_Concentration"               /> 
     1383          <field field_ref="TOT_C14B_E3T"  name="TOT_C14B_E3T"  standard_name="C14b_Concentration"               /> 
     1384          <field field_ref="XAD_C14B"      name="XAD_C14B"      standard_name="C14b_Concentration"               /> 
     1385          <field field_ref="YAD_C14B"      name="YAD_C14B"      standard_name="C14b_Concentration"               /> 
     1386          <field field_ref="ZAD_C14B"      name="ZAD_C14B"      standard_name="C14b_Concentration"               /> 
     1387          <field field_ref="TAD_C14B"      name="TAD_C14B"      standard_name="C14b_Concentration"               /> 
     1388          <field field_ref="TAD_C14B_E3T"  name="TAD_C14B_E3T"  standard_name="C14b_Concentration"               /> 
     1389          <field field_ref="LDF_C14B"      name="LDF_C14B"      standard_name="C14b_Concentration"               /> 
     1390          <field field_ref="BBL_C14B"      name="BBL_C14B"      standard_name="C14b_Concentration"               /> 
     1391          <field field_ref="FOR_C14B"      name="FOR_C14B"      standard_name="C14b_Concentration"               /> 
     1392          <field field_ref="ZDF_C14B"      name="ZDF_C14B"      standard_name="C14b_Concentration"               /> 
     1393          <field field_ref="ZDP_C14B"      name="ZDP_C14B"      standard_name="C14b_Concentration"               /> 
     1394          <field field_ref="DMP_C14B"      name="DMP_C14B"      standard_name="C14b_Concentration"               /> 
     1395          <field field_ref="SMS_C14B"      name="SMS_C14B"      standard_name="C14b_Concentration"               /> 
     1396          <field field_ref="SMS_C14B_E3T"  name="SMS_C14B_E3T"  standard_name="C14b_Concentration"               /> 
     1397          <field field_ref="ATF_C14B"      name="ATF_C14B"      standard_name="C14b_Concentration"               /> 
     1398          <field field_ref="ISO_C14B"      name="ISO_C14B"      standard_name="C14b_Concentration"               /> 
     1399   </field_group> 
     1400 
     1401    <field_group id="trendCFC11_short" > 
     1402          <!-- cfc11 --> 
     1403          <field field_ref="TOT_CFC11"     name="TOT_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1404          <field field_ref="TOT_CFC11_E3T" name="TOT_CFC11_E3T" standard_name="CFC-11_Concentration"                  /> 
     1405          <field field_ref="TAD_CFC11"     name="TAD_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1406          <field field_ref="TAD_CFC11_E3T" name="TAD_CFC11_E3T" standard_name="CFC-11_Concentration"                  /> 
     1407          <field field_ref="SMS_CFC11"     name="SMS_CFC11"     standard_name="CFC-11_Concentration"                  /> 
     1408          <field field_ref="SMS_CFC11_E3T" name="SMS_CFC11_E3T" standard_name="CFC-11_Concentration"                  /> 
     1409   </field_group> 
     1410 
     1411    <field_group id="trendCFC12_short" > 
     1412          <!-- cfc12 --> 
     1413          <field field_ref="TOT_CFC12"     name="TOT_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1414          <field field_ref="TOT_CFC12_E3T" name="TOT_CFC12_E3T" standard_name="CFC-12_Concentration"                  /> 
     1415          <field field_ref="TAD_CFC12"     name="TAD_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1416          <field field_ref="TAD_CFC12_E3T" name="TAD_CFC12_E3T" standard_name="CFC-12_Concentration"                  /> 
     1417          <field field_ref="SMS_CFC12"     name="SMS_CFC12"     standard_name="CFC-12_Concentration"                  /> 
     1418          <field field_ref="SMS_CFC12_E3T" name="SMS_CFC12_E3T" standard_name="CFC-12_Concentration"                  /> 
     1419   </field_group> 
     1420 
     1421    <field_group id="trendSF6_short" > 
     1422          <!-- sf6 --> 
     1423          <field field_ref="TOT_SF6"      name="TOT_SF6"      standard_name="SF6_Concentration"                     /> 
     1424          <field field_ref="TOT_SF6_E3T"  name="TOT_SF6_E3T"  standard_name="SF6_Concentration"                     /> 
     1425          <field field_ref="TAD_SF6"      name="TAD_SF6"      standard_name="SF6_Concentration"                     /> 
     1426          <field field_ref="TAD_SF6_E3T"  name="TAD_SF6_E3T"  standard_name="SF6_Concentration"                     /> 
     1427          <field field_ref="SMS_SF6"      name="SMS_SF6"      standard_name="SF6_Concentration"                     /> 
     1428          <field field_ref="SMS_SF6_E3T"  name="SMS_SF6_E3T"  standard_name="SF6_Concentration"                     /> 
     1429   </field_group> 
     1430 
     1431    <field_group id="trendAGE_short" > 
     1432          <!-- age --> 
     1433          <field field_ref="TOT_Age"      name="TOT_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1434          <field field_ref="TOT_Age_E3T"  name="TOT_Age_E3T"  standard_name="sea_water_age_since_surface_contact"   /> 
     1435          <field field_ref="TAD_Age"      name="TAD_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1436          <field field_ref="TAD_Age_E3T"  name="TAD_Age_E3T"  standard_name="sea_water_age_since_surface_contact"   /> 
     1437          <field field_ref="SMS_Age"      name="SMS_Age"      standard_name="sea_water_age_since_surface_contact"   /> 
     1438          <field field_ref="SMS_Age_E3T"  name="SMS_Age_E3T"  standard_name="sea_water_age_since_surface_contact"   /> 
     1439   </field_group> 
     1440 
     1441    <field_group id="trendC14B_short" > 
     1442          <!-- c14 bomb --> 
     1443          <field field_ref="TOT_C14B"      name="TOT_C14B"      standard_name="C14b_Concentration"               /> 
     1444          <field field_ref="TOT_C14B_E3T"  name="TOT_C14B_E3T"  standard_name="C14b_Concentration"               /> 
     1445          <field field_ref="TAD_C14B"      name="TAD_C14B"      standard_name="C14b_Concentration"               /> 
     1446          <field field_ref="TAD_C14B_E3T"  name="TAD_C14B_E3T"  standard_name="C14b_Concentration"               /> 
     1447          <field field_ref="SMS_C14B"      name="SMS_C14B"      standard_name="C14b_Concentration"               /> 
     1448          <field field_ref="SMS_C14B_E3T"  name="SMS_C14B_E3T"  standard_name="C14b_Concentration"               /> 
     1449   </field_group> 
     1450 
     1451 
    11771452    <field_group id="mooring" > 
    11781453      <field field_ref="toce"         name="thetao"   long_name="sea_water_potential_temperature"      /> 
  • branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM/CONFIG/SHARED/namelist_top_ref

    r6312 r8471  
    9898   nn_ctls_trc =   0        !  control surface type in mixed-layer trends (0,1 or n<jpk) 
    9999   rn_ucf_trc  =   1        !  unit conversion factor (=1 -> /seconds ; =86400. -> /day) 
    100    ln_trdmld_trc_restart = .false.  !  restart for ML diagnostics 
    101    ln_trdmld_trc_instant = .true.  !  flag to diagnose trends of instantantaneous or mean ML T/S 
     100   ln_trdmxl_trc_restart = .false.  !  restart for ML diagnostics 
     101   ln_trdmxl_trc_instant = .true.  !  flag to diagnose trends of instantantaneous or mean ML T/S 
    102102   ln_trdtrc(1)  =   .true. 
    103103   ln_trdtrc(2)  =   .true. 
  • branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90

    r8102 r8471  
    2020   USE trd_oce        ! trends: ocean variables 
    2121   USE trdtrc         ! ocean passive mixed layer tracers trends  
     22   USE trc,           ONLY: tra    ! tracer definitions (trn, trb, tra, etc.)  
    2223   USE trdglo         ! trends: global domain averaged 
    2324   USE trdpen         ! trends: Potential ENergy 
     
    170171         CASE( jptra_yad )   ;   CALL trd_tra_adv( ptrd , pun , ptra, 'Y', ztrds )  
    171172         CASE( jptra_zad )   ;   CALL trd_tra_adv( ptrd , pun , ptra, 'Z', ztrds )  
     173         CASE( jptra_zdfp )           ! diagnose the "PURE" Kz trend (here: just before the swap) 
     174            !                         ! iso-neutral diffusion case otherwise 
     175            !                         jptra_zdf is "PURE" 
     176            CALL wrk_alloc( jpi, jpj, jpk, zws ) 
     177            ! 
     178            zws(:,:, 1 ) = 0._wp                        ! vertical diffusive fluxes 
     179            zws(:,:,jpk) = 0._wp   
     180            DO jk = 2, jpk 
     181               zws(:,:,jk) = avt(:,:,jk) * (tra(:,:,jk-1,ktra) - tra(:,:,jk,ktra) ) / fse3w(:,:,jk) * tmask(:,:,jk) 
     182            END DO 
     183            ! 
     184            ztrds(:,:,jpk) = 0._wp    
     185            DO jk = 1, jpkm1 
     186               ztrds(:,:,jk) = ( zws(:,:,jk) - zws(:,:,jk+1) ) / fse3t(:,:,jk) 
     187            END DO 
     188            CALL wrk_dealloc( jpi, jpj, jpk, zws ) 
     189            ! 
    172190         CASE DEFAULT                 ! other trends: just masked  
    173191                                 ztrds(:,:,:) = ptrd(:,:,:) * tmask(:,:,:) 
  • branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90

    r8398 r8471  
    2727   !!---------------------------------------------------------------------- 
    2828   USE oce_trc         ! ocean dynamics and tracers variables 
     29   USE domvvl          ! variable volume   
    2930   USE trc             ! ocean passive tracers variables 
    3031   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    3132   USE prtctl_trc      ! Print control for debbuging 
     33   USE trcnam_trp      ! passive tracers transport namelist variables 
    3234   USE trd_oce 
    3335   USE trdtra 
     
    129131      IF( l_trdtrc )  THEN 
    130132         CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrdt )  !* store now fields before applying the Asselin filter 
    131          ztrdt(:,:,:,:)  = trn(:,:,:,:) 
     133         ztrdt(:,:,jpk,:) = 0._wp 
     134         IF( ln_trcldf_iso ) THEN                       ! diagnose the "pure" Kz diffusive trend  
     135            DO jn = 1, jptra 
     136               CALL trd_tra( kt, 'TRC', jn, jptra_zdfp, ztrdt(:,:,:,jn) ) 
     137            ENDDO 
     138         ENDIF 
     139         ! total trend for the non-time-filtered variables. 
     140         ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn 
     141         ! cancel from tsn terms 
     142         IF( lk_vvl ) THEN 
     143            DO jn = 1, jptra 
     144               DO jk = 1, jpkm1 
     145                  zfact = 1.0 / rdttrc(jk) 
     146                  ztrdt(:,:,jk,jn) = ( tra(:,:,jk,jn)*fse3t_a(:,:,jk) / fse3t_n(:,:,jk) - & 
     147                                       trn(:,:,jk,jn) ) * zfact 
     148               END DO 
     149            END DO 
     150         ELSE 
     151            DO jn = 1, jptra 
     152               DO jk = 1, jpkm1 
     153                  zfact = 1.0 / rdttrc(jk) 
     154                  ztrdt(:,:,jk,jn) = ( tra(:,:,jk,jn) - trn(:,:,jk,jn) ) * zfact 
     155               END DO 
     156            END DO 
     157         END IF 
     158         DO jn = 1, jptra 
     159            CALL trd_tra( kt, 'TRC', jn, jptra_tot, ztrdt(:,:,:,jn) ) 
     160         ENDDO 
     161         IF( .NOT.lk_vvl )  THEN 
     162            ! Store now fields before applying the Asselin filter  
     163            ! in order to calculate Asselin filter trend later. 
     164            ztrdt(:,:,:,:)  = trn(:,:,:,:) 
     165         ENDIF 
    132166      ENDIF 
    133167      ! Leap-Frog + Asselin filter time stepping 
     
    137171            DO jk = 1, jpkm1 
    138172               trn(:,:,jk,jn) = tra(:,:,jk,jn) 
    139                trb(:,:,jk,jn) = trn(:,:,jk,jn)   
    140173            END DO 
    141174         END DO 
     175         IF (l_trdtrc.AND.lk_vvl) THEN      ! Zero Asselin filter contribution 
     176                                            ! must be explicitly written out since for vvl 
     177                                            ! Asselin filter is output by 
     178                                            ! tra_nxt_vvl that is not called on 
     179                                            ! this time step 
     180            ztrdt(:,:,:,:) = 0._wp 
     181            DO jn = 1, jptra 
     182               CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt(:,:,:,jn) ) 
     183            ENDDO 
     184         END IF 
     185 
    142186         !                                               
    143187      ELSE 
     
    153197 
    154198      ! trends computation 
    155       IF( l_trdtrc ) THEN                                      ! trends 
     199      IF( l_trdtrc.AND..NOT.lk_vvl) THEN                                      ! trends 
    156200         DO jn = 1, jptra 
    157201            DO jk = 1, jpkm1 
    158202               zfact = 1.e0 / r2dt(jk)   
    159203               ztrdt(:,:,jk,jn) = ( trb(:,:,jk,jn) - ztrdt(:,:,jk,jn) ) * zfact  
    160                CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt ) 
    161             END DO 
     204            END DO 
     205            CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt(:,:,:,jn) ) 
    162206         END DO 
    163          CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrdt )  
    164207      END IF 
     208      ! 
     209      IF( l_trdtrc)  CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrdt )  
    165210      ! 
    166211      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
  • branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90

    r5385 r8471  
    1515   !!---------------------------------------------------------------------- 
    1616   USE oce_trc         ! ocean dynamics and active tracers 
     17   USE domvvl          ! variable volume        
    1718   USE trc             ! ocean passive tracers variables 
    1819   USE trcnam_trp      ! passive tracers transport namelist variables 
     
    9899 
    99100      IF( l_trdtrc )   THEN                      ! save the vertical diffusive trends for further diagnostics 
     101         !! JPALM -- 18-08-2017 -- vvl case, do as done by G Nurser in trazdf  
     102         IF( lk_vvl ) THEN 
     103            DO jn = 1, jptra 
     104               DO jk = 1, jpkm1 
     105                  ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn)*fse3t_a(:,:,jk) - & 
     106                                          trn(:,:,jk,jn)*fse3t_b(:,:,jk) ) & 
     107                                       / (fse3t_n(:,:,jk)*r2dtra(jk)) ) - ztrtrd(:,:,jk,jn) 
     108               END DO 
     109            END DO 
     110         ELSE 
     111            DO jn = 1, jptra 
     112               DO jk = 1, jpkm1 
     113                  ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn) - trb(:,:,jk,jn) ) / r2dt(jk) ) - ztrtrd(:,:,jk,jn) 
     114               END DO 
     115            END DO 
     116         ENDIF  
    100117         DO jn = 1, jptra 
    101             DO jk = 1, jpkm1 
    102                ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn) - trb(:,:,jk,jn) ) / r2dt(jk) ) - ztrtrd(:,:,jk,jn) 
    103             END DO 
    104118            CALL trd_tra( kt, 'TRC', jn, jptra_zdf, ztrtrd(:,:,:,jn) ) 
    105119         END DO 
  • branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc.F90

    r5215 r8471  
    1919   USE trdmxl_trc        ! Mixed layer trends diag. 
    2020   USE iom               ! I/O library 
     21# if defined key_debug_medusa 
     22   USE trcstat,          ONLY: trc_rst_dia_stat      
     23# endif 
    2124 
    2225   IMPLICIT NONE 
     
    8689 
    8790      IF( lk_trdtrc .AND. ln_trdtrc( kjn ) ) THEN 
    88          ! 
     91      !! JPALM -- 17-08-2017 -- modif following trd_tra_iom as suggested by Georges 
     92      !!                     -- add jptra_tot; jptra_totad; jptra_zdfp 
     93      !!                     -- shange to output trends every 2 time-step, except tot. 
     94      !!                     -- move cltra and iomput inside the select case 
     95      !!                     So if an non-wanted case arrives here it will not go 
     96      !!                     through cltra (without value) and break iomput. 
     97      !!                     -- Add iom_use in prevision of not using All trends 
     98      !!                     for All passive tracers (will create a HUGE 3D file otherwise -- 
     99      !!                     might be interested in very few of them : SMS and TOT probably) 
     100         ! 
     101         SELECT CASE( ktrd ) 
     102         !! tot - output every time-step: 
     103         CASE( jptra_tot  )       ;    WRITE (cltra,'("TOT_",4a)') 
     104                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     105                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     106         END SELECT 
     107         ! 
     108       IF( MOD( kt, 2 ) == 0 ) THEN 
    89109         SELECT CASE( ktrd ) 
    90110         CASE( jptra_xad  )       ;    WRITE (cltra,'("XAD_",4a)') 
     111                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     112                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
    91113         CASE( jptra_yad  )       ;    WRITE (cltra,'("YAD_",4a)') 
    92          CASE( jptra_zad  )       ;    WRITE (cltra,'("ZAD_",4a)') 
     114                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     115                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     116         CASE( jptra_zad  )       ;    WRITE (cltra,'("ZAD_",4a)')      !! care vvl case 
     117                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     118                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     119         CASE( jptra_totad  )     ;    WRITE (cltra,'("TAD_",4a)')      !! total adv 
     120                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     121                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
    93122         CASE( jptra_ldf  )       ;    WRITE (cltra,'("LDF_",4a)') 
     123                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     124                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
    94125         CASE( jptra_bbl  )       ;    WRITE (cltra,'("BBL_",4a)') 
     126                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     127                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
    95128         CASE( jptra_nsr  )       ;    WRITE (cltra,'("FOR_",4a)') 
     129                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     130                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
    96131         CASE( jptra_zdf  )       ;    WRITE (cltra,'("ZDF_",4a)') 
     132                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     133                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     134         CASE( jptra_zdfp )       ;    WRITE (cltra,'("ZDP_",4a)') 
     135                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     136                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
    97137         CASE( jptra_dmp  )       ;    WRITE (cltra,'("DMP_",4a)') 
     138                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     139                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
    98140         CASE( jptra_sms  )       ;    WRITE (cltra,'("SMS_",4a)') 
     141                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     142                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     143         CASE( jptra_radb )       ;    WRITE (cltra,'("RDB_",4a)') 
     144                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     145                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     146         CASE( jptra_radn )       ;    WRITE (cltra,'("RDN_",4a)') 
     147                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     148                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     149         END SELECT 
     150       ELSE IF( MOD( kt, 2 ) == 1 ) THEN 
     151         SELECT CASE( ktrd ) 
    99152         CASE( jptra_atf  )       ;    WRITE (cltra,'("ATF_",4a)') 
    100          CASE( jptra_radb )       ;    WRITE (cltra,'("RDB_",4a)') 
    101          CASE( jptra_radn )       ;    WRITE (cltra,'("RDN_",4a)') 
    102          END SELECT 
    103                                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
    104                                           CALL iom_put( cltra,  ptrtrd(:,:,:) ) 
     153                           cltra = TRIM(cltra)//TRIM(ctrcnm(kjn)) 
     154                           CALL trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     155         END SELECT 
     156       END IF 
    105157         ! 
    106158      END IF 
     
    123175 
    124176   END SUBROUTINE trd_trc_bio 
     177 
     178   SUBROUTINE trd_trc_iomput( cltra, ptrtrd, kjn, kt ) 
     179      !!---------------------------------------------------------------------- 
     180      !!                  ***  ROUTINE trd_trc_iomput  *** 
     181      !!---------------------------------------------------------------------- 
     182      INTEGER, INTENT( in )  ::   kt                                  ! timestep 
     183      INTEGER, INTENT( in )  ::   kjn                                 ! biotrend index 
     184      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( inout )  ::   ptrtrd  ! var trend 
     185      CHARACTER (len=*),INTENT( in ) :: cltra                         ! trend name 
     186      !!---------------------------------------------------------------------- 
     187 
     188 
     189      IF  (iom_use(cltra)) THEN 
     190# if defined key_debug_medusa 
     191         IF(lwp) WRITE(numout,*) ' TREND stats (min, max,sum) kt = ',kt ,' jn = ',kjn 
     192         CALL trc_rst_dia_stat( ptrtrd(:,:,1), cltra) 
     193# endif 
     194         CALL iom_put( cltra,  ptrtrd(:,:,:) ) 
     195# if defined key_debug_medusa 
     196      ELSE 
     197         IF(lwp) WRITE(numout,*) & 
     198                      ' TREND -- No output asked for ',cltra,' kt = ',kt,' jn = ',kjn 
     199         CALL trc_rst_dia_stat( ptrtrd(:,:,1), cltra) 
     200# endif 
     201      ENDIF 
     202 
     203   END SUBROUTINE trd_trc_iomput 
     204 
     205 
    125206#else 
    126207   !!---------------------------------------------------------------------- 
  • branches/2017/nemo_v3_6_STABLE_trdtrc/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r8353 r8471  
    5555      !! ** Method  : - read passive tracer namelist  
    5656      !!              - read namelist of each defined SMS model 
    57       !!                ( (PISCES, CFC, MY_TRC ) 
    58       !!--------------------------------------------------------------------- 
    59       INTEGER  ::   jn                  ! dummy loop indice 
     57      !!                ( (PISCES, CFC, MY_TRC, MEDUSA, IDTRA, Age ) 
     58      !!--------------------------------------------------------------------- 
     59      INTEGER ::  ierr 
     60#if defined key_trdmxl_trc  || defined key_trdtrc 
     61      NAMELIST/namtrc_trd/ nn_trd_trc, nn_ctls_trc, rn_ucf_trc, & 
     62         &                ln_trdmxl_trc_restart, ln_trdmxl_trc_instant, & 
     63         &                cn_trdrst_trc_in, cn_trdrst_trc_out, ln_trdtrc 
     64#endif 
     65 
     66      INTEGER  ::   jn, jk              ! dummy loop indice 
     67      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     68      !!--------------------------------------------------------------------- 
     69 
     70 
    6071      !                                        !   Parameters of the run  
    6172      IF( .NOT. lk_offline ) CALL trc_nam_run 
     
    145156      ENDIF 
    146157 
    147       ! 
    148    END SUBROUTINE trc_nam 
    149  
    150    SUBROUTINE trc_nam_run 
    151       !!--------------------------------------------------------------------- 
    152       !!                     ***  ROUTINE trc_nam  *** 
    153       !! 
    154       !! ** Purpose :   read options for the passive tracer run (namelist)  
    155       !! 
    156       !!--------------------------------------------------------------------- 
    157       NAMELIST/namtrc_run/ nn_dttrc, nn_writetrc, ln_rsttr, nn_rsttr, ln_top_euler, & 
    158         &                  cn_trcrst_indir, cn_trcrst_outdir, cn_trcrst_in, cn_trcrst_out 
    159  
    160  
    161       INTEGER  ::   ios                 ! Local integer output status for namelist read 
    162  
    163       !!--------------------------------------------------------------------- 
    164  
    165  
    166       IF(lwp) WRITE(numout,*) 'trc_nam : read the passive tracer namelists' 
    167       IF(lwp) WRITE(numout,*) '~~~~~~~' 
    168  
    169       CALL ctl_opn( numnat_ref, 'namelist_top_ref'   , 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    170       CALL ctl_opn( numnat_cfg, 'namelist_top_cfg'   , 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    171       IF(lwm) CALL ctl_opn( numont, 'output.namelist.top', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., 1 ) 
    172  
    173       REWIND( numnat_ref )              ! Namelist namtrc in reference namelist : Passive tracer variables 
    174       READ  ( numnat_ref, namtrc_run, IOSTAT = ios, ERR = 901) 
    175 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in reference namelist', lwp ) 
    176  
    177       REWIND( numnat_cfg )              ! Namelist namtrc in configuration namelist : Passive tracer variables 
    178       READ  ( numnat_cfg, namtrc_run, IOSTAT = ios, ERR = 902 ) 
    179 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in configuration namelist', lwp ) 
    180       IF(lwm) WRITE ( numont, namtrc_run ) 
    181  
    182       !  computes the first time step of tracer model 
    183       nittrc000 = nit000 + nn_dttrc - 1 
    184  
    185       IF(lwp) THEN                   ! control print 
    186          WRITE(numout,*) 
    187          WRITE(numout,*) ' Namelist : namtrc_run' 
    188          WRITE(numout,*) '   time step freq. for passive tracer           nn_dttrc      = ', nn_dttrc 
    189          WRITE(numout,*) '   restart  for passive tracer                  ln_rsttr      = ', ln_rsttr 
    190          WRITE(numout,*) '   control of time step for passive tracer      nn_rsttr      = ', nn_rsttr 
    191          WRITE(numout,*) '   first time step for pass. trac.              nittrc000     = ', nittrc000 
    192          WRITE(numout,*) '   frequency of outputs for passive tracers     nn_writetrc   = ', nn_writetrc  
    193          WRITE(numout,*) '   Use euler integration for TRC (y/n)          ln_top_euler  = ', ln_top_euler 
    194          WRITE(numout,*) ' ' 
    195       ENDIF 
    196       ! 
    197     END SUBROUTINE trc_nam_run 
    198  
    199    SUBROUTINE trc_nam_ice 
    200       !!--------------------------------------------------------------------- 
    201       !!                     ***  ROUTINE trc_nam_ice *** 
    202       !! 
    203       !! ** Purpose :   Read the namelist for the ice effect on tracers 
    204       !! 
    205       !! ** Method  : - 
    206       !! 
    207       !!--------------------------------------------------------------------- 
    208       ! --- Variable declarations --- ! 
    209       INTEGER :: jn      ! dummy loop indices 
    210       INTEGER :: ios     ! Local integer output status for namelist read 
    211  
    212       ! --- Namelist declarations --- ! 
    213       TYPE(TRC_I_NML), DIMENSION(jptra) :: sn_tri_tracer 
    214       NAMELIST/namtrc_ice/ nn_ice_tr, sn_tri_tracer 
    215  
    216       IF(lwp) THEN 
    217          WRITE(numout,*) 
    218          WRITE(numout,*) 'trc_nam_ice : Read the namelist for trc_ice' 
    219          WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 
    220       ENDIF 
    221  
    222       IF( nn_timing == 1 )  CALL timing_start('trc_nam_ice') 
    223  
    224       ! 
    225       REWIND( numnat_ref )              ! Namelist namtrc_ice in reference namelist : Passive tracer input data 
    226       READ  ( numnat_ref, namtrc_ice, IOSTAT = ios, ERR = 901) 
    227  901  IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtrc_ice in reference namelist ', lwp ) 
    228  
    229       REWIND( numnat_cfg )              ! Namelist namtrc_ice in configuration namelist : Pisces external sources of nutrients 
    230       READ  ( numnat_cfg, namtrc_ice, IOSTAT = ios, ERR = 902 ) 
    231  902  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ice in configuration namelist', lwp ) 
    232  
    233       IF( lwp ) THEN 
    234          WRITE(numout,*) ' ' 
    235          WRITE(numout,*) ' Sea ice tracers option (nn_ice_tr) : ', nn_ice_tr 
    236          WRITE(numout,*) ' ' 
    237       ENDIF 
    238  
    239       ! Assign namelist stuff 
    240       DO jn = 1, jptra 
    241          trc_ice_ratio(jn)  = sn_tri_tracer(jn)%trc_ratio 
    242          trc_ice_prescr(jn) = sn_tri_tracer(jn)%trc_prescr 
    243          cn_trc_o      (jn) = sn_tri_tracer(jn)%ctrc_o 
    244       END DO 
    245  
    246       IF( nn_timing == 1 )   CALL timing_stop('trc_nam_ice') 
    247       ! 
    248    END SUBROUTINE trc_nam_ice 
    249  
    250    SUBROUTINE trc_nam_trc 
    251       !!--------------------------------------------------------------------- 
    252       !!                     ***  ROUTINE trc_nam  *** 
    253       !! 
    254       !! ** Purpose :   read options for the passive tracer run (namelist)  
    255       !! 
    256       !!--------------------------------------------------------------------- 
    257       TYPE(PTRACER), DIMENSION(jptra) :: sn_tracer  ! type of tracer for saving if not key_iomput 
    258       !! 
    259       NAMELIST/namtrc/ sn_tracer, ln_trcdta,ln_trcdmp, ln_trcdmp_clo 
    260    
    261       INTEGER  ::   ios                 ! Local integer output status for namelist read 
    262       INTEGER  ::   jn                  ! dummy loop indice 
    263       !!--------------------------------------------------------------------- 
    264       IF(lwp) WRITE(numout,*) 
    265       IF(lwp) WRITE(numout,*) 'trc_nam : read the passive tracer namelists' 
    266       IF(lwp) WRITE(numout,*) '~~~~~~~' 
    267  
    268  
    269       REWIND( numnat_ref )              ! Namelist namtrc in reference namelist : Passive tracer variables 
    270       READ  ( numnat_ref, namtrc, IOSTAT = ios, ERR = 901) 
    271 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in reference namelist', lwp ) 
    272  
    273       REWIND( numnat_cfg )              ! Namelist namtrc in configuration namelist : Passive tracer variables 
    274       READ  ( numnat_cfg, namtrc, IOSTAT = ios, ERR = 902 ) 
    275 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in configuration namelist', lwp ) 
    276       IF(lwm) WRITE ( numont, namtrc ) 
    277  
    278       DO jn = 1, jptra 
    279          ctrcnm    (jn) = TRIM( sn_tracer(jn)%clsname ) 
    280          ctrcln    (jn) = TRIM( sn_tracer(jn)%cllname ) 
    281          ctrcun    (jn) = TRIM( sn_tracer(jn)%clunit  ) 
    282          ln_trc_ini(jn) =       sn_tracer(jn)%llinit 
    283          ln_trc_wri(jn) =       sn_tracer(jn)%llsave 
    284       END DO 
    285        
    286     END SUBROUTINE trc_nam_trc 
    287  
    288  
    289    SUBROUTINE trc_nam_dia 
    290       !!--------------------------------------------------------------------- 
    291       !!                     ***  ROUTINE trc_nam_dia  *** 
    292       !! 
    293       !! ** Purpose :   read options for the passive tracer diagnostics 
    294       !! 
    295       !! ** Method  : - read passive tracer namelist  
    296       !!              - read namelist of each defined SMS model 
    297       !!                ( (PISCES, CFC, MY_TRC ) 
    298       !!--------------------------------------------------------------------- 
    299       INTEGER ::  ierr 
    300 #if defined key_trdmxl_trc  || defined key_trdtrc 
    301       NAMELIST/namtrc_trd/ nn_trd_trc, nn_ctls_trc, rn_ucf_trc, & 
    302          &                ln_trdmxl_trc_restart, ln_trdmxl_trc_instant, & 
    303          &                cn_trdrst_trc_in, cn_trdrst_trc_out, ln_trdtrc 
    304 #endif 
    305       NAMELIST/namtrc_dia/ ln_diatrc, ln_diabio, nn_writedia, nn_writebio 
    306  
    307       INTEGER  ::   jn         
    308       INTEGER  ::   ios                 ! Local integer output status for namelist read 
    309       !!--------------------------------------------------------------------- 
    310  
    311       IF(lwp) WRITE(numout,*)  
    312       IF(lwp) WRITE(numout,*) 'trc_nam_dia : read the passive tracer diagnostics options' 
    313       IF(lwp) WRITE(numout,*) '~~~~~~~' 
    314  
    315       IF(lwp) WRITE(numout,*) 
    316       IF(lwp) WRITE(numout,*) 'trc_nam_dia : read the passive tracer diagnostics options' 
    317       IF(lwp) WRITE(numout,*) '~~~~~~~' 
    318  
    319       REWIND( numnat_ref )              ! Namelist namtrc_dia in reference namelist : Passive tracer diagnostics 
    320       READ  ( numnat_ref, namtrc_dia, IOSTAT = ios, ERR = 903) 
    321 903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in reference namelist', lwp ) 
    322  
    323       REWIND( numnat_cfg )              ! Namelist namtrc_dia in configuration namelist : Passive tracer diagnostics 
    324       READ  ( numnat_cfg, namtrc_dia, IOSTAT = ios, ERR = 904 ) 
    325 904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in configuration namelist', lwp ) 
    326       IF(lwm) WRITE ( numont, namtrc_dia ) 
    327  
    328       IF(lwp) THEN 
    329          WRITE(numout,*) 
    330          WRITE(numout,*) 
    331          WRITE(numout,*) ' Namelist : namtrc_dia' 
    332          WRITE(numout,*) '    save additionnal diagnostics arrays         ln_diatrc   = ', ln_diatrc 
    333          WRITE(numout,*) '    save additionnal biology diagnostics arrays ln_diabio   = ', ln_diabio 
    334          WRITE(numout,*) '    frequency of outputs for additional arrays  nn_writedia = ', nn_writedia 
    335          WRITE(numout,*) '    frequency of outputs for biological trends  nn_writebio = ', nn_writebio 
    336          WRITE(numout,*) ' ' 
    337       ENDIF 
    338  
    339       IF( ln_diatrc ) THEN  
    340          ALLOCATE( trc2d(jpi,jpj,jpdia2d), trc3d(jpi,jpj,jpk,jpdia3d),  & 
    341            &       ctrc2d(jpdia2d), ctrc2l(jpdia2d), ctrc2u(jpdia2d) ,  &  
    342            &       ctrc3d(jpdia3d), ctrc3l(jpdia3d), ctrc3u(jpdia3d) ,  STAT = ierr )  
    343          IF( ierr > 0 )   CALL ctl_stop( 'STOP', 'trcnam: unable to allocate add. diag. array' ) 
    344          ! 
    345          trc2d(:,:,:  ) = 0._wp  ;   ctrc2d(:) = ' '   ;   ctrc2l(:) = ' '    ;    ctrc2u(:) = ' '  
    346          trc3d(:,:,:,:) = 0._wp  ;   ctrc3d(:) = ' '   ;   ctrc3l(:) = ' '    ;    ctrc3u(:) = ' '  
    347          ! 
    348       ENDIF 
    349  
    350       IF( ln_diabio .OR. l_trdtrc ) THEN 
    351          ALLOCATE( trbio (jpi,jpj,jpk,jpdiabio) , & 
    352            &       ctrbio(jpdiabio), ctrbil(jpdiabio), ctrbiu(jpdiabio), STAT = ierr )  
    353          IF( ierr > 0 )   CALL ctl_stop( 'STOP', 'trcnam: unable to allocate bio. diag. array' ) 
    354          ! 
    355          trbio(:,:,:,:) = 0._wp  ;   ctrbio(:) = ' '   ;   ctrbil(:) = ' '    ;    ctrbiu(:) = ' '  
    356          ! 
    357       ENDIF 
    358158 
    359159#if defined key_trdmxl_trc || defined key_trdtrc 
     
    384184#endif 
    385185      ! 
     186   END SUBROUTINE trc_nam 
     187 
     188   SUBROUTINE trc_nam_run 
     189      !!--------------------------------------------------------------------- 
     190      !!                     ***  ROUTINE trc_nam  *** 
     191      !! 
     192      !! ** Purpose :   read options for the passive tracer run (namelist)  
     193      !! 
     194      !!--------------------------------------------------------------------- 
     195      NAMELIST/namtrc_run/ nn_dttrc, nn_writetrc, ln_rsttr, nn_rsttr, ln_top_euler, & 
     196        &                  cn_trcrst_indir, cn_trcrst_outdir, cn_trcrst_in, cn_trcrst_out 
     197 
     198 
     199      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     200 
     201      !!--------------------------------------------------------------------- 
     202 
     203 
     204      IF(lwp) WRITE(numout,*) 'trc_nam : read the passive tracer namelists' 
     205      IF(lwp) WRITE(numout,*) '~~~~~~~' 
     206 
     207      CALL ctl_opn( numnat_ref, 'namelist_top_ref'   , 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     208      CALL ctl_opn( numnat_cfg, 'namelist_top_cfg'   , 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     209      IF(lwm) CALL ctl_opn( numont, 'output.namelist.top', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., 1 ) 
     210 
     211      REWIND( numnat_ref )              ! Namelist namtrc in reference namelist : Passive tracer variables 
     212      READ  ( numnat_ref, namtrc_run, IOSTAT = ios, ERR = 901) 
     213901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in reference namelist', lwp ) 
     214 
     215      REWIND( numnat_cfg )              ! Namelist namtrc in configuration namelist : Passive tracer variables 
     216      READ  ( numnat_cfg, namtrc_run, IOSTAT = ios, ERR = 902 ) 
     217902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in configuration namelist', lwp ) 
     218      IF(lwm) WRITE ( numont, namtrc_run ) 
     219 
     220      !  computes the first time step of tracer model 
     221      nittrc000 = nit000 + nn_dttrc - 1 
     222 
     223      IF(lwp) THEN                   ! control print 
     224         WRITE(numout,*) 
     225         WRITE(numout,*) ' Namelist : namtrc_run' 
     226         WRITE(numout,*) '   time step freq. for passive tracer           nn_dttrc      = ', nn_dttrc 
     227         WRITE(numout,*) '   restart  for passive tracer                  ln_rsttr      = ', ln_rsttr 
     228         WRITE(numout,*) '   control of time step for passive tracer      nn_rsttr      = ', nn_rsttr 
     229         WRITE(numout,*) '   first time step for pass. trac.              nittrc000     = ', nittrc000 
     230         WRITE(numout,*) '   frequency of outputs for passive tracers     nn_writetrc   = ', nn_writetrc  
     231         WRITE(numout,*) '   Use euler integration for TRC (y/n)          ln_top_euler  = ', ln_top_euler 
     232         WRITE(numout,*) ' ' 
     233      ENDIF 
     234      ! 
     235    END SUBROUTINE trc_nam_run 
     236 
     237   SUBROUTINE trc_nam_ice 
     238      !!--------------------------------------------------------------------- 
     239      !!                     ***  ROUTINE trc_nam_ice *** 
     240      !! 
     241      !! ** Purpose :   Read the namelist for the ice effect on tracers 
     242      !! 
     243      !! ** Method  : - 
     244      !! 
     245      !!--------------------------------------------------------------------- 
     246      ! --- Variable declarations --- ! 
     247      INTEGER :: jn      ! dummy loop indices 
     248      INTEGER :: ios     ! Local integer output status for namelist read 
     249 
     250      ! --- Namelist declarations --- ! 
     251      TYPE(TRC_I_NML), DIMENSION(jptra) :: sn_tri_tracer 
     252      NAMELIST/namtrc_ice/ nn_ice_tr, sn_tri_tracer 
     253 
     254      IF(lwp) THEN 
     255         WRITE(numout,*) 
     256         WRITE(numout,*) 'trc_nam_ice : Read the namelist for trc_ice' 
     257         WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 
     258      ENDIF 
     259 
     260      IF( nn_timing == 1 )  CALL timing_start('trc_nam_ice') 
     261 
     262      ! 
     263      REWIND( numnat_ref )              ! Namelist namtrc_ice in reference namelist : Passive tracer input data 
     264      READ  ( numnat_ref, namtrc_ice, IOSTAT = ios, ERR = 901) 
     265 901  IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtrc_ice in reference namelist ', lwp ) 
     266 
     267      REWIND( numnat_cfg )              ! Namelist namtrc_ice in configuration namelist : Pisces external sources of nutrients 
     268      READ  ( numnat_cfg, namtrc_ice, IOSTAT = ios, ERR = 902 ) 
     269 902  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ice in configuration namelist', lwp ) 
     270 
     271      IF( lwp ) THEN 
     272         WRITE(numout,*) ' ' 
     273         WRITE(numout,*) ' Sea ice tracers option (nn_ice_tr) : ', nn_ice_tr 
     274         WRITE(numout,*) ' ' 
     275      ENDIF 
     276 
     277      ! Assign namelist stuff 
     278      DO jn = 1, jptra 
     279         trc_ice_ratio(jn)  = sn_tri_tracer(jn)%trc_ratio 
     280         trc_ice_prescr(jn) = sn_tri_tracer(jn)%trc_prescr 
     281         cn_trc_o      (jn) = sn_tri_tracer(jn)%ctrc_o 
     282      END DO 
     283 
     284      IF( nn_timing == 1 )   CALL timing_stop('trc_nam_ice') 
     285      ! 
     286   END SUBROUTINE trc_nam_ice 
     287 
     288   SUBROUTINE trc_nam_trc 
     289      !!--------------------------------------------------------------------- 
     290      !!                     ***  ROUTINE trc_nam  *** 
     291      !! 
     292      !! ** Purpose :   read options for the passive tracer run (namelist)  
     293      !! 
     294      !!--------------------------------------------------------------------- 
     295      TYPE(PTRACER), DIMENSION(jptra) :: sn_tracer  ! type of tracer for saving if not key_iomput 
     296      !! 
     297      NAMELIST/namtrc/ sn_tracer, ln_trcdta,ln_trcdmp, ln_trcdmp_clo 
     298   
     299      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     300      INTEGER  ::   jn                  ! dummy loop indice 
     301      !!--------------------------------------------------------------------- 
     302      IF(lwp) WRITE(numout,*) 
     303      IF(lwp) WRITE(numout,*) 'trc_nam : read the passive tracer namelists' 
     304      IF(lwp) WRITE(numout,*) '~~~~~~~' 
     305 
     306 
     307      REWIND( numnat_ref )              ! Namelist namtrc in reference namelist : Passive tracer variables 
     308      READ  ( numnat_ref, namtrc, IOSTAT = ios, ERR = 901) 
     309901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in reference namelist', lwp ) 
     310 
     311      REWIND( numnat_cfg )              ! Namelist namtrc in configuration namelist : Passive tracer variables 
     312      READ  ( numnat_cfg, namtrc, IOSTAT = ios, ERR = 902 ) 
     313902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in configuration namelist', lwp ) 
     314      IF(lwm) WRITE ( numont, namtrc ) 
     315 
     316      DO jn = 1, jptra 
     317         ctrcnm    (jn) = TRIM( sn_tracer(jn)%clsname ) 
     318         ctrcln    (jn) = TRIM( sn_tracer(jn)%cllname ) 
     319         ctrcun    (jn) = TRIM( sn_tracer(jn)%clunit  ) 
     320         ln_trc_ini(jn) =       sn_tracer(jn)%llinit 
     321         ln_trc_wri(jn) =       sn_tracer(jn)%llsave 
     322      END DO 
     323       
     324    END SUBROUTINE trc_nam_trc 
     325 
     326 
     327   SUBROUTINE trc_nam_dia 
     328      !!--------------------------------------------------------------------- 
     329      !!                     ***  ROUTINE trc_nam_dia  *** 
     330      !! 
     331      !! ** Purpose :   read options for the passive tracer diagnostics 
     332      !! 
     333      !! ** Method  : - read passive tracer namelist  
     334      !!              - read namelist of each defined SMS model 
     335      !!                ( (PISCES, CFC, MY_TRC ) 
     336      !!--------------------------------------------------------------------- 
     337      INTEGER ::  ierr 
     338#if defined key_trdmxl_trc  || defined key_trdtrc 
     339      NAMELIST/namtrc_trd/ nn_trd_trc, nn_ctls_trc, rn_ucf_trc, & 
     340         &                ln_trdmxl_trc_restart, ln_trdmxl_trc_instant, & 
     341         &                cn_trdrst_trc_in, cn_trdrst_trc_out, ln_trdtrc 
     342#endif 
     343      NAMELIST/namtrc_dia/ ln_diatrc, ln_diabio, nn_writedia, nn_writebio 
     344 
     345      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     346      !!--------------------------------------------------------------------- 
     347 
     348      IF(lwp) WRITE(numout,*)  
     349      IF(lwp) WRITE(numout,*) 'trc_nam_dia : read the passive tracer diagnostics options' 
     350      IF(lwp) WRITE(numout,*) '~~~~~~~' 
     351 
     352      IF(lwp) WRITE(numout,*) 
     353      IF(lwp) WRITE(numout,*) 'trc_nam_dia : read the passive tracer diagnostics options' 
     354      IF(lwp) WRITE(numout,*) '~~~~~~~' 
     355 
     356      REWIND( numnat_ref )              ! Namelist namtrc_dia in reference namelist : Passive tracer diagnostics 
     357      READ  ( numnat_ref, namtrc_dia, IOSTAT = ios, ERR = 903) 
     358903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in reference namelist', lwp ) 
     359 
     360      REWIND( numnat_cfg )              ! Namelist namtrc_dia in configuration namelist : Passive tracer diagnostics 
     361      READ  ( numnat_cfg, namtrc_dia, IOSTAT = ios, ERR = 904 ) 
     362904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in configuration namelist', lwp ) 
     363      IF(lwm) WRITE ( numont, namtrc_dia ) 
     364 
     365      IF(lwp) THEN 
     366         WRITE(numout,*) 
     367         WRITE(numout,*) 
     368         WRITE(numout,*) ' Namelist : namtrc_dia' 
     369         WRITE(numout,*) '    save additionnal diagnostics arrays         ln_diatrc   = ', ln_diatrc 
     370         WRITE(numout,*) '    save additionnal biology diagnostics arrays ln_diabio   = ', ln_diabio 
     371         WRITE(numout,*) '    frequency of outputs for additional arrays  nn_writedia = ', nn_writedia 
     372         WRITE(numout,*) '    frequency of outputs for biological trends  nn_writebio = ', nn_writebio 
     373         WRITE(numout,*) ' ' 
     374      ENDIF 
     375 
     376      IF( ln_diatrc ) THEN  
     377         ALLOCATE( trc2d(jpi,jpj,jpdia2d), trc3d(jpi,jpj,jpk,jpdia3d),  & 
     378           &       ctrc2d(jpdia2d), ctrc2l(jpdia2d), ctrc2u(jpdia2d) ,  &  
     379           &       ctrc3d(jpdia3d), ctrc3l(jpdia3d), ctrc3u(jpdia3d) ,  STAT = ierr )  
     380         IF( ierr > 0 )   CALL ctl_stop( 'STOP', 'trcnam: unable to allocate add. diag. array' ) 
     381         ! 
     382         trc2d(:,:,:  ) = 0._wp  ;   ctrc2d(:) = ' '   ;   ctrc2l(:) = ' '    ;    ctrc2u(:) = ' '  
     383         trc3d(:,:,:,:) = 0._wp  ;   ctrc3d(:) = ' '   ;   ctrc3l(:) = ' '    ;    ctrc3u(:) = ' '  
     384         ! 
     385      ENDIF 
     386 
     387      IF( ln_diabio .OR. l_trdtrc ) THEN 
     388         ALLOCATE( trbio (jpi,jpj,jpk,jpdiabio) , & 
     389           &       ctrbio(jpdiabio), ctrbil(jpdiabio), ctrbiu(jpdiabio), STAT = ierr )  
     390         IF( ierr > 0 )   CALL ctl_stop( 'STOP', 'trcnam: unable to allocate bio. diag. array' ) 
     391         ! 
     392         trbio(:,:,:,:) = 0._wp  ;   ctrbio(:) = ' '   ;   ctrbil(:) = ' '    ;    ctrbiu(:) = ' '  
     393         ! 
     394      ENDIF 
     395      ! 
    386396   END SUBROUTINE trc_nam_dia 
    387397 
Note: See TracChangeset for help on using the changeset viewer.