Changeset 7923 for branches/UKMO/dev_r5518_GO6_package_XIOS_read
- Timestamp:
- 2017-04-18T15:26:56+02:00 (7 years ago)
- Location:
- branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM
- Files:
-
- 2 deleted
- 36 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/CONFIG/SHARED/domain_def.xml
r5426 r7923 1 1 2 2 <domain_definition> 3 <domain_group id="grid_T"> 4 <domain id="grid_T" long_name="grid T"/> 5 <!-- My zoom: example of hand defined zoom --> 6 <domain id="myzoom" zoom_ibegin="10" zoom_jbegin="10" zoom_ni="5" zoom_nj="5" /> 7 <domain id="1point" zoom_ibegin="10" zoom_jbegin="10" zoom_ni="1" zoom_nj="1" /> 3 <domain_group id="grid_T"> 4 <domain id="grid_T" long_name="grid T"/> 5 <!-- My zoom: example of hand defined zoom --> 6 <domain id="myzoom" domain_ref="grid_T" > 7 <zoom_domain id="myzoom" ibegin="10" jbegin="10" ni="5" nj="5" /> 8 </domain> 9 <domain id="1point" domain_ref="grid_T" > 10 <zoom_domain id="1point" ibegin="10" jbegin="10" ni="1" nj="1" /> 11 </domain> 8 12 <!-- Eq section --> 9 <domain id="EqT" zoom_ibegin="1" zoom_jbegin="0000" zoom_ni="0000" zoom_nj="1" /> 13 <domain id="EqT" domain_ref="grid_T" > 14 <zoom_domain id="EqT" ibegin="1" jbegin="0000" ni="0000" nj="1" /> 15 </domain> 10 16 <!-- TAO --> 11 17 <!-- 137e --> 12 < domain id="2n137eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />13 < domain id="5n137eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />14 < domain id="8n137eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />15 <!-- 147e-->16 < domain id="0n147eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />17 < domain id="2n147eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />18 < domain id="5n147eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />19 <!-- 156e-->20 < domain id="5s156eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />21 < domain id="2s156eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />22 < domain id="0n156eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />23 < domain id="2n156eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />24 < domain id="5n156eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />25 < domain id="8n156eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />26 <!-- 165e-->27 < domain id="8s165eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />28 < domain id="5s165eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />29 < domain id="2s165eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />30 < domain id="0n165eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />31 < domain id="2n165eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />32 < domain id="5n165eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />33 < domain id="8n165eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />34 <!-- 180w-->35 < domain id="8s180wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />36 < domain id="5s180wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />37 < domain id="2s180wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />38 < domain id="0n180wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />39 < domain id="2n180wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />40 < domain id="5n180wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />41 < domain id="8n180wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />42 <!-- 170w-->43 < domain id="8s170wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />44 < domain id="5s170wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />45 < domain id="2s170wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />46 < domain id="0n170wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />47 < domain id="2n170wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />48 < domain id="5n170wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />49 < domain id="8n170wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />50 <!-- 155w-->51 < domain id="8s155wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />52 < domain id="5s155wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />53 < domain id="2s155wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />54 < domain id="0n155wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />55 < domain id="2n155wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />56 < domain id="5n155wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />57 < domain id="8n155wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />58 <!-- 140w-->59 < domain id="8s140wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />60 < domain id="5s140wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />61 < domain id="2s140wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />62 < domain id="0n140wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />63 < domain id="2n140wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />64 < domain id="5n140wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />65 < domain id="8n140wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />66 <!-- 125w-->67 < domain id="8s125wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />68 < domain id="5s125wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />69 < domain id="2s125wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />70 < domain id="0n125wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />71 < domain id="2n125wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />72 < domain id="5n125wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />73 < domain id="8n125wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />74 <!-- 110w-->75 < domain id="8s110wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />76 < domain id="5s110wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />77 < domain id="2s110wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />78 < domain id="0n110wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />79 < domain id="2n110wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />80 < domain id="5n110wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />81 < domain id="8n110wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />82 <!-- 95w-->83 < domain id="8s95wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />84 < domain id="5s95wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />85 < domain id="2s95wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />86 < domain id="0n95wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />87 < domain id="2n95wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />88 < domain id="5n95wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />89 < domain id="8n95wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />90 <!-- RAMA-->91 <!-- 55e-->92 < domain id="16s55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />93 < domain id="12s55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />94 < domain id="8s55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />95 < domain id="4s55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />96 < domain id="1.5s55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />97 < domain id="0n55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />98 < domain id="1.5n55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />99 < domain id="4n55eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />100 <!-- 65e-->101 < domain id="15n65eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />102 <!-- 67e-->103 < domain id="16s67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />104 < domain id="12s67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />105 < domain id="8s67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />106 < domain id="4s67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />107 < domain id="1.5s67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />108 < domain id="0n67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />109 < domain id="1.5n67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />110 < domain id="4n67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />111 < domain id="8n67eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />112 <!-- 80.5e-->113 < domain id="16s80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />114 < domain id="12s80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />115 < domain id="8s80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />116 < domain id="4s80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />117 < domain id="1.5s80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />118 < domain id="0n80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />119 < domain id="1.5n80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />120 < domain id="4n80.5eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />121 <!-- 90e-->122 < domain id="1.5s90eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />123 < domain id="0n90eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />124 < domain id="1.5n90eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />125 < domain id="4n90eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />126 < domain id="8n90eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />127 < domain id="12n90eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />128 < domain id="15n90eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />129 <!-- 95e-->130 < domain id="16s95eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />131 < domain id="12s95eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />132 < domain id="8s95eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />133 < domain id="5s95eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />134 <!-- PIRATA-->135 <!-- 38w-30w-->136 < domain id="19s34wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />137 < domain id="14s32wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />138 < domain id="8s30wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />139 < domain id="0n35wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />140 < domain id="4n38wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />141 < domain id="8n38wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />142 < domain id="12n38wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />143 < domain id="15n38wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />144 < domain id="20n38wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />145 <!-- 23w-->146 < domain id="0n23wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />147 < domain id="4n23wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />148 < domain id="12n23wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />149 < domain id="21n23wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />150 <!-- 10w-->151 < domain id="10s10wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />152 < domain id="6s10wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />153 < domain id="0n10wT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />154 <!-- 0e-->155 < domain id="0n0eT" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" />18 <!-- <domain id="2n137eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 19 <!-- <domain id="5n137eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 20 <!-- <domain id="8n137eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 21 <!-- <\!-- 147e -\-> --> 22 <!-- <domain id="0n147eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 23 <!-- <domain id="2n147eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 24 <!-- <domain id="5n147eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 25 <!-- <\!-- 156e -\-> --> 26 <!-- <domain id="5s156eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 27 <!-- <domain id="2s156eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 28 <!-- <domain id="0n156eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 29 <!-- <domain id="2n156eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 30 <!-- <domain id="5n156eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 31 <!-- <domain id="8n156eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 32 <!-- <\!-- 165e -\-> --> 33 <!-- <domain id="8s165eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 34 <!-- <domain id="5s165eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 35 <!-- <domain id="2s165eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 36 <!-- <domain id="0n165eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 37 <!-- <domain id="2n165eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 38 <!-- <domain id="5n165eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 39 <!-- <domain id="8n165eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 40 <!-- <\!-- 180w -\-> --> 41 <!-- <domain id="8s180wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 42 <!-- <domain id="5s180wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 43 <!-- <domain id="2s180wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 44 <!-- <domain id="0n180wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 45 <!-- <domain id="2n180wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 46 <!-- <domain id="5n180wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 47 <!-- <domain id="8n180wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 48 <!-- <\!-- 170w -\-> --> 49 <!-- <domain id="8s170wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 50 <!-- <domain id="5s170wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 51 <!-- <domain id="2s170wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 52 <!-- <domain id="0n170wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 53 <!-- <domain id="2n170wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 54 <!-- <domain id="5n170wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 55 <!-- <domain id="8n170wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 56 <!-- <\!-- 155w -\-> --> 57 <!-- <domain id="8s155wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 58 <!-- <domain id="5s155wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 59 <!-- <domain id="2s155wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 60 <!-- <domain id="0n155wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 61 <!-- <domain id="2n155wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 62 <!-- <domain id="5n155wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 63 <!-- <domain id="8n155wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 64 <!-- <\!-- 140w -\-> --> 65 <!-- <domain id="8s140wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 66 <!-- <domain id="5s140wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 67 <!-- <domain id="2s140wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 68 <!-- <domain id="0n140wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 69 <!-- <domain id="2n140wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 70 <!-- <domain id="5n140wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 71 <!-- <domain id="8n140wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 72 <!-- <\!-- 125w -\-> --> 73 <!-- <domain id="8s125wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 74 <!-- <domain id="5s125wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 75 <!-- <domain id="2s125wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 76 <!-- <domain id="0n125wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 77 <!-- <domain id="2n125wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 78 <!-- <domain id="5n125wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 79 <!-- <domain id="8n125wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 80 <!-- <\!-- 110w -\-> --> 81 <!-- <domain id="8s110wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 82 <!-- <domain id="5s110wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 83 <!-- <domain id="2s110wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 84 <!-- <domain id="0n110wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 85 <!-- <domain id="2n110wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 86 <!-- <domain id="5n110wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 87 <!-- <domain id="8n110wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 88 <!-- <\!-- 95w -\-> --> 89 <!-- <domain id="8s95wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 90 <!-- <domain id="5s95wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 91 <!-- <domain id="2s95wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 92 <!-- <domain id="0n95wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 93 <!-- <domain id="2n95wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 94 <!-- <domain id="5n95wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 95 <!-- <domain id="8n95wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 96 <!-- <\!-- RAMA -\-> --> 97 <!-- <\!-- 55e -\-> --> 98 <!-- <domain id="16s55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 99 <!-- <domain id="12s55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 100 <!-- <domain id="8s55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 101 <!-- <domain id="4s55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 102 <!-- <domain id="1.5s55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 103 <!-- <domain id="0n55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 104 <!-- <domain id="1.5n55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 105 <!-- <domain id="4n55eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 106 <!-- <\!-- 65e -\-> --> 107 <!-- <domain id="15n65eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 108 <!-- <\!-- 67e -\-> --> 109 <!-- <domain id="16s67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 110 <!-- <domain id="12s67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 111 <!-- <domain id="8s67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 112 <!-- <domain id="4s67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 113 <!-- <domain id="1.5s67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 114 <!-- <domain id="0n67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 115 <!-- <domain id="1.5n67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 116 <!-- <domain id="4n67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 117 <!-- <domain id="8n67eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 118 <!-- <\!-- 80.5e -\-> --> 119 <!-- <domain id="16s80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 120 <!-- <domain id="12s80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 121 <!-- <domain id="8s80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 122 <!-- <domain id="4s80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 123 <!-- <domain id="1.5s80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 124 <!-- <domain id="0n80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 125 <!-- <domain id="1.5n80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 126 <!-- <domain id="4n80.5eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 127 <!-- <\!-- 90e -\-> --> 128 <!-- <domain id="1.5s90eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 129 <!-- <domain id="0n90eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 130 <!-- <domain id="1.5n90eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 131 <!-- <domain id="4n90eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 132 <!-- <domain id="8n90eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 133 <!-- <domain id="12n90eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 134 <!-- <domain id="15n90eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 135 <!-- <\!-- 95e -\-> --> 136 <!-- <domain id="16s95eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 137 <!-- <domain id="12s95eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 138 <!-- <domain id="8s95eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 139 <!-- <domain id="5s95eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 140 <!-- <\!-- PIRATA -\-> --> 141 <!-- <\!-- 38w-30w -\-> --> 142 <!-- <domain id="19s34wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 143 <!-- <domain id="14s32wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 144 <!-- <domain id="8s30wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 145 <!-- <domain id="0n35wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 146 <!-- <domain id="4n38wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 147 <!-- <domain id="8n38wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 148 <!-- <domain id="12n38wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 149 <!-- <domain id="15n38wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 150 <!-- <domain id="20n38wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 151 <!-- <\!-- 23w -\-> --> 152 <!-- <domain id="0n23wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 153 <!-- <domain id="4n23wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 154 <!-- <domain id="12n23wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 155 <!-- <domain id="21n23wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 156 <!-- <\!-- 10w -\-> --> 157 <!-- <domain id="10s10wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 158 <!-- <domain id="6s10wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 159 <!-- <domain id="0n10wT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 160 <!-- <\!-- 0e -\-> --> 161 <!-- <domain id="0n0eT" domain_ref="grid_T" zoom_ibegin="0000" zoom_jbegin="0000" zoom_ni="1" zoom_nj="1" /> --> 156 162 </domain_group> 157 163 … … 159 165 <domain id="grid_U" long_name="grid U"/> 160 166 <!-- Eq section --> 161 <domain id="EqU" zoom_ibegin="1" zoom_jbegin="0000" zoom_ni="0000" zoom_nj="1" /> 167 <domain id="EqU" domain_ref="grid_U" > 168 <zoom_domain id="EqU" ibegin="1" jbegin="0000" ni="0000" nj="1" /> 169 </domain> 162 170 </domain_group> 163 171 … … 166 174 <domain id="grid_W" long_name="grid W"/> 167 175 <!-- Eq section --> 168 <domain id="EqW" zoom_ibegin="1" zoom_jbegin="0000" zoom_ni="0000" zoom_nj="1" /> 176 <domain id="EqW" domain_ref="grid_W" > 177 <zoom_domain id="EqW" ibegin="1" jbegin="0000" ni="0000" nj="1" /> 178 </domain> 169 179 </domain_group> 170 180 171 <domain_group id="scalarpoint"> 172 <domain id="scalarpoint" long_name="scalar"/> 181 <domain_group id="scalarpoint"> 182 <domain id="scalarpoint" long_name="scalar"/> 173 183 <!-- 174 184 <domain id="1point" zoom_ibegin="1" zoom_jbegin="1" zoom_ni="1" zoom_nj="1" /> … … 177 187 178 188 <domain_group id="gznl"> 179 <domain id="ptr" long_name="zonal mean grid" zoom_ibegin="0000" zoom_jbegin="1" zoom_ni="1" zoom_nj="0000" /> 180 </domain_group> 181 189 <domain id="gznl" long_name="gznl"/> 190 <domain id="ptr" domain_ref="gznl" > 191 <zoom_domain id="ptr" ibegin="0000" jbegin="0" ni="1" nj="0000" /> 192 </domain> 193 </domain_group> 182 194 183 195 </domain_definition> -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/CONFIG/SHARED/field_def.xml
r6876 r7923 11 11 ============================================================================================================ 12 12 --> 13 <field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" > <!-- time step automaticaly defined -->13 <field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" detect_missing_value="true"> <!-- time step automaticaly defined --> 14 14 15 15 <!-- … … 22 22 23 23 <field_group id="grid_T" grid_ref="grid_T_2D" > 24 <field id="e3t" long_name="T-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_T_3D"/> 24 <field id="e3t" long_name="Ocean Model cell Thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_T_3D"/> 25 <field id="e3t_surf" field_ref="e3t" long_name="T-cell thickness: surface layer" standard_name="cell_thickness" unit="m" grid_ref="grid_T_surface_extract"/> 25 26 <field id="e3t_0" long_name="Initial T-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_T_3D"/> 26 27 27 <field id="toce" long_name=" temperature" standard_name="sea_water_potential_temperature" unit="degC" grid_ref="grid_T_3D"/>28 <field id="toce_e3t" long_name="temperature * e3t" unit="deg C*m" grid_ref="grid_T_3D" > toce * e3t </field >28 <field id="toce" long_name="Sea Water Potential Temperature" standard_name="sea_water_potential_temperature" unit="degree_C" grid_ref="grid_T_3D"/> 29 <field id="toce_e3t" long_name="temperature * e3t" unit="degree_C*m" grid_ref="grid_T_3D" > toce * e3t </field > 29 30 <field id="toce2_e3t" long_name="temperature squared * e3t" unit="degC*degC*m" grid_ref="grid_T_3D" > toce * toce * e3t </field > 30 <field id="soce" long_name=" salinity" standard_name="sea_water_practical_salinity" unit="1e-3" grid_ref="grid_T_3D"/>31 <field id="soce_e3t" long_name="salinity * e3t" unit=" 1e-3*m" grid_ref="grid_T_3D" > soce * e3t </field >31 <field id="soce" long_name="Sea Water Salinity" standard_name="sea_water_salinity" unit="0.001" grid_ref="grid_T_3D"/> 32 <field id="soce_e3t" long_name="salinity * e3t" unit="0.001*m" grid_ref="grid_T_3D" > soce * e3t </field > 32 33 <field id="soce2_e3t" long_name="salinity squared * e3t" unit="1e-3*1e-3*m" grid_ref="grid_T_3D" > soce * soce * e3t </field > 33 34 <field id="sst" long_name="sea surface temperature" standard_name="sea_surface_temperature" unit="degC" /> 35 <field id="sst2" long_name="square of sea surface temperature" standard_name="square_of_sea_surface_temperature" unit="degC2" > sst * sst </field > 34 <field id="toce_e3t_vsum" field_ref="toce_e3t" grid_ref="vert_sum" /> 35 <field id="e3t_vsum" field_ref="e3t" grid_ref="vert_sum" /> 36 <field id="toce_vmean" field_ref="toce_e3t_vsum" grid_ref="vert_sum"> toce_e3t_vsum/e3t_vsum </field> 37 <field id="toce_e3t_300" field_ref="toce_e3t" unit="degree_C*m" grid_ref="zoom_300" /> 38 <field id="e3t_300" field_ref="e3t" unit="degree_C*m" grid_ref="zoom_300" /> 39 <field id="toce_e3t_vsum300" field_ref="toce_e3t_300" grid_ref="zoom_300_sum" /> 40 <field id="e3t_vsum300" field_ref="e3t_300" grid_ref="zoom_300_sum" /> 41 <field id="toce_vmean300" field_ref="toce_e3t_vsum300" grid_ref="zoom_300_sum"> toce_e3t_vsum300/e3t_vsum300 </field> 42 43 <field id="sst" long_name="Sea Surface Temperature" standard_name="sea_surface_temperature" unit="degree_C" /> 44 <field id="sst2" long_name="Square of Sea Surface Temperature" standard_name="square_of_sea_surface_temperature" unit="degree_C2" > sst * sst </field > 36 45 <field id="sstmax" long_name="max of sea surface temperature" field_ref="sst" operation="maximum" /> 37 46 <field id="sstmin" long_name="min of sea surface temperature" field_ref="sst" operation="minimum" /> 38 <field id="sstgrad" long_name="module of sst gradient" unit="degC/m" /> 39 <field id="sstgrad2" long_name="square of module of sst gradient" unit="degC2/m2" /> 40 <field id="sbt" long_name="sea bottom temperature" unit="degC" /> 47 <field id="sstgrad" long_name="module of sst gradient" unit="degree_C/m" /> 48 <field id="sstgrad2" long_name="square of module of sst gradient" unit="degree_C2/m2" /> 49 <field id="sbt" long_name="sea bottom temperature" unit="degree_C" /> 50 <field id="tosmint" long_name="vertical integral of temperature times density" standard_name="integral_wrt_depth_of_product_of_density_and_potential_temperature" unit="(kg m2) degree_C" /> 41 51 42 <field id="sss" long_name=" sea surface salinity" standard_name="sea_surface_salinity" unit="1e-3" />52 <field id="sss" long_name="Sea Surface Salinity" standard_name="sea_surface_salinity" unit="0.001" /> 43 53 <field id="sss2" long_name="square of sea surface salinity" unit="1e-6" > sss * sss </field > 44 54 <field id="sssmax" long_name="max of sea surface salinity" field_ref="sss" operation="maximum" /> 45 55 <field id="sssmin" long_name="min of sea surface salinity" field_ref="sss" operation="minimum" /> 46 <field id="sbs" long_name="sea bottom salinity" unit="1e-3" /> 56 <field id="sbs" long_name="sea bottom salinity" unit="0.001" /> 57 <field id="somint" long_name="vertical integral of salinity times density" standard_name="integral_wrt_depth_of_product_of_density_and_salinity" unit="(kg m2) x (1e-3)" /> 47 58 48 59 <field id="taubot" long_name="bottom stress module" unit="N/m2" /> … … 67 78 <field id="mldhtc_5" long_name="Mixed Layer Depth integrated heat content" standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" /> 68 79 <field id="heatc" long_name="Heat content vertically integrated" standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" /> 69 <field id="saltc" long_name="Salt content vertically integrated" unit=" 1e-3*kg/m2" />80 <field id="saltc" long_name="Salt content vertically integrated" unit="0.001*kg/m2" /> 70 81 71 82 <!-- EOS --> 72 <field id="alpha" long_name="thermal expansion" unit="deg C-1" grid_ref="grid_T_3D" />83 <field id="alpha" long_name="thermal expansion" unit="degree_C-1" grid_ref="grid_T_3D" /> 73 84 <field id="beta" long_name="haline contraction" unit="1e3" grid_ref="grid_T_3D" /> 74 85 <field id="rhop" long_name="potential density (sigma0)" standard_name="sea_water_sigma_theta" unit="kg/m3" grid_ref="grid_T_3D" /> … … 90 101 <field id="pycndep" long_name="Pycnocline Depth (dsigma[dT=-0.2] wrt 10m)" standard_name="ocean_mixed_layer_thickness_defined_by_sigma_theta" unit="m" /> 91 102 <field id="BLT" long_name="Barrier Layer Thickness" unit="m" > topthdep - pycndep </field> 92 <field id="tinv" long_name="Max of vertical invertion of temperature" unit="deg C" />103 <field id="tinv" long_name="Max of vertical invertion of temperature" unit="degree_C" /> 93 104 <field id="depti" long_name="Depth of max. vert. inv. of temperature" unit="m" /> 94 <field id="20d" long_name="Depth of 20C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" axis_ref="iax_20C"/>95 <field id="28d" long_name="Depth of 28C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" axis_ref="iax_28C"/>105 <field id="20d" long_name="Depth of 20C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" /> 106 <field id="28d" long_name="Depth of 28C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" /> 96 107 <field id="hc300" long_name="Heat content 0-300m" standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" /> 97 108 98 109 <!-- variables available with key_diaar5 --> 99 <field id="botpres" long_name="Pressure at sea floor" standard_name="sea_water_pressure_at_sea_floor" unit="dbar" /> 110 <field id="botpres" long_name="Sea Water Pressure at Sea Floor" standard_name="sea_water_pressure_at_sea_floor" unit="dbar" /> 111 <field id="sshdyn" long_name="dynamic sea surface height" standard_name="dynamic_sea_surface_height_above_geoid" unit="m" /> 112 <field id="sshdyn2" long_name="square of dynamic sea surface height" standard_name="dynamic_sea_surface_height_above_geoid_squared" unit="m2" > sshdyn * sshdyn </field> 100 113 101 114 <!-- variables available with key_vvl --> … … 189 202 <field id="emp_oce" long_name="Evap minus Precip over ocean" standard_name="evap_minus_precip_over_sea_water" unit="kg/m2/s" /> 190 203 <field id="emp_ice" long_name="Evap minus Precip over ice" standard_name="evap_minus_precip_over_sea_ice" unit="kg/m2/s" /> 191 <field id="saltflx" long_name="Downward salt flux" unit=" 1e-3/m2/s" />204 <field id="saltflx" long_name="Downward salt flux" unit="0.001/m2/s" /> 192 205 <field id="fmmflx" long_name="Water flux due to freezing/melting" unit="kg/m2/s" /> 193 206 <field id="snowpre" long_name="Snow precipitation" standard_name="snowfall_flux" unit="kg/m2/s" /> 194 <field id="runoffs" long_name=" River Runoffs"standard_name="water_flux_into_sea_water_from_rivers" unit="kg/m2/s" />207 <field id="runoffs" long_name="Water Flux into Sea Water From Rivers" standard_name="water_flux_into_sea_water_from_rivers" unit="kg/m2/s" /> 195 208 <field id="precip" long_name="Total precipitation" standard_name="precipitation_flux" unit="kg/m2/s" /> 196 209 … … 210 223 <field id="berg_calve" long_name="Iceberg calving" unit="kg/m2/s" /> 211 224 <field id="fwfisf" long_name="Ice shelf melting" unit="kg/m2/s" /> 212 <field id="qisf" long_name="Ice Shelf Heat Flux" unit="W/m2" /> 225 <field id="fwfisf3d" long_name="Ice shelf melting" unit="kg/m2/s" grid_ref="grid_T_3D" /> 226 <field id="qlatisf" long_name="Ice shelf latent heat flux" unit="W/m2" /> 227 <field id="qlatisf3d" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 228 <field id="qhcisf" long_name="Ice shelf heat content flux" unit="W/m2" /> 229 <field id="qhcisf3d" long_name="Ice shelf heat content flux" unit="W/m2" grid_ref="grid_T_3D" /> 213 230 <field id="isfgammat" long_name="transfert coefficient for isf (temperature)" unit="m/s" /> 214 231 <field id="isfgammas" long_name="transfert coefficient for isf (salinity)" unit="m/s" /> 215 <field id="stbl" long_name="salinity in the Losh tbl" unit=" 1e-3" />216 <field id="ttbl" long_name="temperature in the Losh tbl" unit="deg C" />232 <field id="stbl" long_name="salinity in the Losh tbl" unit="0.001" /> 233 <field id="ttbl" long_name="temperature in the Losh tbl" unit="degree_C" /> 217 234 218 235 <!-- *_oce variables available with ln_blk_clio or ln_blk_core --> … … 232 249 <!-- available if key_oasis3 + conservative method --> 233 250 <field id="rain" long_name="Liquid precipitation" standard_name="rainfall_flux" unit="kg/m2/s" /> 251 <field id="rain_ao_cea" long_name="Liquid precipitation over ice-free ocean (cell average)" standard_name="rainfall_flux" unit="kg/m2/s" /> 234 252 <field id="evap_ao_cea" long_name="Evaporation over ice-free ocean (cell average)" standard_name="water_evaporation_flux" unit="kg/m2/s" /> 235 253 <field id="isnwmlt_cea" long_name="Snow over Ice melting (cell average)" standard_name="surface_snow_melt_flux" unit="kg/m2/s" /> … … 237 255 <field id="fsal_real_cea" long_name="Real salt flux due to ice formation (cell average)" standard_name="downward_sea_ice_basal_salt_flux" unit="kg/m2/s" /> 238 256 <field id="hflx_rain_cea" long_name="heat flux due to rainfall" standard_name="temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water" unit="W/m2" /> 257 <field id="hflx_prec_cea" long_name="heat flux due to precipitation" standard_name="temperature_flux_due_to_precipitation_expressed_as_heat_flux_into_sea_water" unit="W/m2" /> 239 258 <field id="hflx_evap_cea" long_name="heat flux due to evaporation" standard_name="temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water" unit="W/m2" /> 240 259 <field id="hflx_snow_cea" long_name="heat flux due to snow falling over ice-free ocean" standard_name="heat_flux_into_sea_water_due_to_snow_thermodynamics" unit="W/m2" /> … … 264 283 265 284 <field id="ice_pres" long_name="Ice presence" unit="" /> 266 <field id="ist_cea" long_name="Ice surface temperature (cell average)" standard_name="surface_temperature" unit="deg C" />267 <field id="ist_ipa" long_name="Ice surface temperature (ice presence average)" standard_name="surface_temperature" unit="deg C" />285 <field id="ist_cea" long_name="Ice surface temperature (cell average)" standard_name="surface_temperature" unit="degree_C" /> 286 <field id="ist_ipa" long_name="Ice surface temperature (ice presence average)" standard_name="surface_temperature" unit="degree_C" /> 268 287 <field id="uice_ipa" long_name="Ice velocity along i-axis at I-point (ice presence average)" standard_name="sea_ice_x_velocity" unit="m/s" /> 269 288 <field id="vice_ipa" long_name="Ice velocity along j-axis at I-point (ice presence average)" standard_name="sea_ice_y_velocity" unit="m/s" /> … … 274 293 <field id="u_imasstr" long_name="Sea-ice mass transport along i-axis" standard_name="sea_ice_x_transport" unit="kg/s" /> 275 294 <field id="v_imasstr" long_name="Sea-ice mass transport along j-axis" standard_name="sea_ice_y_transport" unit="kg/s" /> 276 <field id="emp_x_sst" long_name="Concentration/Dilution term on SST" unit="kg*deg C/m2/s" />277 <field id="emp_x_sss" long_name="Concentration/Dilution term on SSS" unit="kg* 1e-3/m2/s" />295 <field id="emp_x_sst" long_name="Concentration/Dilution term on SST" unit="kg*degree_C/m2/s" /> 296 <field id="emp_x_sss" long_name="Concentration/Dilution term on SSS" unit="kg*0.001/m2/s" /> 278 297 279 298 <field id="iceconc" long_name="ice concentration" standard_name="sea_ice_area_fraction" unit="%" /> 280 <field id="isst" long_name="sea surface temperature" standard_name="sea_surface_temperature" unit="deg C" />281 <field id="isss" long_name="sea surface salinity" standard_name="sea_surface_salinity" unit=" 1e-3" />299 <field id="isst" long_name="sea surface temperature" standard_name="sea_surface_temperature" unit="degree_C" /> 300 <field id="isss" long_name="sea surface salinity" standard_name="sea_surface_salinity" unit="0.001" /> 282 301 <field id="qt_oce" long_name="total flux at ocean surface" standard_name="surface_downward_heat_flux_in_sea_water" unit="W/m2" /> 283 302 <field id="qsr_oce" long_name="solar heat flux at ocean surface" standard_name="net_downward_shortwave_flux_at_sea_water_surface" unit="W/m2" /> … … 288 307 <field id="qtr_ice" long_name="solar heat flux transmitted through ice: sum over categories" unit="W/m2" /> 289 308 <field id="qemp_ice" long_name="Downward Heat Flux from E-P over ice" unit="W/m2" /> 290 <field id="micesalt" long_name="Mean ice salinity" unit=" 1e-3" />309 <field id="micesalt" long_name="Mean ice salinity" unit="0.001" /> 291 310 <field id="miceage" long_name="Mean ice age" unit="years" /> 292 311 <field id="alb_ice" long_name="Mean albedo over sea ice" unit="" /> … … 299 318 <field id="salinity_cat" long_name="Sea-Ice Bulk salinity for categories" unit="g/kg" axis_ref="ncatice" /> 300 319 <field id="brinevol_cat" long_name="Brine volume for categories" unit="%" axis_ref="ncatice" /> 301 <field id="icetemp_cat" long_name="Ice temperature for categories" unit="deg C" axis_ref="ncatice" />302 <field id="snwtemp_cat" long_name="Snow temperature for categories" unit="deg C" axis_ref="ncatice" />303 304 <field id="micet" long_name="Mean ice temperature" unit="deg C" />320 <field id="icetemp_cat" long_name="Ice temperature for categories" unit="degree_C" axis_ref="ncatice" /> 321 <field id="snwtemp_cat" long_name="Snow temperature for categories" unit="degree_C" axis_ref="ncatice" /> 322 323 <field id="micet" long_name="Mean ice temperature" unit="degree_C" /> 305 324 <field id="icehc" long_name="ice total heat content" unit="10^9J" /> 306 325 <field id="isnowhc" long_name="snow total heat content" unit="10^9J" /> 307 <field id="icest" long_name="ice surface temperature" unit="deg C" />326 <field id="icest" long_name="ice surface temperature" unit="degree_C" /> 308 327 <field id="ibrinv" long_name="brine volume" unit="%" /> 309 328 <field id="icecolf" long_name="frazil ice collection thickness" unit="m" /> … … 317 336 <field id="icetrp" long_name="ice volume transport" unit="m/day" /> 318 337 <field id="snwtrp" long_name="snw volume transport" unit="m/day" /> 319 <field id="saltrp" long_name="salt content transport" unit=" 1e-3*kg/m2/day" />338 <field id="saltrp" long_name="salt content transport" unit="0.001*kg/m2/day" /> 320 339 <field id="deitrp" long_name="advected ice enthalpy" unit="W/m2" /> 321 340 <field id="destrp" long_name="advected snw enthalpy" unit="W/m2" /> 322 341 323 <field id="sfxbri" long_name="brine salt flux" unit=" 1e-3*kg/m2/day" />324 <field id="sfxdyn" long_name="salt flux from ridging rafting" unit=" 1e-3*kg/m2/day" />325 <field id="sfxres" long_name="salt flux from lipupdate (resultant)" unit=" 1e-3*kg/m2/day" />326 <field id="sfxbog" long_name="salt flux from bot growth" unit=" 1e-3*kg/m2/day" />327 <field id="sfxbom" long_name="salt flux from bot melt" unit=" 1e-3*kg/m2/day" />328 <field id="sfxsum" long_name="salt flux from surf melt" unit=" 1e-3*kg/m2/day" />329 <field id="sfxsni" long_name="salt flux from snow-ice formation" unit=" 1e-3*kg/m2/day" />330 <field id="sfxopw" long_name="salt flux from open water ice formation" unit=" 1e-3*kg/m2/day" />331 <field id="sfxsub" long_name="salt flux from sublimation" unit=" 1e-3*kg/m2/day" />332 <field id="sfx" long_name="salt flux total" unit=" 1e-3*kg/m2/day" />342 <field id="sfxbri" long_name="brine salt flux" unit="0.001*kg/m2/day" /> 343 <field id="sfxdyn" long_name="salt flux from ridging rafting" unit="0.001*kg/m2/day" /> 344 <field id="sfxres" long_name="salt flux from lipupdate (resultant)" unit="0.001*kg/m2/day" /> 345 <field id="sfxbog" long_name="salt flux from bot growth" unit="0.001*kg/m2/day" /> 346 <field id="sfxbom" long_name="salt flux from bot melt" unit="0.001*kg/m2/day" /> 347 <field id="sfxsum" long_name="salt flux from surf melt" unit="0.001*kg/m2/day" /> 348 <field id="sfxsni" long_name="salt flux from snow-ice formation" unit="0.001*kg/m2/day" /> 349 <field id="sfxopw" long_name="salt flux from open water ice formation" unit="0.001*kg/m2/day" /> 350 <field id="sfxsub" long_name="salt flux from sublimation" unit="0.001*kg/m2/day" /> 351 <field id="sfx" long_name="salt flux total" unit="0.001*kg/m2/day" /> 333 352 334 353 <field id="vfxbog" long_name="daily bottom thermo ice prod." unit="m/day" /> … … 371 390 <field id="hfxtur" long_name="turbulent heat flux at the ice base" unit="W/m2" /> 372 391 <!-- sbcssm variables --> 373 <field id="sst_m" unit="deg C" />392 <field id="sst_m" unit="degree_C" /> 374 393 <field id="sss_m" unit="psu" /> 375 394 <field id="ssu_m" unit="m/s" /> … … 386 405 <field id="e3u" long_name="U-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_U_3D" /> 387 406 <field id="e3u_0" long_name="Initial U-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_U_3D"/> 388 <field id="utau" long_name=" Wind Stress along i-axis" standard_name="surface_downward_x_stress" unit="N/m2" />389 <field id="uoce" long_name=" ocean current along i-axis" standard_name="sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" />407 <field id="utau" long_name="Surface Downward X Stress" standard_name="surface_downward_x_stress" unit="N/m2" /> 408 <field id="uoce" long_name="Sea Water X Velocity" standard_name="sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 390 409 <field id="uoce_e3u" long_name="ocean current along i-axis * e3u" unit="m2/s" grid_ref="grid_U_3D" > uoce * e3u </field> 391 410 <field id="uoce2_e3u" long_name="ocean current along i-axis squared * e3u" unit="m3/s2" grid_ref="grid_U_3D" > uoce * uoce * e3u </field> … … 394 413 <field id="ubar" long_name="ocean barotropic current along i-axis" unit="m/s" /> 395 414 <field id="uocetr_eff" long_name="Effective ocean transport along i-axis" standard_name="ocean_volume_x_transport" unit="m3/s" grid_ref="grid_U_3D" /> 396 <field id="uocet" long_name="ocean transport along i-axis times temperature (CRS)" unit="deg C*m/s" grid_ref="grid_U_3D" />397 <field id="uoces" long_name="ocean transport along i-axis times salinity (CRS)" unit=" 1e-3*m/s" grid_ref="grid_U_3D" />415 <field id="uocet" long_name="ocean transport along i-axis times temperature (CRS)" unit="degree_C*m/s" grid_ref="grid_U_3D" /> 416 <field id="uoces" long_name="ocean transport along i-axis times salinity (CRS)" unit="0.001*m/s" grid_ref="grid_U_3D" /> 398 417 399 418 <!-- variables available with MLE --> … … 401 420 402 421 <!-- uoce_eiv: available with key_traldf_eiv and key_diaeiv --> 403 <field id="uoce_eiv" long_name="EIV ocean current along i-axis" standard_name="bolus_sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 422 <field id="uoce_eiv" long_name="EIV ocean current along i-axis" standard_name="bolus_sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 423 <field id="ueiv_masstr" long_name="EIV Ocean Mass X Transport" standard_name="bolus_ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 424 <field id="ueiv_heattr3d" long_name="ocean bolus heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_bolus_advection" unit="W" grid_ref="grid_U_3D" /> 425 <field id="ueiv_salttr3d" long_name="ocean bolus salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="kg" grid_ref="grid_U_3D" /> 426 <field id="ueiv_masstr" long_name="EIV Ocean Mass X Transport" standard_name="bolus_ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 404 427 405 428 <!-- uoce_eiv: available with key_trabbl --> … … 411 434 412 435 <!-- variables available with key_diaar5 --> 413 <field id="u_masstr" long_name="ocean eulerian mass transport along i-axis" standard_name="ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 436 <field id="u_masstr" long_name="Ocean Mass X Transport" standard_name="ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 437 <field id="u_masstr_vint" long_name="vertical integral of ocean eulerian mass transport along i-axis" standard_name="vertical_integral_of_ocean_mass_x_transport" unit="kg/s" /> 414 438 <field id="u_heattr" long_name="ocean eulerian heat transport along i-axis" standard_name="ocean_heat_x_transport" unit="W" /> 415 <field id="u_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_x_transport" unit="1e-3*kg/s" /> 439 <field id="uadv_heattr" long_name="ocean advective heat transport along i-axis" standard_name="advectice_ocean_heat_x_transport" unit="W" /> 440 <field id="u_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_x_transport" unit="0.001*kg/s" /> 416 441 <field id="ueiv_heattr" long_name="ocean bolus heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_bolus_advection" unit="W" /> 442 <field id="ueiv_salttr" long_name="ocean bolus salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="W" /> 417 443 <field id="udiff_heattr" long_name="ocean diffusion heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_diffusion" unit="W" /> 418 444 </field_group> … … 423 449 <field id="e3v" long_name="V-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_V_3D" /> 424 450 <field id="e3v_0" long_name="Initial V-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_V_3D"/> 425 <field id="vtau" long_name=" Wind Stress along j-axis" standard_name="surface_downward_y_stress" unit="N/m2" />426 <field id="voce" long_name=" ocean current along j-axis" standard_name="sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" />451 <field id="vtau" long_name="Surface Downward Y Stress" standard_name="surface_downward_y_stress" unit="N/m2" /> 452 <field id="voce" long_name="Sea Water Y Velocity" standard_name="sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" /> 427 453 <field id="voce_e3v" long_name="ocean current along j-axis * e3v" unit="m2/s" grid_ref="grid_V_3D" > voce * e3v </field> 428 454 <field id="voce2_e3v" long_name="ocean current along j-axis squared * e3v" unit="m3/s2" grid_ref="grid_V_3D" > voce * voce * e3v </field> … … 431 457 <field id="vbar" long_name="ocean barotropic current along j-axis" unit="m/s" /> 432 458 <field id="vocetr_eff" long_name="Effective ocean transport along j-axis" standard_name="ocean_volume_y_transport" unit="m3/s" grid_ref="grid_V_3D" /> 433 <field id="vocet" long_name="ocean transport along j-axis times temperature (CRS)" unit="deg C*m/s" grid_ref="grid_V_3D" />434 <field id="voces" long_name="ocean transport along j-axis times salinity (CRS)" unit=" 1e-3*m/s" grid_ref="grid_V_3D" />459 <field id="vocet" long_name="ocean transport along j-axis times temperature (CRS)" unit="degree_C*m/s" grid_ref="grid_V_3D" /> 460 <field id="voces" long_name="ocean transport along j-axis times salinity (CRS)" unit="0.001*m/s" grid_ref="grid_V_3D" /> 435 461 436 462 <!-- variables available with MLE --> … … 439 465 <!-- voce_eiv: available with key_traldf_eiv and key_diaeiv --> 440 466 <field id="voce_eiv" long_name="EIV ocean current along j-axis" standard_name="bolus_sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" /> 467 <field id="veiv_masstr" long_name="EIV Ocean Mass Y Transport" standard_name="bolus_ocean_mass_y_transport" unit="kg/s" grid_ref="grid_V_3D" /> 468 <field id="veiv_heattr3d" long_name="ocean bolus heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_bolus_advection" unit="W" grid_ref="grid_V_3D" /> 469 <field id="veiv_salttr3d" long_name="ocean bolus salt transport along j-axis" standard_name="ocean_salt_y_transport_due_to_bolus_advection" unit="kg" grid_ref="grid_U_3D" /> 441 470 442 471 <!-- voce_eiv: available with key_trabbl --> … … 448 477 449 478 <!-- variables available with key_diaar5 --> 450 <field id="v_masstr" long_name="ocean eulerian mass transport along j-axis" standard_name="ocean_mass_y_transport" unit="kg/s" grid_ref="grid_V_3D" /> 451 <field id="v_heattr" long_name="ocean eulerian heat transport along j-axis" standard_name="ocean_heat_y_transport" unit="W" /> 452 <field id="v_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_y_transport" unit="1e-3*kg/s" /> 479 <field id="v_masstr" long_name="Ocean Mass Y Transport" standard_name="ocean_mass_y_transport" unit="kg/s" grid_ref="grid_V_3D" /> 480 <field id="v_heattr" long_name="Ocean Heat X Transport" standard_name="ocean_heat_y_transport" unit="W" /> 481 <field id="vadv_heattr" long_name="ocean advective heat transport along j-axis" standard_name="advectice_ocean_heat_y_transport" unit="W" /> 482 <field id="v_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_y_transport" unit="0.001*kg/s" /> 453 483 <field id="veiv_heattr" long_name="ocean bolus heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_bolus_advection" unit="W" /> 484 <field id="veiv_salttr" long_name="ocean bolus salt transport along j-axis" standard_name="ocean_salt_y_transport_due_to_bolus_advection" unit="W" /> 454 485 <field id="vdiff_heattr" long_name="ocean diffusion heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_diffusion" unit="W" /> 455 486 </field_group> … … 464 495 <!-- woce_eiv: available with key_traldf_eiv and key_diaeiv --> 465 496 <field id="woce_eiv" long_name="EIV ocean vertical velocity" standard_name="bolus_upward_sea_water_velocity" unit="m/s" /> 497 <field id="weiv_masstr" long_name="EIV Upward Ocean Mass Transport" standard_name="bolus_upward_ocean_mass_transport" unit="kg/s" /> 498 <field id="weiv_heattr3d" long_name="ocean bolus heat transport along k-axis" standard_name="ocean_heat_z_transport_due_to_bolus_advection" unit="W" /> 499 <field id="weiv_salttr3d" long_name="ocean bolus salt transport along k-axis" standard_name="ocean_salt_z_transport_due_to_bolus_advection" unit="kg" grid_ref="grid_U_3D" /> 466 500 467 501 <field id="avt" long_name="vertical eddy diffusivity" standard_name="ocean_vertical_heat_diffusivity" unit="m2/s" /> … … 483 517 <field id="av_ratio" long_name="S over T diffusivity ratio" standard_name="salinity_over_temperature_diffusivity_ratio" unit="1" /> 484 518 <field id="av_wave" long_name="wave-induced vertical diffusivity" standard_name="ocean_vertical_tracer_diffusivity_due_to_internal_waves" unit="m2/s" /> 485 <field id="bn2" long_name="squared Brunt-Vaisala frequency" standard_name="squared_brunt_vaisala_frequency" unit="s-1" />486 519 <field id="bflx_tmx" long_name="wave-induced buoyancy flux" standard_name="buoyancy_flux_due_to_internal_waves" unit="W/kg" /> 487 520 <field id="pcmap_tmx" long_name="power consumed by wave-driven mixing" standard_name="vertically_integrated_power_consumption_by_wave_driven_mixing" unit="W/m2" grid_ref="grid_W_2D" /> … … 489 522 490 523 <!-- variables available with key_diaar5 --> 491 <field id="w_masstr" long_name=" vertical mass transport" standard_name="upward_ocean_mass_transport" unit="kg/s" />524 <field id="w_masstr" long_name="Upward Ocean Mass Transport" standard_name="upward_ocean_mass_transport" unit="kg/s" /> 492 525 <field id="w_masstr2" long_name="square of vertical mass transport" standard_name="square_of_upward_ocean_mass_transport" unit="kg2/s2" /> 493 526 … … 499 532 <field id="tke" long_name="Turbulent Kinetic Energy" unit="m2/s2" /> 500 533 <field id="tke_niw" long_name="Turbulent Kinetic Energy due to near-inertial wave breaking" unit="m2/s2" /> 534 535 <!-- Variable from eosbn2 --> 536 <field id="bn2" long_name="Squared buoyancy frequency measuring ocean vertical stratification" standard_name="square_of_brunt_vaisala_frequency_in_sea_water" unit="1/s^2" /> 501 537 </field_group> 502 538 503 539 <!-- product fields --> 504 540 <field_group id="diaprod"> 505 <field id="ut" long_name="product_of_sea_water_x_velocity_and_potential_temperature" unit="deg C m/s" grid_ref="grid_U_3D" />506 <field id="ut_e3u" long_name="product_of_sea_water_x_velocity_and_potential_temperature * e3u" unit="deg C m2/s" grid_ref="grid_U_3D" > ut * e3u </field >541 <field id="ut" long_name="product_of_sea_water_x_velocity_and_potential_temperature" unit="degree_C m/s" grid_ref="grid_U_3D" /> 542 <field id="ut_e3u" long_name="product_of_sea_water_x_velocity_and_potential_temperature * e3u" unit="degree_C m2/s" grid_ref="grid_U_3D" > ut * e3u </field > 507 543 <field id="us" long_name="product_of_sea_water_x_velocity_and_salinity" unit="PSU m/s" grid_ref="grid_U_3D" /> 508 544 <field id="us_e3u" long_name="product_of_sea_water_x_velocity_and_salinity * e3u" unit="PSU m2/s" grid_ref="grid_U_3D" > us * e3u </field > 509 545 <field id="urhop" long_name="product_of_sea_water_x_velocity_and_potential_density" unit="(kg/m3).(m/s)" grid_ref="grid_U_3D" /> 510 546 <field id="urhop_e3u" long_name="product_of_sea_water_x_velocity_and_potential_density * e3u" unit="(kg/m3).(m2/s)" grid_ref="grid_U_3D" > urhop * e3u </field > 511 <field id="vt" long_name="product_of_sea_water_y_velocity_and_potential_temperature" unit="deg C m/s" grid_ref="grid_V_3D" />512 <field id="vt_e3v" long_name="product_of_sea_water_y_velocity_and_potential_temperature * e3v" unit="deg C m2/s" grid_ref="grid_V_3D" > vt * e3v </field >547 <field id="vt" long_name="product_of_sea_water_y_velocity_and_potential_temperature" unit="degree_C m/s" grid_ref="grid_V_3D" /> 548 <field id="vt_e3v" long_name="product_of_sea_water_y_velocity_and_potential_temperature * e3v" unit="degree_C m2/s" grid_ref="grid_V_3D" > vt * e3v </field > 513 549 <field id="vs" long_name="product_of_sea_water_y_velocity_and_salinity" unit="PSU m/s" grid_ref="grid_V_3D" /> 514 550 <field id="vs_e3v" long_name="product_of_sea_water_y_velocity_and_salinity * e3t" unit="PSU m2/s" grid_ref="grid_V_3D" > vs * e3v </field > 515 551 <field id="vrhop" long_name="product_of_sea_water_y_velocity_and_potential_density" unit="(kg/m3).(m/s)" grid_ref="grid_V_3D" /> 516 552 <field id="vrhop_e3v" long_name="product_of_sea_water_y_velocity_and_potential_density * e3t" unit="(kg/m3).(m2/s)" grid_ref="grid_V_3D" > vrhop * e3v </field > 517 <field id="wt" long_name="product_of_upward_sea_water_velocity_and_potential_temperature" unit="deg C m/s" grid_ref="grid_W_3D" />553 <field id="wt" long_name="product_of_upward_sea_water_velocity_and_potential_temperature" unit="degree_C m/s" grid_ref="grid_W_3D" /> 518 554 <field id="ws" long_name="product_of_upward_sea_water_velocity_and_salinity" unit="PSU m/s" grid_ref="grid_W_3D" /> 519 555 <field id="wrhop" long_name="product_of_upward_sea_water_velocity_and_potential_density" unit="(kg/m3).(m/s)" grid_ref="grid_W_3D" /> … … 523 559 524 560 <field_group id="scalar" domain_ref="1point" > 525 <field id="voltot" long_name=" global total volume"standard_name="sea_water_volume" unit="m3" />561 <field id="voltot" long_name="Sea Water Volume" standard_name="sea_water_volume" unit="m3" /> 526 562 <field id="sshtot" long_name="global mean ssh" standard_name="global_average_sea_level_change" unit="m" /> 527 563 <field id="sshsteric" long_name="global mean ssh steric" standard_name="global_average_steric_sea_level_change" unit="m" /> 528 <field id="sshthster" long_name=" global mean ssh thermosteric"standard_name="global_average_thermosteric_sea_level_change" unit="m" />564 <field id="sshthster" long_name="Global Average Thermosteric Sea Level Change" standard_name="global_average_thermosteric_sea_level_change" unit="m" /> 529 565 <field id="masstot" long_name="global total mass" standard_name="sea_water_mass" unit="kg" /> 530 <field id="temptot" long_name=" global mean temperature" standard_name="sea_water_potential_temperature" unit="degC" />531 <field id="saltot" long_name=" global mean salinity" standard_name="sea_water_salinity" unit="1e-3" />566 <field id="temptot" long_name="Global Average Sea Water Potential Temperature" standard_name="sea_water_potential_temperature" unit="degree_C" /> 567 <field id="saltot" long_name="Global Average Sea Water Salinity" standard_name="sea_water_salinity" unit="0.001" /> 532 568 <field id="fram_trans" long_name="Sea Ice Mass Transport Through Fram Strait" standard_name="sea_ice_transport_across_line" unit="kg/s" /> 533 569 534 570 <!-- available with ln_diahsb --> 535 <field id="bgtemper" long_name="drift in global mean temperature wrt timestep 1" standard_name="change_over_time_in_sea_water_potential_temperature" unit="deg C" />536 <field id="bgsaline" long_name="drift in global mean salinity wrt timestep 1" standard_name="change_over_time_in_sea_water_practical_salinity" unit=" 1e-3" />571 <field id="bgtemper" long_name="drift in global mean temperature wrt timestep 1" standard_name="change_over_time_in_sea_water_potential_temperature" unit="degree_C" /> 572 <field id="bgsaline" long_name="drift in global mean salinity wrt timestep 1" standard_name="change_over_time_in_sea_water_practical_salinity" unit="0.001" /> 537 573 <field id="bgheatco" long_name="drift in global mean heat content wrt timestep 1" unit="10^9J" /> 538 <field id="bgsaltco" long_name="drift in global mean salt content wrt timestep 1" unit=" 1e-3*m3" />574 <field id="bgsaltco" long_name="drift in global mean salt content wrt timestep 1" unit="0.001*m3" /> 539 575 <field id="bgvolssh" long_name="drift in global mean ssh volume wrt timestep 1" unit="km3" /> 540 576 <field id="bgvole3t" long_name="drift in global mean volume variation (e3t) wrt timestep 1" unit="km3" /> … … 544 580 <field id="bgfrcvol" long_name="drift in global mean volume from forcing wrt timestep 1" unit="km3" /> 545 581 <field id="bgfrctem" long_name="drift in global mean heat content from forcing wrt timestep 1" unit="10^9J" /> 546 <field id="bgfrcsal" long_name="drift in global mean salt content from forcing wrt timestep 1" unit=" 1e-3*km3" />547 <field id="bgmistem" long_name="global mean temperature error due to free surface" unit="deg C" />548 <field id="bgmissal" long_name="global mean salinity error due to free surface" unit=" 1e-3" />582 <field id="bgfrcsal" long_name="drift in global mean salt content from forcing wrt timestep 1" unit="0.001*km3" /> 583 <field id="bgmistem" long_name="global mean temperature error due to free surface" unit="degree_C" /> 584 <field id="bgmissal" long_name="global mean salinity error due to free surface" unit="0.001" /> 549 585 </field_group> 550 586 … … 556 592 <field id="sbgvoltot" long_name="global mean snow volume" unit="km3" /> 557 593 <field id="ibgarea" long_name="global mean ice area" unit="km2" /> 558 <field id="ibgsaline" long_name="global mean ice salinity" unit=" 1e-3" />559 <field id="ibgtemper" long_name="global mean ice temperature" unit="deg C" />594 <field id="ibgsaline" long_name="global mean ice salinity" unit="0.001" /> 595 <field id="ibgtemper" long_name="global mean ice temperature" unit="degree_C" /> 560 596 <field id="ibgheatco" long_name="global mean ice heat content" unit="10^20J" /> 561 597 <field id="sbgheatco" long_name="global mean snow heat content" unit="10^20J" /> 562 <field id="ibgsaltco" long_name="global mean ice salt content" unit=" 1e-3*km3" />598 <field id="ibgsaltco" long_name="global mean ice salt content" unit="0.001*km3" /> 563 599 564 600 <field id="ibgvfx" long_name="global mean volume flux (emp)" unit="m/day" /> … … 574 610 <field id="ibgvfxsub" long_name="global mean volume flux (snow sublimation)" unit="m/day" /> 575 611 576 <field id="ibgsfx" long_name="global mean salt flux (total)" unit=" 1e-3*m/day" />577 <field id="ibgsfxbri" long_name="global mean salt flux (brines)" unit=" 1e-3*m/day" />578 <field id="ibgsfxdyn" long_name="global mean salt flux (dynamic)" unit=" 1e-3*m/day" />579 <field id="ibgsfxres" long_name="global mean salt flux (resultant)" unit=" 1e-3*m/day" />580 <field id="ibgsfxbog" long_name="global mean salt flux (thermo)" unit=" 1e-3*m/day" />581 <field id="ibgsfxopw" long_name="global mean salt flux (thermo)" unit=" 1e-3*m/day" />582 <field id="ibgsfxsni" long_name="global mean salt flux (thermo)" unit=" 1e-3*m/day" />583 <field id="ibgsfxbom" long_name="global mean salt flux (thermo)" unit=" 1e-3*m/day" />584 <field id="ibgsfxsum" long_name="global mean salt flux (thermo)" unit=" 1e-3*m/day" />585 <field id="ibgsfxsub" long_name="global mean salt flux (thermo)" unit=" 1e-3*m/day" />612 <field id="ibgsfx" long_name="global mean salt flux (total)" unit="0.001*m/day" /> 613 <field id="ibgsfxbri" long_name="global mean salt flux (brines)" unit="0.001*m/day" /> 614 <field id="ibgsfxdyn" long_name="global mean salt flux (dynamic)" unit="0.001*m/day" /> 615 <field id="ibgsfxres" long_name="global mean salt flux (resultant)" unit="0.001*m/day" /> 616 <field id="ibgsfxbog" long_name="global mean salt flux (thermo)" unit="0.001*m/day" /> 617 <field id="ibgsfxopw" long_name="global mean salt flux (thermo)" unit="0.001*m/day" /> 618 <field id="ibgsfxsni" long_name="global mean salt flux (thermo)" unit="0.001*m/day" /> 619 <field id="ibgsfxbom" long_name="global mean salt flux (thermo)" unit="0.001*m/day" /> 620 <field id="ibgsfxsum" long_name="global mean salt flux (thermo)" unit="0.001*m/day" /> 621 <field id="ibgsfxsub" long_name="global mean salt flux (thermo)" unit="0.001*m/day" /> 586 622 587 623 <field id="ibghfxdhc" long_name="Heat content variation in snow and ice" unit="W" /> … … 602 638 603 639 <field id="ibgfrcvol" long_name="global mean forcing volume (emp)" unit="km3" /> 604 <field id="ibgfrcsfx" long_name="global mean forcing salt (sfx)" unit=" 1e-3*km3" />640 <field id="ibgfrcsfx" long_name="global mean forcing salt (sfx)" unit="0.001*km3" /> 605 641 <field id="ibgvolgrm" long_name="global mean ice growth+melt volume" unit="km3" /> 606 642 </field_group> … … 612 648 <field id="traj_lat" long_name="floats latitude" unit="degrees_north" /> 613 649 <field id="traj_dep" long_name="floats depth" unit="m" /> 614 <field id="traj_temp" long_name="floats temperature" standard_name="sea_water_potential_temperature" unit="deg C" />615 <field id="traj_salt" long_name="floats salinity" standard_name="sea_water_practical_salinity" unit=" 1e-3" />650 <field id="traj_temp" long_name="floats temperature" standard_name="sea_water_potential_temperature" unit="degree_C" /> 651 <field id="traj_salt" long_name="floats salinity" standard_name="sea_water_practical_salinity" unit="0.001" /> 616 652 <field id="traj_dens" long_name="floats in-situ density" standard_name="sea_water_density" unit="kg/m3" /> 617 653 <field id="traj_group" long_name="floats group" unit="1" /> … … 639 675 640 676 <!-- Poleward transport : ptr --> 641 <field_group id="diaptr" domain_ref="ptr">677 <field_group id="diaptr"> 642 678 <field id="zomsfglo" long_name="Meridional Stream-Function: Global" unit="Sv" grid_ref="gznl_W_3D" /> 643 679 <field id="zomsfatl" long_name="Meridional Stream-Function: Atlantic" unit="Sv" grid_ref="gznl_W_3D" /> … … 645 681 <field id="zomsfind" long_name="Meridional Stream-Function: Indian" unit="Sv" grid_ref="gznl_W_3D" /> 646 682 <field id="zomsfipc" long_name="Meridional Stream-Function: Pacific+Indian" unit="Sv" grid_ref="gznl_W_3D" /> 647 <field id="zotemglo" long_name="Zonal Mean Temperature : Global" unit="deg C" grid_ref="gznl_T_3D" />648 <field id="zotematl" long_name="Zonal Mean Temperature : Atlantic" unit="deg C" grid_ref="gznl_T_3D" />649 <field id="zotempac" long_name="Zonal Mean Temperature : Pacific" unit="deg C" grid_ref="gznl_T_3D" />650 <field id="zotemind" long_name="Zonal Mean Temperature : Indian" unit="deg C" grid_ref="gznl_T_3D" />651 <field id="zotemipc" long_name="Zonal Mean Temperature : Pacific+Indian" unit="deg C" grid_ref="gznl_T_3D" />652 <field id="zosalglo" long_name="Zonal Mean Salinity : Global" unit=" 1e-3" grid_ref="gznl_T_3D" />653 <field id="zosalatl" long_name="Zonal Mean Salinity : Atlantic" unit=" 1e-3" grid_ref="gznl_T_3D" />654 <field id="zosalpac" long_name="Zonal Mean Salinity : Pacific" unit=" 1e-3" grid_ref="gznl_T_3D" />655 <field id="zosalind" long_name="Zonal Mean Salinity : Indian" unit=" 1e-3" grid_ref="gznl_T_3D" />656 <field id="zosalipc" long_name="Zonal Mean Salinity : Pacific+Indian" unit=" 1e-3" grid_ref="gznl_T_3D" />683 <field id="zotemglo" long_name="Zonal Mean Temperature : Global" unit="degree_C" grid_ref="gznl_T_3D" /> 684 <field id="zotematl" long_name="Zonal Mean Temperature : Atlantic" unit="degree_C" grid_ref="gznl_T_3D" /> 685 <field id="zotempac" long_name="Zonal Mean Temperature : Pacific" unit="degree_C" grid_ref="gznl_T_3D" /> 686 <field id="zotemind" long_name="Zonal Mean Temperature : Indian" unit="degree_C" grid_ref="gznl_T_3D" /> 687 <field id="zotemipc" long_name="Zonal Mean Temperature : Pacific+Indian" unit="degree_C" grid_ref="gznl_T_3D" /> 688 <field id="zosalglo" long_name="Zonal Mean Salinity : Global" unit="0.001" grid_ref="gznl_T_3D" /> 689 <field id="zosalatl" long_name="Zonal Mean Salinity : Atlantic" unit="0.001" grid_ref="gznl_T_3D" /> 690 <field id="zosalpac" long_name="Zonal Mean Salinity : Pacific" unit="0.001" grid_ref="gznl_T_3D" /> 691 <field id="zosalind" long_name="Zonal Mean Salinity : Indian" unit="0.001" grid_ref="gznl_T_3D" /> 692 <field id="zosalipc" long_name="Zonal Mean Salinity : Pacific+Indian" unit="0.001" grid_ref="gznl_T_3D" /> 657 693 <field id="zosrfglo" long_name="Zonal Mean Surface" unit="m2" grid_ref="gznl_T_3D" /> 658 694 <field id="zosrfatl" long_name="Zonal Mean Surface : Atlantic" unit="m2" grid_ref="gznl_T_3D" /> … … 661 697 <field id="zosrfipc" long_name="Zonal Mean Surface : Pacific+Indian" unit="m2" grid_ref="gznl_T_3D" /> 662 698 <field id="sophtadv" long_name="Advective Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 699 <field id="sophtadv_atl" long_name="Advective Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 700 <field id="sophtadv_pac" long_name="Advective Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 701 <field id="sophtadv_ind" long_name="Advective Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 702 <field id="sophtadv_ipc" long_name="Advective Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 663 703 <field id="sophtldf" long_name="Diffusive Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 704 <field id="sophtldf_atl" long_name="Diffusive Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 705 <field id="sophtldf_pac" long_name="Diffusive Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 706 <field id="sophtldf_ind" long_name="Diffusive Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 707 <field id="sophtldf_ipc" long_name="Diffusive Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 708 <field id="sophtove" long_name="Overturning Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 709 <field id="sophtove_atl" long_name="Overturning Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 710 <field id="sophtove_pac" long_name="Overturning Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 711 <field id="sophtove_ind" long_name="Overturning Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 712 <field id="sophtove_ipc" long_name="Overturning Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 713 <field id="sophtbtr" long_name="Barotropic Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 714 <field id="sophtbtr_atl" long_name="Barotropic Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 715 <field id="sophtbtr_pac" long_name="Barotropic Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 716 <field id="sophtbtr_ind" long_name="Barotropic Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 717 <field id="sophtbtr_ipc" long_name="Barotropic Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 718 <field id="sophteiv" long_name="Heat Transport from mesoscale eddy oveection" unit="PW" grid_ref="gznl_T_2D" /> 719 <field id="sophteiv_atl" long_name="Heat Transport from mesoscale eddy advection: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 720 <field id="sophteiv_pac" long_name="Heat Transport from mesoscale eddy advection: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 721 <field id="sophteiv_ind" long_name="Heat Transport from mesoscale eddy advection: Indian" unit="PW" grid_ref="gznl_T_2D" /> 722 <field id="sophteiv_ipc" long_name="Heat Transport from mesoscale eddy advection: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 664 723 <field id="sopstadv" long_name="Advective Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 724 <field id="sopstadv_atl" long_name="Advective Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 725 <field id="sopstadv_pac" long_name="Advective Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 726 <field id="sopstadv_ind" long_name="Advective Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 727 <field id="sopstadv_ipc" long_name="Advective Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 728 <field id="sopstove" long_name="Overturning Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 729 <field id="sopstove_atl" long_name="Overturning Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 730 <field id="sopstove_pac" long_name="Overturning Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 731 <field id="sopstove_ind" long_name="Overturning Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 732 <field id="sopstove_ipc" long_name="Overturning Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 733 <field id="sopstbtr" long_name="Barotropic Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 734 <field id="sopstbtr_atl" long_name="Barotropic Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 735 <field id="sopstbtr_pac" long_name="Barotropic Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 736 <field id="sopstbtr_ind" long_name="Barotropic Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 737 <field id="sopstbtr_ipc" long_name="Barotropic Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 665 738 <field id="sopstldf" long_name="Diffusive Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 739 <field id="sopstldf_atl" long_name="Diffusive Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 740 <field id="sopstldf_pac" long_name="Diffusive Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 741 <field id="sopstldf_ind" long_name="Diffusive Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 742 <field id="sopstldf_ipc" long_name="Diffusive Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 743 <field id="sopsteiv" long_name="Salt Transport from mesoscale eddy advection" unit="Giga g/s" grid_ref="gznl_T_2D" /> 744 <field id="sopsteiv_atl" long_name="Salt Transport from mesoscale eddy advection: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 745 <field id="sopsteiv_pac" long_name="Salt Transport from mesoscale eddy advection: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 746 <field id="sopsteiv_ind" long_name="Salt Transport from mesoscale eddy advection: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 747 <field id="sopsteiv_ipc" long_name="Salt Transport from mesoscale eddy advection: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 748 <field id="sopht_vt" long_name="Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 749 <field id="sopht_vt_atl" long_name="Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 750 <field id="sopht_vt_ind" long_name="Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 751 <field id="sopht_vt_pac" long_name="Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 752 <field id="sopht_vt_ipc" long_name="Heat Transport: Indo-Pacific" unit="PW" grid_ref="gznl_T_2D" /> 753 <field id="sopst_vs" long_name="Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 754 <field id="sopst_vs_atl" long_name="Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 755 <field id="sopst_vs_ind" long_name="Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 756 <field id="sopst_vs_pac" long_name="Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 757 <field id="sopst_vs_ipc" long_name="Salt Transport: Indo-Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 758 <field id="vsum" grid_ref="gznl_T_2D" unit="none" standard_name="none" /> 759 <field id="tmean" grid_ref="gznl_T_2D" unit="none" standard_name="none" /> 760 <field id="section_area" grid_ref="gznl_T_2D" unit="none" standard_name="none" /> 666 761 </field_group> 667 762 … … 682 777 <field id="ttrd_ad" long_name="temperature-trend: advection" standard_name="tendency_of_sea_water_temperature_due_to_advection" unit="degC/s" > sqrt( ttrd_xad^2 + ttrd_yad^2 + ttrd_zad^2 ) </field> 683 778 <field id="strd_ad" long_name="salinity -trend: advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="1e-3/s" > sqrt( strd_xad^2 + strd_yad^2 + strd_zad^2 ) </field> 779 <field id="ttrd_totad" long_name="temperature-trend: total advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="degC/s" /> 780 <field id="strd_totad" long_name="salinity -trend: total advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="1e-3/s" /> 684 781 <field id="ttrd_sad" long_name="temperature-trend: surface adv. (no-vvl)" unit="degC/s" grid_ref="grid_T_2D" /> 685 782 <field id="strd_sad" long_name="salinity -trend: surface adv. (no-vvl)" unit="1e-3/s" grid_ref="grid_T_2D" /> … … 688 785 <field id="ttrd_zdf" long_name="temperature-trend: vertical diffusion" standard_name="tendency_of_sea_water_temperature_due_to_vertical_mixing" unit="degC/s" /> 689 786 <field id="strd_zdf" long_name="salinity -trend: vertical diffusion" standard_name="tendency_of_sea_water_salinity_due_to_vertical_mixing" unit="1e-3/s" /> 787 <field id="ttrd_evd" long_name="temperature-trend: EVD convection" unit="degC/s" /> 788 <field id="strd_evd" long_name="salinity -trend: EVD convection" unit="1e-3/s" /> 690 789 691 790 <!-- ln_traldf_iso=T only (iso-neutral diffusion) --> 791 <field id="ttrd_iso_x" long_name="temperature-trend: isopycnal diffusion x-component" unit="degC/s" /> 792 <field id="strd_iso_x" long_name="salinity -trend: isopycnal diffusion x-component" unit="1e-3/s" /> 793 <field id="ttrd_iso_y" long_name="temperature-trend: isopycnal diffusion y-component" unit="degC/s" /> 794 <field id="strd_iso_y" long_name="salinity -trend: isopycnal diffusion y-component" unit="1e-3/s" /> 795 <field id="ttrd_iso_z1" long_name="temperature-trend: isopycnal diffusion z-component part 1" unit="degC/s" /> 796 <field id="strd_iso_z1" long_name="salinity -trend: isopycnal diffusion z-component part 1" unit="1e-3/s" /> 797 <field id="ttrd_iso_z" long_name="temperature-trend: isopycnal diffusion z-component" unit="degC/s" > ttrd_iso_z1 + ttrd_zdf - ttrd_zdfp </field> 798 <field id="strd_iso_z" long_name="salinity -trend: isopycnal diffusion z-component" unit="1e-3/s" > strd_iso_z1 + strd_zdf - strd_zdfp </field> 799 <field id="ttrd_iso" long_name="temperature-trend: isopycnal diffusion" unit="degC/s" > ttrd_ldf + ttrd_zdf - ttrd_zdfp </field> 800 <field id="strd_iso" long_name="salinity -trend: isopycnal diffusion" unit="1e-3/s" > strd_ldf + strd_zdf - strd_zdfp </field> 692 801 <field id="ttrd_zdfp" long_name="temperature-trend: pure vert. diffusion" unit="degC/s" /> 693 802 <field id="strd_zdfp" long_name="salinity -trend: pure vert. diffusion" unit="1e-3/s" /> 694 803 695 804 <!-- --> 696 <field id="ttrd_dmp" long_name="temperature-trend: interior restoring" unit="degC/s" /> 697 <field id="strd_dmp" long_name="salinity -trend: interior restoring" unit="1e-3/s" /> 698 <field id="ttrd_bbl" long_name="temperature-trend: bottom boundary layer" unit="degC/s" /> 699 <field id="strd_bbl" long_name="salinity -trend: bottom boundary layer" unit="1e-3/s" /> 700 <field id="ttrd_npc" long_name="temperature-trend: non-penetrative conv." unit="degC/s" /> 701 <field id="strd_npc" long_name="salinity -trend: non-penetrative conv." unit="1e-3/s" /> 702 <field id="ttrd_qns" long_name="temperature-trend: non-solar flux + runoff" unit="degC/s" /> 703 <field id="strd_cdt" long_name="salinity -trend: C/D term + runoff" unit="degC/s" /> 704 <field id="ttrd_qsr" long_name="temperature-trend: solar penetr. heating" unit="degC/s" /> 705 <field id="ttrd_bbc" long_name="temperature-trend: geothermal heating" unit="degC/s" /> 706 <field id="ttrd_atf" long_name="temperature-trend: asselin time filter" unit="degC/s" /> 707 <field id="strd_atf" long_name="salinity -trend: asselin time filter" unit="1e-3/s" /> 805 <field id="ttrd_dmp" long_name="temperature-trend: interior restoring" unit="degree_C/s" /> 806 <field id="strd_dmp" long_name="salinity -trend: interior restoring" unit="0.001/s" /> 807 <field id="ttrd_bbl" long_name="temperature-trend: bottom boundary layer" unit="degree_C/s" /> 808 <field id="strd_bbl" long_name="salinity -trend: bottom boundary layer" unit="0.001/s" /> 809 <field id="ttrd_npc" long_name="temperature-trend: non-penetrative conv." unit="degree_C/s" /> 810 <field id="strd_npc" long_name="salinity -trend: non-penetrative conv." unit="0.001/s" /> 811 <field id="ttrd_qns" long_name="temperature-trend: non-solar flux + runoff" unit="degC/s" grid_ref="grid_T_2D"/> 812 <field id="strd_cdt" long_name="salinity -trend: C/D term + runoff" unit="degC/s" grid_ref="grid_T_2D"/> 813 <field id="ttrd_qsr" long_name="temperature-trend: solar penetr. heating" unit="degree_C/s" /> 814 <field id="ttrd_bbc" long_name="temperature-trend: geothermal heating" unit="degree_C/s" /> 815 <field id="ttrd_atf" long_name="temperature-trend: asselin time filter" unit="degree_C/s" /> 816 <field id="strd_atf" long_name="salinity -trend: asselin time filter" unit="0.001/s" /> 817 <field id="ttrd_tot" long_name="temperature-trend: total model trend" unit="degC/s" /> 818 <field id="strd_tot" long_name="salinity -trend: total model trend" unit="1e-3/s" /> 819 820 <!-- Thickness weighted versions: --> 821 <field id="ttrd_xad_e3t" unit="degC/s * m" > ttrd_xad * e3t </field> 822 <field id="strd_xad_e3t" unit="1e-3/s * m" > strd_xad * e3t </field> 823 <field id="ttrd_yad_e3t" unit="degC/s * m" > ttrd_yad * e3t </field> 824 <field id="strd_yad_e3t" unit="1e-3/s * m" > strd_yad * e3t </field> 825 <field id="ttrd_zad_e3t" unit="degC/s * m" > ttrd_zad * e3t </field> 826 <field id="strd_zad_e3t" unit="1e-3/s * m" > strd_zad * e3t </field> 827 <field id="ttrd_ad_e3t" unit="degC/s * m" > ttrd_ad * e3t </field> 828 <field id="strd_ad_e3t" unit="1e-3/s * m" > strd_ad * e3t </field> 829 <field id="ttrd_totad_e3t" unit="degC/s * m" > ttrd_totad * e3t </field> 830 <field id="strd_totad_e3t" unit="1e-3/s * m" > strd_totad * e3t </field> 831 <field id="ttrd_ldf_e3t" unit="degC/s * m" > ttrd_ldf * e3t </field> 832 <field id="strd_ldf_e3t" unit="1e-3/s * m" > strd_ldf * e3t </field> 833 <field id="ttrd_zdf_e3t" unit="degC/s * m" > ttrd_zdf * e3t </field> 834 <field id="strd_zdf_e3t" unit="1e-3/s * m" > strd_zdf * e3t </field> 835 <field id="ttrd_evd_e3t" unit="degC/s * m" > ttrd_evd * e3t </field> 836 <field id="strd_evd_e3t" unit="1e-3/s * m" > strd_evd * e3t </field> 837 838 <!-- ln_traldf_iso=T only (iso-neutral diffusion) --> 839 <field id="ttrd_iso_x_e3t" unit="degC/s * m" > ttrd_iso_x * e3t </field> 840 <field id="strd_iso_x_e3t" unit="1e-3/s * m" > strd_iso_x * e3t </field> 841 <field id="ttrd_iso_y_e3t" unit="degC/s * m" > ttrd_iso_y * e3t </field> 842 <field id="strd_iso_y_e3t" unit="1e-3/s * m" > strd_iso_y * e3t </field> 843 <field id="ttrd_iso_z_e3t" unit="degC/s * m" > ttrd_iso_z * e3t </field> 844 <field id="strd_iso_z_e3t" unit="1e-3/s * m" > strd_iso_z * e3t </field> 845 <field id="ttrd_iso_e3t" unit="degC/s * m" > ttrd_iso * e3t </field> 846 <field id="strd_iso_e3t" unit="1e-3/s * m" > strd_iso * e3t </field> 847 <field id="ttrd_zdfp_e3t" unit="degC/s * m" > ttrd_zdfp * e3t </field> 848 <field id="strd_zdfp_e3t" unit="1e-3/s * m" > strd_zdfp * e3t </field> 849 850 <!-- --> 851 <field id="ttrd_dmp_e3t" unit="degC/s * m" > ttrd_dmp * e3t </field> 852 <field id="strd_dmp_e3t" unit="1e-3/s * m" > strd_dmp * e3t </field> 853 <field id="ttrd_bbl_e3t" unit="degC/s * m" > ttrd_bbl * e3t </field> 854 <field id="strd_bbl_e3t" unit="1e-3/s * m" > strd_bbl * e3t </field> 855 <field id="ttrd_npc_e3t" unit="degC/s * m" > ttrd_npc * e3t </field> 856 <field id="strd_npc_e3t" unit="1e-3/s * m" > strd_npc * e3t </field> 857 <field id="ttrd_qns_e3t" unit="degC/s * m" > ttrd_qns * e3t_surf </field> 858 <field id="strd_cdt_e3t" unit="degC/s * m" > strd_cdt * e3t_surf </field> 859 <field id="ttrd_qsr_e3t" unit="degC/s * m" > ttrd_qsr * e3t </field> 860 <field id="ttrd_bbc_e3t" unit="degC/s * m" > ttrd_bbc * e3t </field> 861 <field id="ttrd_atf_e3t" unit="degC/s * m" > ttrd_atf * e3t </field> 862 <field id="strd_atf_e3t" unit="1e-3/s * m" > strd_atf * e3t </field> 863 <field id="ttrd_tot_e3t" unit="degC/s * m" > ttrd_tot * e3t </field> 864 <field id="strd_tot_e3t" unit="1e-3/s * m" > strd_tot * e3t </field> 708 865 709 866 <!-- variables available with ln_KE_trd --> … … 721 878 <field id="ketrd_zad" long_name="ke-trend: vertical advection" unit="W/s^3" /> 722 879 <field id="ketrd_udx" long_name="ke-trend: U.dx[U]" unit="W/s^3" /> 723 <field id="ketrd_ldf" long_name="ke-trend: lateral diffusion" unit="W/s^3" /> 880 <field id="ketrd_ldf" long_name="ke-trend: lateral diffusion" unit="W/m^3" /> 881 <field id="ketrd_ldf_e3t" field_ref="ketrd_ldf" long_name="ke-trend: lateral diffusion * e3t" unit="W/m^2" >ketrd_ldf*e3t</field> 882 <field id="ketrd_ldf_vsum" field_ref="ketrd_ldf_e3t" long_name="ke-trend: lateral diffusion vertical integral" unit="W/m^2" grid_ref="vert_sum" /> 724 883 <field id="ketrd_zdf" long_name="ke-trend: vertical diffusion" unit="W/s^3" /> 725 884 <field id="ketrd_tau" long_name="ke-trend: wind stress " unit="W/s^3" grid_ref="grid_T_2D" /> … … 729 888 <field id="ketrd_convP2K" long_name="ke-trend: conversion (potential to kinetic)" unit="W/s^3" /> 730 889 <field id="KE" long_name="kinetic energy: u(n)*u(n+1)/2" unit="W/s^2" /> 890 <field id="ketrd_eiv" long_name="Kinetic energy trend from mesoscale eddy advection" unit="W/s^2" grid_ref="grid_T_2D" /> 731 891 732 892 <!-- variables available with ln_PE_trd --> … … 746 906 <field id="petrd_atf" long_name="pe-trend: asselin time filter" unit="W/m^3" /> 747 907 <field id="PEanom" long_name="potential energy anomaly" unit="1" /> 748 <field id="alphaPE" long_name="partial deriv. of PEanom wrt T" unit="deg C-1" />908 <field id="alphaPE" long_name="partial deriv. of PEanom wrt T" unit="degree_C-1" /> 749 909 <field id="betaPE" long_name="partial deriv. of PEanom wrt S" unit="1e3" /> 910 <field id="petrd_zdfp_e3t" unit="W/m^2" grid_ref="grid_T_3D" > petrd_zdfp * e3t </field> 911 <field id="petrd_2d" field_ref="petrd_zdfp_e3t" grid_ref="vert_sum" /> 750 912 </field_group> 751 913 … … 954 1116 <field id="INTPBSI" long_name="Vertically integrated of biogenic Si production" unit="mol/m2/s" /> 955 1117 <field id="INTPCAL" long_name="Vertically integrated of calcite production" unit="mol/m2/s" /> 1118 <field id="tnpeo" long_name="Tendency of ocean potential energy content" unit="W/m2" /> 956 1119 957 1120 <!-- PISCES light : variables available with key_pisces_reduced --> … … 986 1149 <field id="qintC14b" long_name="Cumulative air-sea flux of Bomb C14" unit="mol/m2" /> 987 1150 <field id="fdecay" long_name="Radiactive decay of Bomb C14" unit="mol/m3" grid_ref="grid_T_3D" /> 1151 1152 <!-- Ideal Age tracer (added using MY_TRC for now) --> 1153 <field id="Age" long_name="Sea Water Age Since Surface Contact" standard_name="sea_water_age_since_first_contact" unit="yr" grid_ref="grid_T_3D" /> 988 1154 </field_group> 989 1155 -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/CONFIG/SHARED/namelist_ref
r6804 r7923 380 380 ln_coupled_iceshelf_fluxes = .false. ! If true use rate of change of mass of Greenland and Antarctic icesheets to set the 381 381 ! combined magnitude of the iceberg calving and iceshelf melting freshwater fluxes. 382 ln_iceshelf_init_atmos = .true. ! If true force ocean to initialise icesheet masses from atmospheric values rather than 383 ! from values in ocean restart file. 382 384 rn_greenland_calving_fraction = 0.5 ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 383 385 rn_antarctica_calving_fraction = 0.5 ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90
r6793 r7923 24 24 USE phycst ! physical constant 25 25 USE in_out_manager ! I/O manager 26 USE zdfddm 27 USE zdf_oce 26 28 27 29 IMPLICIT NONE … … 42 44 !! * Substitutions 43 45 # include "domzgr_substitute.h90" 46 # include "zdfddm_substitute.h90" 44 47 !!---------------------------------------------------------------------- 45 48 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 75 78 INTEGER :: ji, jj, jk ! dummy loop arguments 76 79 REAL(wp) :: zvolssh, zvol, zssh_steric, zztmp, zarho, ztemp, zsal, zmass 80 REAL(wp) :: zaw, zbw, zrw 77 81 ! 78 82 REAL(wp), POINTER, DIMENSION(:,:) :: zarea_ssh , zbotpres ! 2D workspace 83 REAL(wp), POINTER, DIMENSION(:,:) :: pe ! 2D workspace 79 84 REAL(wp), POINTER, DIMENSION(:,:,:) :: zrhd , zrhop ! 3D workspace 80 85 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztsn ! 4D workspace 81 86 !!-------------------------------------------------------------------- 82 87 IF( nn_timing == 1 ) CALL timing_start('dia_ar5') 88 89 !Call to init moved to here so that we can call iom_use in the 90 !initialisation 91 IF( kt == nit000 ) CALL dia_ar5_init 83 92 84 CALL wrk_alloc( jpi , jpj , zarea_ssh , zbotpres )93 CALL wrk_alloc( jpi , jpj , zarea_ssh , zbotpres, pe ) 85 94 CALL wrk_alloc( jpi , jpj , jpk , zrhd , zrhop ) 86 95 CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn ) … … 95 104 CALL iom_put( 'voltot', zvol ) 96 105 CALL iom_put( 'sshtot', zvolssh / area_tot ) 106 CALL iom_put( 'sshdyn', sshn(:,:) - (zvolssh / area_tot) ) 97 107 98 108 ! 99 ztsn(:,:,:,jp_tem) = tsn(:,:,:,jp_tem) ! thermosteric ssh 100 ztsn(:,:,:,jp_sal) = sn0(:,:,:) 101 CALL eos( ztsn, zrhd, fsdept_n(:,:,:) ) ! now in situ density using initial salinity 102 ! 103 zbotpres(:,:) = 0._wp ! no atmospheric surface pressure, levitating sea-ice 104 DO jk = 1, jpkm1 105 zbotpres(:,:) = zbotpres(:,:) + fse3t(:,:,jk) * zrhd(:,:,jk) 106 END DO 107 IF( .NOT.lk_vvl ) THEN 108 IF ( ln_isfcav ) THEN 109 DO ji=1,jpi 110 DO jj=1,jpj 111 zbotpres(ji,jj) = zbotpres(ji,jj) + sshn(ji,jj) * zrhd(ji,jj,mikt(ji,jj)) + riceload(ji,jj) 109 IF( iom_use('sshthster')) THEN 110 ztsn(:,:,:,jp_tem) = tsn(:,:,:,jp_tem) ! thermosteric ssh 111 ztsn(:,:,:,jp_sal) = sn0(:,:,:) 112 CALL eos( ztsn, zrhd, fsdept_n(:,:,:) ) ! now in situ density using initial salinity 113 ! 114 zbotpres(:,:) = 0._wp ! no atmospheric surface pressure, levitating sea-ice 115 DO jk = 1, jpkm1 116 zbotpres(:,:) = zbotpres(:,:) + fse3t(:,:,jk) * zrhd(:,:,jk) 117 END DO 118 IF( .NOT.lk_vvl ) THEN 119 IF ( ln_isfcav ) THEN 120 DO ji=1,jpi 121 DO jj=1,jpj 122 zbotpres(ji,jj) = zbotpres(ji,jj) + sshn(ji,jj) * zrhd(ji,jj,mikt(ji,jj)) + riceload(ji,jj) 123 END DO 112 124 END DO 113 E ND DO114 ELSE115 zbotpres(:,:) = zbotpres(:,:) + sshn(:,:) * zrhd(:,:,1)125 ELSE 126 zbotpres(:,:) = zbotpres(:,:) + sshn(:,:) * zrhd(:,:,1) 127 END IF 116 128 END IF 117 END IF118 129 ! 119 zarho = SUM( area(:,:) * zbotpres(:,:) ) 120 IF( lk_mpp ) CALL mpp_sum( zarho ) 121 zssh_steric = - zarho / area_tot 122 CALL iom_put( 'sshthster', zssh_steric ) 130 zarho = SUM( area(:,:) * zbotpres(:,:) ) 131 IF( lk_mpp ) CALL mpp_sum( zarho ) 132 zssh_steric = - zarho / area_tot 133 CALL iom_put( 'sshthster', zssh_steric ) 134 ENDIF 123 135 124 136 ! ! steric sea surface height … … 190 202 CALL iom_put( 'temptot', ztemp ) 191 203 CALL iom_put( 'saltot' , zsal ) 192 ! 193 CALL wrk_dealloc( jpi , jpj , zarea_ssh , zbotpres ) 204 205 IF( iom_use( 'tnpeo' )) THEN 206 ! Work done against stratification by vertical mixing 207 ! Exclude points where rn2 is negative as convection kicks in here and 208 ! work is not being done against stratification 209 pe(:,:) = 0._wp 210 IF( lk_zdfddm ) THEN 211 DO ji=1,jpi 212 DO jj=1,jpj 213 DO jk=1,jpk 214 zrw = ( fsdepw(ji,jj,jk ) - fsdept(ji,jj,jk) ) & 215 & / ( fsdept(ji,jj,jk-1) - fsdept(ji,jj,jk) ) 216 ! 217 zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 218 zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 219 ! 220 pe(ji, jj) = pe(ji, jj) - MIN(0._wp, rn2(ji,jj,jk)) * & 221 & grav * (avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) ) & 222 & - fsavs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 223 224 ENDDO 225 ENDDO 226 ENDDO 227 ELSE 228 DO ji=1,jpi 229 DO jj=1,jpj 230 DO jk=1,jpk 231 pe(ji,jj) = pe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * fse3w(ji, jj, jk) 232 ENDDO 233 ENDDO 234 ENDDO 235 ENDIF 236 CALL iom_put( 'tnpeo', pe ) 237 ENDIF 238 ! 239 CALL wrk_dealloc( jpi , jpj , zarea_ssh , zbotpres, pe ) 194 240 CALL wrk_dealloc( jpi , jpj , jpk , zrhd , zrhop ) 195 241 CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn ) … … 232 278 IF( lk_mpp ) CALL mpp_sum( vol0 ) 233 279 234 CALL iom_open ( 'sali_ref_clim_monthly', inum ) 235 CALL iom_get ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,1), 1 ) 236 CALL iom_get ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,2), 12 ) 237 CALL iom_close( inum ) 238 239 sn0(:,:,:) = 0.5_wp * ( zsaldta(:,:,:,1) + zsaldta(:,:,:,2) ) 240 sn0(:,:,:) = sn0(:,:,:) * tmask(:,:,:) 241 IF( ln_zps ) THEN ! z-coord. partial steps 242 DO jj = 1, jpj ! interpolation of salinity at the last ocean level (i.e. the partial step) 243 DO ji = 1, jpi 244 ik = mbkt(ji,jj) 245 IF( ik > 1 ) THEN 246 zztmp = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 247 sn0(ji,jj,ik) = ( 1._wp - zztmp ) * sn0(ji,jj,ik) + zztmp * sn0(ji,jj,ik-1) 248 ENDIF 280 IF( iom_use('sshthster')) THEN 281 CALL iom_open ( 'sali_ref_clim_monthly', inum ) 282 CALL iom_get ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,1), 1 ) 283 CALL iom_get ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,2), 12 ) 284 CALL iom_close( inum ) 285 286 sn0(:,:,:) = 0.5_wp * ( zsaldta(:,:,:,1) + zsaldta(:,:,:,2) ) 287 sn0(:,:,:) = sn0(:,:,:) * tmask(:,:,:) 288 IF( ln_zps ) THEN ! z-coord. partial steps 289 DO jj = 1, jpj ! interpolation of salinity at the last ocean level (i.e. the partial step) 290 DO ji = 1, jpi 291 ik = mbkt(ji,jj) 292 IF( ik > 1 ) THEN 293 zztmp = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 294 sn0(ji,jj,ik) = ( 1._wp - zztmp ) * sn0(ji,jj,ik) + zztmp * sn0(ji,jj,ik-1) 295 ENDIF 296 END DO 249 297 END DO 250 END DO298 ENDIF 251 299 ENDIF 252 300 ! -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/DIA/diaprod.F90
r6491 r7923 25 25 USE timing ! preformance summary 26 26 USE wrk_nemo ! working array 27 USE diaptr 27 28 28 29 IMPLICIT NONE … … 98 99 ENDIF 99 100 100 IF( iom_use("vt") ) THEN101 IF( iom_use("vt") .OR. iom_use("sopht_vt") ) THEN 101 102 z3d(:,:,:) = 0.e0 102 103 DO jk = 1, jpkm1 … … 108 109 END DO 109 110 CALL iom_put( "vt", z3d ) ! product of temperature and meridional velocity at V points 111 DO jk = 1, jpkm1 112 DO jj = 2, jpjm1 113 DO ji = fs_2, fs_jpim1 ! vector opt. 114 z3d(ji,jj,jk) = z3d(ji,jj,jk) * fse3v(ji,jj,jk) * e1v(ji,jj) 115 END DO 116 END DO 117 END DO 118 IF(ln_diaptr) CALL dia_ptr_ohst_components( jp_tem, 'vts', z3d) 110 119 ENDIF 111 120 … … 139 148 ENDIF 140 149 141 IF( iom_use("vs") ) THEN150 IF( iom_use("vs") .OR. iom_use("sopst_vs") ) THEN 142 151 z3d(:,:,:) = 0.e0 143 152 DO jk = 1, jpkm1 … … 149 158 END DO 150 159 CALL iom_put( "vs", z3d ) ! product of salinity and meridional velocity at V points 160 DO jk = 1, jpkm1 161 DO jj = 2, jpjm1 162 DO ji = fs_2, fs_jpim1 ! vector opt. 163 z3d(ji,jj,jk) = z3d(ji,jj,jk) * fse3v(ji,jj,jk) * e1v(ji,jj) 164 END DO 165 END DO 166 END DO 167 IF(ln_diaptr) CALL dia_ptr_ohst_components( jp_sal, 'vts', z3d) 151 168 ENDIF 152 169 -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r6486 r7923 9 9 !! 3.3 ! 2010-10 (G. Madec) dynamical allocation 10 10 !! 3.6 ! 2014-12 (C. Ethe) use of IOM 11 !! 3.6 ! 2016-06 (T. Graham) Addition of diagnostics for CMIP6 11 12 !!---------------------------------------------------------------------- 12 13 … … 21 22 USE dom_oce ! ocean space and time domain 22 23 USE phycst ! physical constants 24 USE ldftra_oce 23 25 ! 24 26 USE iom ! IOM library … … 38 40 PUBLIC dia_ptr_init ! call in step module 39 41 PUBLIC dia_ptr ! call in step module 42 PUBLIC dia_ptr_ohst_components ! called from tra_ldf/tra_adv routines 40 43 41 44 ! !!** namelist namptr ** 42 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:) :: htr_adv, htr_ldf !: Heat TRansports (adv, diff, overturn.) 43 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:) :: str_adv, str_ldf !: Salt TRansports (adv, diff, overturn.) 44 45 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_adv, htr_ldf, htr_eiv, htr_vt !: Heat TRansports (adv, diff, Bolus.) 46 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: str_adv, str_ldf, str_eiv, str_vs !: Salt TRansports (adv, diff, Bolus.) 47 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_ove, str_ove !: heat Salt TRansports ( overturn.) 48 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_btr, str_btr !: heat Salt TRansports ( barotropic ) 45 49 46 50 LOGICAL, PUBLIC :: ln_diaptr ! Poleward transport flag (T) or not (F) 47 51 LOGICAL, PUBLIC :: ln_subbas ! Atlantic/Pacific/Indian basins calculation 48 INTEGER 52 INTEGER, PUBLIC :: nptr ! = 1 (l_subbas=F) or = 5 (glo, atl, pac, ind, ipc) (l_subbas=T) 49 53 50 54 REAL(wp) :: rc_sv = 1.e-6_wp ! conversion from m3/s to Sverdrup … … 77 81 ! 78 82 INTEGER :: ji, jj, jk, jn ! dummy loop indices 79 REAL(wp) :: z v, zsfc ! local scalar83 REAL(wp) :: zsfc,zvfc ! local scalar 80 84 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 81 85 REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d ! 3D workspace 82 86 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask ! 3D workspace 83 87 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: zts ! 3D workspace 84 CHARACTER( len = 10 ) :: cl1 88 REAL(wp), DIMENSION(jpj) :: vsum ! 1D workspace 89 REAL(wp), DIMENSION(jpj,jpts) :: tssum ! 1D workspace 90 91 ! 92 !overturning calculation 93 REAL(wp), DIMENSION(jpj,jpk,nptr) :: sjk , r1_sjk ! i-mean i-k-surface and its inverse 94 REAL(wp), DIMENSION(jpj,jpk,nptr) :: v_msf, sn_jk , tn_jk ! i-mean T and S, j-Stream-Function 95 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zvn ! 3D workspace 96 97 98 CHARACTER( len = 12 ) :: cl1 85 99 !!---------------------------------------------------------------------- 86 100 ! … … 111 125 END DO 112 126 ENDIF 127 IF( iom_use("sopstove") .OR. iom_use("sophtove") .OR. iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 128 ! define fields multiplied by scalar 129 zmask(:,:,:) = 0._wp 130 zts(:,:,:,:) = 0._wp 131 zvn(:,:,:) = 0._wp 132 DO jk = 1, jpkm1 133 DO jj = 1, jpjm1 134 DO ji = 1, jpi 135 zvfc = e1v(ji,jj) * fse3v(ji,jj,jk) 136 zmask(ji,jj,jk) = vmask(ji,jj,jk) * zvfc 137 zts(ji,jj,jk,jp_tem) = (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * 0.5 * zvfc !Tracers averaged onto V grid 138 zts(ji,jj,jk,jp_sal) = (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) * 0.5 * zvfc 139 zvn(ji,jj,jk) = vn(ji,jj,jk) * zvfc 140 ENDDO 141 ENDDO 142 ENDDO 143 ENDIF 144 IF( iom_use("sopstove") .OR. iom_use("sophtove") ) THEN 145 sjk(:,:,1) = ptr_sjk( zmask(:,:,:), btmsk(:,:,1) ) 146 r1_sjk(:,:,1) = 0._wp 147 WHERE( sjk(:,:,1) /= 0._wp ) r1_sjk(:,:,1) = 1._wp / sjk(:,:,1) 148 149 ! i-mean T and S, j-Stream-Function, global 150 tn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_tem) ) * r1_sjk(:,:,1) 151 sn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_sal) ) * r1_sjk(:,:,1) 152 v_msf(:,:,1) = ptr_sjk( zvn(:,:,:) ) 153 154 htr_ove(:,1) = SUM( v_msf(:,:,1)*tn_jk(:,:,1) ,2 ) 155 str_ove(:,1) = SUM( v_msf(:,:,1)*sn_jk(:,:,1) ,2 ) 156 157 z2d(1,:) = htr_ove(:,1) * rc_pwatt ! (conversion in PW) 158 DO ji = 1, jpi 159 z2d(ji,:) = z2d(1,:) 160 ENDDO 161 cl1 = 'sophtove' 162 CALL iom_put( TRIM(cl1), z2d ) 163 z2d(1,:) = str_ove(:,1) * rc_ggram ! (conversion in Gg) 164 DO ji = 1, jpi 165 z2d(ji,:) = z2d(1,:) 166 ENDDO 167 cl1 = 'sopstove' 168 CALL iom_put( TRIM(cl1), z2d ) 169 IF( ln_subbas ) THEN 170 DO jn = 2, nptr 171 sjk(:,:,jn) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 172 r1_sjk(:,:,jn) = 0._wp 173 WHERE( sjk(:,:,jn) /= 0._wp ) r1_sjk(:,:,jn) = 1._wp / sjk(:,:,jn) 174 175 ! i-mean T and S, j-Stream-Function, basin 176 tn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 177 sn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 178 v_msf(:,:,jn) = ptr_sjk( zvn(:,:,:), btmsk(:,:,jn) ) 179 htr_ove(:,jn) = SUM( v_msf(:,:,jn)*tn_jk(:,:,jn) ,2 ) 180 str_ove(:,jn) = SUM( v_msf(:,:,jn)*sn_jk(:,:,jn) ,2 ) 181 182 z2d(1,:) = htr_ove(:,jn) * rc_pwatt ! (conversion in PW) 183 DO ji = 1, jpi 184 z2d(ji,:) = z2d(1,:) 185 ENDDO 186 cl1 = TRIM('sophtove_'//clsubb(jn)) 187 CALL iom_put( cl1, z2d ) 188 z2d(1,:) = str_ove(:,jn) * rc_ggram ! (conversion in Gg) 189 DO ji = 1, jpi 190 z2d(ji,:) = z2d(1,:) 191 ENDDO 192 cl1 = TRIM('sopstove_'//clsubb(jn)) 193 CALL iom_put( cl1, z2d ) 194 END DO 195 ENDIF 196 ENDIF 197 IF( iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 198 ! Calculate barotropic heat and salt transport here 199 sjk(:,1,1) = ptr_sj( zmask(:,:,:), btmsk(:,:,1) ) 200 r1_sjk(:,1,1) = 0._wp 201 WHERE( sjk(:,1,1) /= 0._wp ) r1_sjk(:,1,1) = 1._wp / sjk(:,1,1) 202 203 vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) 204 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) 205 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) 206 htr_btr(:,1) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,1) 207 str_btr(:,1) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,1) 208 z2d(1,:) = htr_btr(:,1) * rc_pwatt ! (conversion in PW) 209 DO ji = 2, jpi 210 z2d(ji,:) = z2d(1,:) 211 ENDDO 212 cl1 = 'sophtbtr' 213 CALL iom_put( TRIM(cl1), z2d ) 214 z2d(1,:) = str_btr(:,1) * rc_ggram ! (conversion in Gg) 215 DO ji = 2, jpi 216 z2d(ji,:) = z2d(1,:) 217 ENDDO 218 cl1 = 'sopstbtr' 219 CALL iom_put( TRIM(cl1), z2d ) 220 IF( ln_subbas ) THEN 221 DO jn = 2, nptr 222 sjk(:,1,jn) = ptr_sj( zmask(:,:,:), btmsk(:,:,jn) ) 223 r1_sjk(:,1,jn) = 0._wp 224 WHERE( sjk(:,1,jn) /= 0._wp ) r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 225 vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,jn)) 226 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 227 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 228 htr_btr(:,jn) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,jn) 229 str_btr(:,jn) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,jn) 230 z2d(1,:) = htr_btr(:,jn) * rc_pwatt ! (conversion in PW) 231 DO ji = 1, jpi 232 z2d(ji,:) = z2d(1,:) 233 ENDDO 234 cl1 = TRIM('sophtbtr_'//clsubb(jn)) 235 CALL iom_put( cl1, z2d ) 236 z2d(1,:) = str_btr(:,jn) * rc_ggram ! (conversion in Gg) 237 DO ji = 1, jpi 238 z2d(ji,:) = z2d(1,:) 239 ENDDO 240 cl1 = TRIM('sopstbtr_'//clsubb(jn)) 241 CALL iom_put( cl1, z2d ) 242 ENDDO 243 ENDIF !ln_subbas 244 ENDIF !iom_use("sopstbtr....) 113 245 ! 114 246 ELSE … … 150 282 ! ! Advective and diffusive heat and salt transport 151 283 IF( iom_use("sophtadv") .OR. iom_use("sopstadv") ) THEN 152 z2d(1,:) = htr_adv(: ) * rc_pwatt ! (conversion in PW)284 z2d(1,:) = htr_adv(:,1) * rc_pwatt ! (conversion in PW) 153 285 DO ji = 1, jpi 154 286 z2d(ji,:) = z2d(1,:) … … 156 288 cl1 = 'sophtadv' 157 289 CALL iom_put( TRIM(cl1), z2d ) 158 z2d(1,:) = str_adv(: ) * rc_ggram ! (conversion in Gg)290 z2d(1,:) = str_adv(:,1) * rc_ggram ! (conversion in Gg) 159 291 DO ji = 1, jpi 160 292 z2d(ji,:) = z2d(1,:) … … 162 294 cl1 = 'sopstadv' 163 295 CALL iom_put( TRIM(cl1), z2d ) 296 IF( ln_subbas ) THEN 297 DO jn=2,nptr 298 z2d(1,:) = htr_adv(:,jn) * rc_pwatt ! (conversion in PW) 299 DO ji = 1, jpi 300 z2d(ji,:) = z2d(1,:) 301 ENDDO 302 cl1 = TRIM('sophtadv_'//clsubb(jn)) 303 CALL iom_put( cl1, z2d ) 304 z2d(1,:) = str_adv(:,jn) * rc_ggram ! (conversion in Gg) 305 DO ji = 1, jpi 306 z2d(ji,:) = z2d(1,:) 307 ENDDO 308 cl1 = TRIM('sopstadv_'//clsubb(jn)) 309 CALL iom_put( cl1, z2d ) 310 ENDDO 311 ENDIF 164 312 ENDIF 165 313 ! 166 314 IF( iom_use("sophtldf") .OR. iom_use("sopstldf") ) THEN 167 z2d(1,:) = htr_ldf(: ) * rc_pwatt ! (conversion in PW)315 z2d(1,:) = htr_ldf(:,1) * rc_pwatt ! (conversion in PW) 168 316 DO ji = 1, jpi 169 317 z2d(ji,:) = z2d(1,:) … … 171 319 cl1 = 'sophtldf' 172 320 CALL iom_put( TRIM(cl1), z2d ) 173 z2d(1,:) = str_ldf(: ) * rc_ggram ! (conversion in Gg)321 z2d(1,:) = str_ldf(:,1) * rc_ggram ! (conversion in Gg) 174 322 DO ji = 1, jpi 175 323 z2d(ji,:) = z2d(1,:) … … 177 325 cl1 = 'sopstldf' 178 326 CALL iom_put( TRIM(cl1), z2d ) 179 ENDIF 327 IF( ln_subbas ) THEN 328 DO jn=2,nptr 329 z2d(1,:) = htr_ldf(:,jn) * rc_pwatt ! (conversion in PW) 330 DO ji = 1, jpi 331 z2d(ji,:) = z2d(1,:) 332 ENDDO 333 cl1 = TRIM('sophtldf_'//clsubb(jn)) 334 CALL iom_put( cl1, z2d ) 335 z2d(1,:) = str_ldf(:,jn) * rc_ggram ! (conversion in Gg) 336 DO ji = 1, jpi 337 z2d(ji,:) = z2d(1,:) 338 ENDDO 339 cl1 = TRIM('sopstldf_'//clsubb(jn)) 340 CALL iom_put( cl1, z2d ) 341 ENDDO 342 ENDIF 343 ENDIF 344 345 IF( iom_use("sopht_vt") .OR. iom_use("sopst_vs") ) THEN 346 z2d(1,:) = htr_vt(:,1) * rc_pwatt ! (conversion in PW) 347 DO ji = 1, jpi 348 z2d(ji,:) = z2d(1,:) 349 ENDDO 350 cl1 = 'sopht_vt' 351 CALL iom_put( TRIM(cl1), z2d ) 352 z2d(1,:) = str_vs(:,1) * rc_ggram ! (conversion in Gg) 353 DO ji = 1, jpi 354 z2d(ji,:) = z2d(1,:) 355 ENDDO 356 cl1 = 'sopst_vs' 357 CALL iom_put( TRIM(cl1), z2d ) 358 IF( ln_subbas ) THEN 359 DO jn=2,nptr 360 z2d(1,:) = htr_vt(:,jn) * rc_pwatt ! (conversion in PW) 361 DO ji = 1, jpi 362 z2d(ji,:) = z2d(1,:) 363 ENDDO 364 cl1 = TRIM('sopht_vt_'//clsubb(jn)) 365 CALL iom_put( cl1, z2d ) 366 z2d(1,:) = str_vs(:,jn) * rc_ggram ! (conversion in Gg) 367 DO ji = 1, jpi 368 z2d(ji,:) = z2d(1,:) 369 ENDDO 370 cl1 = TRIM('sopst_vs_'//clsubb(jn)) 371 CALL iom_put( cl1, z2d ) 372 ENDDO 373 ENDIF 374 ENDIF 375 376 #ifdef key_diaeiv 377 IF(lk_traldf_eiv) THEN 378 IF( iom_use("sophteiv") .OR. iom_use("sopsteiv") ) THEN 379 z2d(1,:) = htr_eiv(:,1) * rc_pwatt ! (conversion in PW) 380 DO ji = 1, jpi 381 z2d(ji,:) = z2d(1,:) 382 ENDDO 383 cl1 = 'sophteiv' 384 CALL iom_put( TRIM(cl1), z2d ) 385 z2d(1,:) = str_eiv(:,1) * rc_ggram ! (conversion in Gg) 386 DO ji = 1, jpi 387 z2d(ji,:) = z2d(1,:) 388 ENDDO 389 cl1 = 'sopsteiv' 390 CALL iom_put( TRIM(cl1), z2d ) 391 IF( ln_subbas ) THEN 392 DO jn=2,nptr 393 z2d(1,:) = htr_eiv(:,jn) * rc_pwatt ! (conversion in PW) 394 DO ji = 1, jpi 395 z2d(ji,:) = z2d(1,:) 396 ENDDO 397 cl1 = TRIM('sophteiv_'//clsubb(jn)) 398 CALL iom_put( cl1, z2d ) 399 z2d(1,:) = str_eiv(:,jn) * rc_ggram ! (conversion in Gg) 400 DO ji = 1, jpi 401 z2d(ji,:) = z2d(1,:) 402 ENDDO 403 cl1 = TRIM('sopsteiv_'//clsubb(jn)) 404 CALL iom_put( cl1, z2d ) 405 ENDDO 406 ENDIF 407 ENDIF 408 ENDIF 409 #endif 180 410 ! 181 411 ENDIF … … 256 486 ! Initialise arrays to zero because diatpr is called before they are first calculated 257 487 ! Note that this means diagnostics will not be exactly correct when model run is restarted. 258 htr_adv(:) = 0._wp ; str_adv(:) = 0._wp 259 htr_ldf(:) = 0._wp ; str_ldf(:) = 0._wp 488 htr_adv(:,:) = 0._wp ; str_adv(:,:) = 0._wp 489 htr_ldf(:,:) = 0._wp ; str_ldf(:,:) = 0._wp 490 htr_eiv(:,:) = 0._wp ; str_eiv(:,:) = 0._wp 491 htr_vt(:,:) = 0._wp ; str_vs(:,:) = 0._wp 492 htr_ove(:,:) = 0._wp ; str_ove(:,:) = 0._wp 493 htr_btr(:,:) = 0._wp ; str_btr(:,:) = 0._wp 260 494 ! 261 495 ENDIF … … 263 497 END SUBROUTINE dia_ptr_init 264 498 499 SUBROUTINE dia_ptr_ohst_components( ktra, cptr, pva ) 500 !!---------------------------------------------------------------------- 501 !! *** ROUTINE dia_ptr_ohst_components *** 502 !!---------------------------------------------------------------------- 503 !! Wrapper for heat and salt transport calculations to calculate them for each basin 504 !! Called from all advection and/or diffusion routines 505 !!---------------------------------------------------------------------- 506 INTEGER , INTENT(in ) :: ktra ! tracer index 507 CHARACTER(len=3) , INTENT(in) :: cptr ! transport type 'adv'/'ldf'/'eiv' 508 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: pva ! 3D input array of advection/diffusion 509 INTEGER :: jn ! 510 511 IF( cptr == 'adv' ) THEN 512 IF( ktra == jp_tem ) htr_adv(:,1) = ptr_sj( pva(:,:,:) ) 513 IF( ktra == jp_sal ) str_adv(:,1) = ptr_sj( pva(:,:,:) ) 514 ENDIF 515 IF( cptr == 'ldf' ) THEN 516 IF( ktra == jp_tem ) htr_ldf(:,1) = ptr_sj( pva(:,:,:) ) 517 IF( ktra == jp_sal ) str_ldf(:,1) = ptr_sj( pva(:,:,:) ) 518 ENDIF 519 IF( cptr == 'eiv' ) THEN 520 IF( ktra == jp_tem ) htr_eiv(:,1) = ptr_sj( pva(:,:,:) ) 521 IF( ktra == jp_sal ) str_eiv(:,1) = ptr_sj( pva(:,:,:) ) 522 ENDIF 523 IF( cptr == 'vts' ) THEN 524 IF( ktra == jp_tem ) htr_vt(:,1) = ptr_sj( pva(:,:,:) ) 525 IF( ktra == jp_sal ) str_vs(:,1) = ptr_sj( pva(:,:,:) ) 526 ENDIF 527 ! 528 IF( ln_subbas ) THEN 529 ! 530 IF( cptr == 'adv' ) THEN 531 IF( ktra == jp_tem ) THEN 532 DO jn = 2, nptr 533 htr_adv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 534 END DO 535 ENDIF 536 IF( ktra == jp_sal ) THEN 537 DO jn = 2, nptr 538 str_adv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 539 END DO 540 ENDIF 541 ENDIF 542 IF( cptr == 'ldf' ) THEN 543 IF( ktra == jp_tem ) THEN 544 DO jn = 2, nptr 545 htr_ldf(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 546 END DO 547 ENDIF 548 IF( ktra == jp_sal ) THEN 549 DO jn = 2, nptr 550 str_ldf(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 551 END DO 552 ENDIF 553 ENDIF 554 IF( cptr == 'eiv' ) THEN 555 IF( ktra == jp_tem ) THEN 556 DO jn = 2, nptr 557 htr_eiv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 558 END DO 559 ENDIF 560 IF( ktra == jp_sal ) THEN 561 DO jn = 2, nptr 562 str_eiv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 563 END DO 564 ENDIF 565 ENDIF 566 IF( cptr == 'vts' ) THEN 567 IF( ktra == jp_tem ) THEN 568 DO jn = 2, nptr 569 htr_vt(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 570 END DO 571 ENDIF 572 IF( ktra == jp_sal ) THEN 573 DO jn = 2, nptr 574 str_vs(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 575 END DO 576 ENDIF 577 ENDIF 578 ! 579 ENDIF 580 END SUBROUTINE dia_ptr_ohst_components 581 265 582 266 583 FUNCTION dia_ptr_alloc() … … 273 590 ierr(:) = 0 274 591 ! 275 ALLOCATE( btmsk(jpi,jpj,nptr) , & 276 & htr_adv(jpj) , str_adv(jpj) , & 277 & htr_ldf(jpj) , str_ldf(jpj) , STAT=ierr(1) ) 592 ALLOCATE( btmsk(jpi,jpj,nptr) , & 593 & htr_adv(jpj,nptr) , str_adv(jpj,nptr) , & 594 & htr_eiv(jpj,nptr) , str_eiv(jpj,nptr) , & 595 & htr_vt(jpj,nptr) , str_vs(jpj,nptr) , & 596 & htr_ove(jpj,nptr) , str_ove(jpj,nptr) , & 597 & htr_btr(jpj,nptr) , str_btr(jpj,nptr) , & 598 & htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1) ) 278 599 ! 279 600 ALLOCATE( p_fval1d(jpj), p_fval2d(jpj,jpk), Stat=ierr(2)) … … 402 723 #endif 403 724 !!-------------------------------------------------------------------- 404 725 ! 405 726 p_fval => p_fval2d 406 727 … … 434 755 #endif 435 756 ! 757 436 758 END FUNCTION ptr_sjk 437 759 -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r6498 r7923 157 157 IF( iom_use("e3tdef") ) & 158 158 CALL iom_put( "e3tdef" , ( ( fse3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 ) 159 CALL iom_put("tpt_dep", fsdept_n(:,:,:) ) 159 160 160 161 … … 323 324 CALL iom_put( "hdiv", hdivn ) ! Horizontal divergence 324 325 ! 325 IF( iom_use("u_masstr") .OR. iom_use("u_ heattr") .OR. iom_use("u_salttr") ) THEN326 IF( iom_use("u_masstr") .OR. iom_use("u_masstr_vint") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 326 327 z3d(:,:,jpk) = 0.e0 328 z2d(:,:) = 0.e0 327 329 DO jk = 1, jpkm1 328 330 z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk) 331 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 329 332 END DO 330 333 CALL iom_put( "u_masstr", z3d ) ! mass transport in i-direction 334 CALL iom_put( "u_masstr_vint", z2d ) ! mass transport in i-direction vertical sum 331 335 ENDIF 332 336 … … 391 395 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction 392 396 ENDIF 397 398 ! Vertical integral of temperature 399 IF( iom_use("tosmint") ) THEN 400 z2d(:,:)=0._wp 401 DO jk = 1, jpkm1 402 DO jj = 2, jpjm1 403 DO ji = fs_2, fs_jpim1 ! vector opt. 404 z2d(ji,jj) = z2d(ji,jj) + rau0 * fse3t(ji,jj,jk) * tsn(ji,jj,jk,jp_tem) 405 END DO 406 END DO 407 END DO 408 CALL lbc_lnk( z2d, 'T', -1. ) 409 CALL iom_put( "tosmint", z2d ) 410 ENDIF 411 412 ! Vertical integral of salinity 413 IF( iom_use("somint") ) THEN 414 z2d(:,:)=0._wp 415 DO jk = 1, jpkm1 416 DO jj = 2, jpjm1 417 DO ji = fs_2, fs_jpim1 ! vector opt. 418 z2d(ji,jj) = z2d(ji,jj) + rau0 * fse3t(ji,jj,jk) * tsn(ji,jj,jk,jp_sal) 419 END DO 420 END DO 421 END DO 422 CALL lbc_lnk( z2d, 'T', -1. ) 423 CALL iom_put( "somint", z2d ) 424 ENDIF 425 426 CALL iom_put( "bn2", rn2 ) !Brunt-Vaisala buoyancy frequency (N^2) 393 427 ! 394 428 CALL wrk_dealloc( jpi , jpj , z2d ) -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90
r6486 r7923 166 166 ! 167 167 ENDIF 168 IF( l_trddyn ) THEN ! Put here so code doesn't crash when doing KE trend but needs to be done properly 169 CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv ) 170 ENDIF 168 171 ! 169 172 ELSE ! fixed volume (add the surface pressure gradient + unweighted time stepping) -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r6498 r7923 228 228 ! automatic definitions of some of the xml attributs 229 229 CALL set_xmlatt 230 231 CALL set_1point 230 232 231 233 ! end file definition … … 1579 1581 END SUBROUTINE set_scalar 1580 1582 1583 SUBROUTINE set_1point 1584 !!---------------------------------------------------------------------- 1585 !! *** ROUTINE set_1point *** 1586 !! 1587 !! ** Purpose : define zoom grid for scalar fields 1588 !! 1589 !!---------------------------------------------------------------------- 1590 REAL(wp), DIMENSION(1) :: zz = 1. 1591 INTEGER :: ix, iy 1592 !!---------------------------------------------------------------------- 1593 CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! Nearest point to north pole should be ocean 1594 CALL iom_set_domain_attr('1point', zoom_ibegin=ix, zoom_jbegin=iy) 1595 1596 END SUBROUTINE set_1point 1597 1598 1581 1599 1582 1600 SUBROUTINE set_xmlatt -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r6488 r7923 155 155 LOGICAL, PUBLIC :: ln_coupled_iceshelf_fluxes ! If true use rate of change of mass of Greenland and Antarctic icesheets to set the 156 156 ! combined magnitude of the iceberg calving and iceshelf melting freshwater fluxes. 157 LOGICAL, PUBLIC :: ln_iceshelf_init_atmos ! If true force ocean to initialise iceshelf masses from atmospheric values rather 158 ! than values in ocean restart. 157 159 REAL(wp), PUBLIC :: rn_greenland_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 158 160 REAL(wp), PUBLIC :: rn_antarctica_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r6912 r7923 240 240 & sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf , sn_rcv_cal , sn_rcv_iceflx, & 241 241 & sn_rcv_co2 , sn_rcv_grnm , sn_rcv_antm , sn_rcv_ts_ice, nn_cplmodel , & 242 & ln_usecplmask, ln_coupled_iceshelf_fluxes, rn_greenland_calving_fraction, & 242 & ln_usecplmask, ln_coupled_iceshelf_fluxes, ln_iceshelf_init_atmos, & 243 & rn_greenland_calving_fraction, & 243 244 & rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance 244 245 !!--------------------------------------------------------------------- … … 311 312 WRITE(numout,*)' ln_usecplmask = ', ln_usecplmask 312 313 WRITE(numout,*)' ln_coupled_iceshelf_fluxes = ', ln_coupled_iceshelf_fluxes 314 WRITE(numout,*)' ln_iceshelf_init_atmos = ', ln_iceshelf_init_atmos 313 315 WRITE(numout,*)' rn_greenland_calving_fraction = ', rn_greenland_calving_fraction 314 316 WRITE(numout,*)' rn_antarctica_calving_fraction = ', rn_antarctica_calving_fraction … … 1344 1346 greenland_icesheet_mass_array(:,:) = frcv(jpr_grnm)%z3(:,:,1) 1345 1347 ! take average over ocean points of input array to avoid cumulative error over time 1346 1347 1348 ! The following must be bit reproducible over different PE decompositions 1348 1349 zgreenland_icesheet_mass_in = glob_sum( greenland_icesheet_mass_array(:,:) * tmask(:,:,1) ) … … 1350 1351 zgreenland_icesheet_mass_in = zgreenland_icesheet_mass_in / zmask_sum 1351 1352 greenland_icesheet_timelapsed = greenland_icesheet_timelapsed + rdt 1353 1354 IF( ln_iceshelf_init_atmos .AND. kt == 1 ) THEN 1355 ! On the first timestep (of an NRUN) force the ocean to ignore the icesheet masses in the ocean restart 1356 ! and take them from the atmosphere to avoid problems with using inconsistent ocean and atmosphere restarts. 1357 zgreenland_icesheet_mass_b = zgreenland_icesheet_mass_in 1358 greenland_icesheet_mass = zgreenland_icesheet_mass_in 1359 ENDIF 1360 1352 1361 IF( ABS( zgreenland_icesheet_mass_in - greenland_icesheet_mass ) > zepsilon ) THEN 1353 1362 zgreenland_icesheet_mass_b = greenland_icesheet_mass 1354 1363 1355 ! Only update the mass if it has increased 1364 ! Only update the mass if it has increased. 1356 1365 IF ( (zgreenland_icesheet_mass_in - greenland_icesheet_mass) > 0.0 ) THEN 1357 1366 greenland_icesheet_mass = zgreenland_icesheet_mass_in … … 1377 1386 zantarctica_icesheet_mass_in = zantarctica_icesheet_mass_in / zmask_sum 1378 1387 antarctica_icesheet_timelapsed = antarctica_icesheet_timelapsed + rdt 1388 1389 IF( ln_iceshelf_init_atmos .AND. kt == 1 ) THEN 1390 ! On the first timestep (of an NRUN) force the ocean to ignore the icesheet masses in the ocean restart 1391 ! and take them from the atmosphere to avoid problems with using inconsistent ocean and atmosphere restarts. 1392 zantarctica_icesheet_mass_b = zantarctica_icesheet_mass_in 1393 antarctica_icesheet_mass = zantarctica_icesheet_mass_in 1394 ENDIF 1395 1379 1396 IF( ABS( zantarctica_icesheet_mass_in - antarctica_icesheet_mass ) > zepsilon ) THEN 1380 1397 zantarctica_icesheet_mass_b = antarctica_icesheet_mass 1381 1398 1382 ! Only update the mass if it has increased 1399 ! Only update the mass if it has increased. 1383 1400 IF ( (zantarctica_icesheet_mass_in - antarctica_icesheet_mass) > 0.0 ) THEN 1384 1401 antarctica_icesheet_mass = zantarctica_icesheet_mass_in … … 1728 1745 zemp_ice(:,:) = ( frcv(jpr_ievp)%z3(:,:,1) - frcv(jpr_snow)%z3(:,:,1) ) * zicefr(:,:) 1729 1746 #endif 1730 CALL iom_put( 'rain' , frcv(jpr_rain)%z3(:,:,1) ) ! liquid precipitation 1747 CALL iom_put( 'rain' , frcv(jpr_rain)%z3(:,:,1) * tmask(:,:,1) ) ! liquid precipitation 1748 CALL iom_put( 'rain_ao_cea' , frcv(jpr_rain)%z3(:,:,1)* p_frld(:,:) * tmask(:,:,1) ) ! liquid precipitation 1731 1749 IF( iom_use('hflx_rain_cea') ) & 1732 & CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) ) ! heat flux from liq. precip. 1750 & CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) * tmask(:,:,1)) ! heat flux from liq. precip. 1751 IF( iom_use('hflx_prec_cea') ) & 1752 & CALL iom_put( 'hflx_prec_cea', ztprecip * zcptn(:,:) * tmask(:,:,1) * p_frld(:,:) ) ! heat content flux from all precip (cell avg) 1753 IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') ) & 1754 & ztmp(:,:) = frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) 1733 1755 IF( iom_use('evap_ao_cea' ) ) & 1734 & CALL iom_put( 'evap_ao_cea' , frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) )! ice-free oce evap (cell average)1756 & CALL iom_put( 'evap_ao_cea' , ztmp * tmask(:,:,1) ) ! ice-free oce evap (cell average) 1735 1757 IF( iom_use('hflx_evap_cea') ) & 1736 & CALL iom_put( 'hflx_evap_cea', ( frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) ) * zcptn(:,:) )! heat flux from from evap (cell average)1758 & CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * zcptn(:,:) * tmask(:,:,1) ) ! heat flux from from evap (cell average) 1737 1759 CASE( 'oce and ice' ) ! received fields: jpr_sbpr, jpr_semp, jpr_oemp, jpr_ievp 1738 1760 zemp_tot(:,:) = p_frld(:,:) * frcv(jpr_oemp)%z3(:,:,1) + zicefr(:,:) * frcv(jpr_sbpr)%z3(:,:,1) … … 1798 1820 ! runoffs and calving (put in emp_tot) 1799 1821 IF( srcv(jpr_rnf)%laction ) rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 1822 IF( iom_use('hflx_rnf_cea') ) & 1823 CALL iom_put( 'hflx_rnf_cea' , rnf(:,:) * zcptn(:,:) ) 1800 1824 IF( srcv(jpr_cal)%laction ) THEN 1801 1825 zemp_tot(:,:) = zemp_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r6755 r7923 91 91 CHARACTER (LEN=32) :: cvarLeff ! variable name for efficient Length scale 92 92 INTEGER :: ios ! Local integer output status for namelist read 93 94 REAL(wp), DIMENSION(:,:,:), POINTER :: zfwfisf3d, zqhcisf3d, zqlatisf3d 95 REAL(wp), DIMENSION(:,: ), POINTER :: zqhcisf2d 93 96 ! 94 97 !!--------------------------------------------------------------------- … … 355 358 356 359 ! output 357 IF( iom_use('q isf' ) ) CALL iom_put('qisf', qisf)358 IF( iom_use('fwfisf' ) ) CALL iom_put('fwfisf', fwfisf * stbl(:,:) / soce )360 IF( iom_use('qlatisf' ) ) CALL iom_put('qlatisf', qisf) 361 IF( iom_use('fwfisf' ) ) CALL iom_put('fwfisf' , fwfisf * stbl(:,:) / soce ) 359 362 360 363 ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now … … 366 369 CALL lbc_lnk(fwfisf(:,:) ,'T',1.) 367 370 CALL lbc_lnk(qisf(:,:) ,'T',1.) 371 372 !============================================================================================================================================= 373 IF ( iom_use('fwfisf3d') .OR. iom_use('qlatisf3d') .OR. iom_use('qhcisf3d') .OR. iom_use('qhcisf')) THEN 374 CALL wrk_alloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 375 CALL wrk_alloc( jpi,jpj, zqhcisf2d ) 376 377 zfwfisf3d(:,:,:) = 0.0_wp ! 3d ice shelf melting (kg/m2/s) 378 zqhcisf3d(:,:,:) = 0.0_wp ! 3d heat content flux (W/m2) 379 zqlatisf3d(:,:,:)= 0.0_wp ! 3d ice shelf melting latent heat flux (W/m2) 380 zqhcisf2d(:,:) = fwfisf(:,:) * zt_frz * rcp ! 2d heat content flux (W/m2) 381 382 DO jj = 1,jpj 383 DO ji = 1,jpi 384 ikt = misfkt(ji,jj) 385 ikb = misfkb(ji,jj) 386 DO jk = ikt, ikb - 1 387 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 388 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 389 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 390 END DO 391 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 392 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 393 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 394 END DO 395 END DO 396 397 CALL iom_put('fwfisf3d' , zfwfisf3d (:,:,:)) 398 CALL iom_put('qlatisf3d', zqlatisf3d(:,:,:)) 399 CALL iom_put('qhcisf3d' , zqhcisf3d (:,:,:)) 400 CALL iom_put('qhcisf' , zqhcisf2d (:,: )) 401 402 CALL wrk_dealloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 403 CALL wrk_dealloc( jpi,jpj, zqhcisf2d ) 404 END IF 405 !============================================================================================================================================= 368 406 369 407 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r6486 r7923 26 26 USE cla ! cross land advection (cla_traadv routine) 27 27 USE ldftra_oce ! lateral diffusion coefficient on tracers 28 USE trd_oce ! trends: ocean variables 29 USE trdtra ! trends manager: tracers 28 30 ! 29 31 USE in_out_manager ! I/O manager … … 79 81 INTEGER :: jk ! dummy loop index 80 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds ! 3D workspace 81 84 !!---------------------------------------------------------------------- 82 85 ! … … 120 123 IF( ln_diaptr ) CALL dia_ptr( zvn ) ! diagnose the effective MSF 121 124 ! 122 125 IF( l_trdtra ) THEN !* Save ta and sa trends 126 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 127 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 128 ztrds(:,:,:) = tsa(:,:,:,jp_sal) 129 ENDIF 130 ! 123 131 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 124 132 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered … … 151 159 END SELECT 152 160 ! 161 IF( l_trdtra ) THEN ! save the advective trends for further diagnostics 162 DO jk = 1, jpkm1 163 ztrdt(:,:,jk) = tsa(:,:,jk,jp_tem) - ztrdt(:,:,jk) 164 ztrds(:,:,jk) = tsa(:,:,jk,jp_sal) - ztrds(:,:,jk) 165 END DO 166 CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt ) 167 CALL trd_tra( kt, 'TRA', jp_sal, jptra_totad, ztrds ) 168 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 169 ENDIF 153 170 ! ! print mean trends (used for debugging) 154 171 IF(ln_ctl) CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv - Ta: ', mask1=tmask, & -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r6498 r7923 279 279 END IF 280 280 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 281 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 282 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 283 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 284 ENDIF 281 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 285 282 ! 286 283 END DO -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
r6487 r7923 28 28 USE wrk_nemo ! Memory Allocation 29 29 USE timing ! Timing 30 USE diaptr ! Heat/Salt transport diagnostics 31 USE trddyn 32 USE trd_oce 30 33 31 34 IMPLICIT NONE … … 78 81 # endif 79 82 REAL(wp), POINTER, DIMENSION(:,:) :: zu_eiv, zv_eiv, zw_eiv, z2d 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: z3d, z3d_T 80 84 !!---------------------------------------------------------------------- 81 85 ! … … 84 88 # if defined key_diaeiv 85 89 CALL wrk_alloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv, z2d ) 90 CALL wrk_alloc( jpi, jpj, jpk, z3d, z3d_T ) 86 91 # else 87 92 CALL wrk_alloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv ) … … 160 165 CALL iom_put( "voce_eiv", v_eiv ) ! j-eiv current 161 166 CALL iom_put( "woce_eiv", w_eiv ) ! vert. eiv current 162 IF( iom_use('ueiv_heattr') ) THEN 163 zztmp = 0.5 * rau0 * rcp 167 IF( iom_use('weiv_masstr') ) THEN ! vertical mass transport & its square value 168 z2d(:,:) = rau0 * e12t(:,:) 169 DO jk = 1, jpk 170 z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 171 END DO 172 CALL iom_put( "weiv_masstr" , z3d ) 173 ENDIF 174 IF( iom_use("ueiv_masstr") .OR. iom_use("ueiv_heattr") .OR. iom_use('ueiv_heattr3d') & 175 .OR. iom_use("ueiv_salttr") .OR. iom_use('ueiv_salttr3d') ) THEN 176 z3d(:,:,jpk) = 0.e0 177 z2d(:,:) = 0.e0 178 DO jk = 1, jpkm1 179 z3d(:,:,jk) = rau0 * u_eiv(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk) 180 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 181 END DO 182 CALL iom_put( "ueiv_masstr", z3d ) ! mass transport in i-direction 183 ENDIF 184 185 IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') ) THEN 186 zztmp = 0.5 * rcp 164 187 z2d(:,:) = 0.e0 165 DO jk = 1, jpkm1 166 DO jj = 2, jpjm1 167 DO ji = fs_2, fs_jpim1 ! vector opt. 168 z2d(ji,jj) = z2d(ji,jj) + u_eiv(ji,jj,jk) & 169 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji+1,jj,jk,jp_tem)) * e2u(ji,jj) * fse3u(ji,jj,jk) 170 END DO 171 END DO 172 END DO 173 CALL lbc_lnk( z2d, 'U', -1. ) 174 CALL iom_put( "ueiv_heattr", zztmp * z2d ) ! heat transport in i-direction 188 z3d_T(:,:,:) = 0.e0 189 DO jk = 1, jpkm1 190 DO jj = 2, jpjm1 191 DO ji = fs_2, fs_jpim1 ! vector opt. 192 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 193 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 194 END DO 195 END DO 196 END DO 197 IF (iom_use('ueiv_heattr') ) THEN 198 CALL lbc_lnk( z2d, 'U', -1. ) 199 CALL iom_put( "ueiv_heattr", zztmp * z2d ) ! 2D heat transport in i-direction 200 ENDIF 201 IF (iom_use('ueiv_heattr3d') ) THEN 202 CALL lbc_lnk( z3d_T, 'U', -1. ) 203 CALL iom_put( "ueiv_heattr3d", zztmp * z3d_T ) ! 3D heat transport in i-direction 204 ENDIF 205 ENDIF 206 207 IF( iom_use('ueiv_salttr') .OR. iom_use('ueiv_salttr3d') ) THEN 208 zztmp = 0.5 * 0.001 209 z2d(:,:) = 0.e0 210 z3d_T(:,:,:) = 0.e0 211 DO jk = 1, jpkm1 212 DO jj = 2, jpjm1 213 DO ji = fs_2, fs_jpim1 ! vector opt. 214 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) ) 215 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 216 END DO 217 END DO 218 END DO 219 IF (iom_use('ueiv_salttr') ) THEN 220 CALL lbc_lnk( z2d, 'U', -1. ) 221 CALL iom_put( "ueiv_salttr", zztmp * z2d ) ! 2D salt transport in i-direction 222 ENDIF 223 IF (iom_use('ueiv_salttr3d') ) THEN 224 CALL lbc_lnk( z3d_T, 'U', -1. ) 225 CALL iom_put( "ueiv_salttr3d", zztmp * z3d_T ) ! 3D salt transport in i-direction 226 ENDIF 227 ENDIF 228 229 IF( iom_use("veiv_masstr") .OR. iom_use("veiv_heattr") .OR. iom_use('veiv_heattr3d') & 230 .OR. iom_use("veiv_salttr") .OR. iom_use('veiv_salttr3d') ) THEN 231 z3d(:,:,jpk) = 0.e0 232 DO jk = 1, jpkm1 233 z3d(:,:,jk) = rau0 * v_eiv(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk) 234 END DO 235 CALL iom_put( "veiv_masstr", z3d ) ! mass transport in j-direction 175 236 ENDIF 176 237 177 IF( iom_use('veiv_heattr') ) THEN178 zztmp = 0.5 * r au0 * rcp238 IF( iom_use('veiv_heattr') .OR. iom_use('veiv_heattr3d') ) THEN 239 zztmp = 0.5 * rcp 179 240 z2d(:,:) = 0.e0 180 DO jk = 1, jpkm1 181 DO jj = 2, jpjm1 182 DO ji = fs_2, fs_jpim1 ! vector opt. 183 z2d(ji,jj) = z2d(ji,jj) + v_eiv(ji,jj,jk) & 184 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * e1v(ji,jj) * fse3v(ji,jj,jk) 185 END DO 186 END DO 187 END DO 188 CALL lbc_lnk( z2d, 'V', -1. ) 189 CALL iom_put( "veiv_heattr", zztmp * z2d ) ! heat transport in i-direction 190 ENDIF 241 z3d_T(:,:,:) = 0.e0 242 DO jk = 1, jpkm1 243 DO jj = 2, jpjm1 244 DO ji = fs_2, fs_jpim1 ! vector opt. 245 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_tem) + tsn(ji,jj+1,jk,jp_tem) ) 246 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 247 END DO 248 END DO 249 END DO 250 IF (iom_use('veiv_heattr') ) THEN 251 CALL lbc_lnk( z2d, 'V', -1. ) 252 CALL iom_put( "veiv_heattr", zztmp * z2d ) ! 2D heat transport in j-direction 253 ENDIF 254 IF (iom_use('veiv_heattr3d') ) THEN 255 CALL lbc_lnk( z3d_T, 'V', -1. ) 256 CALL iom_put( "veiv_heattr3d", zztmp * z3d_T ) ! 3D heat transport in j-direction 257 ENDIF 258 ENDIF 259 260 IF( iom_use('veiv_salttr') .OR. iom_use('veiv_salttr3d') ) THEN 261 zztmp = 0.5 * 0.001 262 z2d(:,:) = 0.e0 263 z3d_T(:,:,:) = 0.e0 264 DO jk = 1, jpkm1 265 DO jj = 2, jpjm1 266 DO ji = fs_2, fs_jpim1 ! vector opt. 267 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_sal) + tsn(ji,jj+1,jk,jp_sal) ) 268 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 269 END DO 270 END DO 271 END DO 272 IF (iom_use('veiv_salttr') ) THEN 273 CALL lbc_lnk( z2d, 'V', -1. ) 274 CALL iom_put( "veiv_salttr", zztmp * z2d ) ! 2D salt transport in i-direction 275 ENDIF 276 IF (iom_use('veiv_salttr3d') ) THEN 277 CALL lbc_lnk( z3d_T, 'V', -1. ) 278 CALL iom_put( "veiv_salttr3d", zztmp * z3d_T ) ! 3D salt transport in i-direction 279 ENDIF 280 ENDIF 281 282 IF( iom_use('weiv_masstr') .OR. iom_use('weiv_heattr3d') .OR. iom_use('weiv_salttr3d')) THEN ! vertical mass transport & its square value 283 z2d(:,:) = rau0 * e12t(:,:) 284 DO jk = 1, jpk 285 z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 286 END DO 287 CALL iom_put( "weiv_masstr" , z3d ) ! mass transport in k-direction 288 ENDIF 289 290 IF( iom_use('weiv_heattr3d') ) THEN 291 zztmp = 0.5 * rcp 292 DO jk = 1, jpkm1 293 DO jj = 2, jpjm1 294 DO ji = fs_2, fs_jpim1 ! vector opt. 295 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_tem) + tsn(ji,jj,jk+1,jp_tem) ) 296 END DO 297 END DO 298 END DO 299 CALL lbc_lnk( z3d_T, 'T', 1. ) 300 CALL iom_put( "weiv_heattr3d", zztmp * z3d_T ) ! 3D heat transport in k-direction 301 ENDIF 302 303 IF( iom_use('weiv_salttr3d') ) THEN 304 zztmp = 0.5 * 0.001 305 DO jk = 1, jpkm1 306 DO jj = 2, jpjm1 307 DO ji = fs_2, fs_jpim1 ! vector opt. 308 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_sal) + tsn(ji,jj,jk+1,jp_sal) ) 309 END DO 310 END DO 311 END DO 312 CALL lbc_lnk( z3d_T, 'T', 1. ) 313 CALL iom_put( "weiv_salttr3d", zztmp * z3d_T ) ! 3D salt transport in k-direction 314 ENDIF 315 191 316 END IF 317 ! 318 IF( ln_diaptr .AND. cdtype == 'TRA' ) THEN 319 z3d(:,:,:) = 0._wp 320 DO jk = 1, jpkm1 321 DO jj = 2, jpjm1 322 DO ji = fs_2, fs_jpim1 ! vector opt. 323 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) & 324 & * e1v(ji,jj) * fse3v(ji,jj,jk) 325 END DO 326 END DO 327 END DO 328 CALL dia_ptr_ohst_components( jp_tem, 'eiv', z3d ) 329 z3d(:,:,:) = 0._wp 330 DO jk = 1, jpkm1 331 DO jj = 2, jpjm1 332 DO ji = fs_2, fs_jpim1 ! vector opt. 333 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) & 334 & * e1v(ji,jj) * fse3v(ji,jj,jk) 335 END DO 336 END DO 337 END DO 338 CALL dia_ptr_ohst_components( jp_sal, 'eiv', z3d ) 339 ENDIF 340 341 IF( ln_KE_trd ) CALL trd_dyn(u_eiv, v_eiv, jpdyn_eivke, kt ) 192 342 # endif 193 ! 343 194 344 # if defined key_diaeiv 195 345 CALL wrk_dealloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv, z2d ) 346 CALL wrk_dealloc( jpi, jpj, jpk, z3d, z3d_T ) 196 347 # else 197 348 CALL wrk_dealloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv ) -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r6486 r7923 219 219 END IF 220 220 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 221 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 222 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 223 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 224 ENDIF 221 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 225 222 226 223 ! II. Vertical advective fluxes -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r6486 r7923 200 200 201 201 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 202 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 203 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 204 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 205 ENDIF 202 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 206 203 207 204 ! II. Vertical advective fluxes -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r6486 r7923 355 355 IF( l_trd ) CALL trd_tra( kt, cdtype, jn, jptra_yad, zwy, pvn, ptn(:,:,:,jn) ) 356 356 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 357 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 358 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 359 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 360 ENDIF 357 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 361 358 ! 362 359 END DO -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r6795 r7923 34 34 USE timing ! Timing 35 35 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 36 USE iom 36 37 37 38 IMPLICIT NONE … … 42 43 43 44 LOGICAL :: l_trd ! flag to compute trends 45 LOGICAL :: l_trans ! flag to output vertically integrated transports 44 46 45 47 !! * Substitutions … … 85 87 REAL(wp) :: zfm_ui, zfm_vj, zfm_wk ! - - 86 88 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz 87 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz 89 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz, zptry 90 REAL(wp), POINTER, DIMENSION(:,:) :: z2d 88 91 !!---------------------------------------------------------------------- 89 92 ! … … 97 100 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 98 101 ! 99 l_trd = .FALSE.100 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE.101 102 ENDIF 102 ! 103 IF( l_trd ) THEN 103 l_trd = .FALSE. 104 l_trans = .FALSE. 105 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 106 IF( cdtype == 'TRA' .AND. (iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") ) ) l_trans = .TRUE. 107 ! 108 IF( l_trd .OR. l_trans ) THEN 104 109 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 105 110 ztrdx(:,:,:) = 0.e0 ; ztrdy(:,:,:) = 0.e0 ; ztrdz(:,:,:) = 0.e0 111 CALL wrk_alloc( jpi, jpj, z2d ) 112 ENDIF 113 ! 114 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 115 CALL wrk_alloc( jpi, jpj, jpk, zptry ) 116 zptry(:,:,:) = 0._wp 106 117 ENDIF 107 118 ! … … 187 198 188 199 ! ! trend diagnostics (contribution of upstream fluxes) 189 IF( l_trd ) THEN200 IF( l_trd .OR. l_trans ) THEN 190 201 ! store intermediate advective trends 191 202 ztrdx(:,:,:) = zwx(:,:,:) ; ztrdy(:,:,:) = zwy(:,:,:) ; ztrdz(:,:,:) = zwz(:,:,:) 192 203 END IF 193 204 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 194 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 195 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 196 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 197 ENDIF 205 IF( cdtype == 'TRA' .AND. ln_diaptr ) zptry(:,:,:) = zwy(:,:,:) 198 206 199 207 ! 3. antidiffusive flux : high order minus low order … … 253 261 254 262 ! ! trend diagnostics (contribution of upstream fluxes) 255 IF( l_trd ) THEN263 IF( l_trd .OR. l_trans ) THEN 256 264 ztrdx(:,:,:) = ztrdx(:,:,:) + zwx(:,:,:) ! <<< Add to previously computed 257 265 ztrdy(:,:,:) = ztrdy(:,:,:) + zwy(:,:,:) ! <<< Add to previously computed 258 266 ztrdz(:,:,:) = ztrdz(:,:,:) + zwz(:,:,:) ! <<< Add to previously computed 259 260 CALL trd_tra( kt, cdtype, jn, jptra_xad, ztrdx, pun, ptn(:,:,:,jn) ) 261 CALL trd_tra( kt, cdtype, jn, jptra_yad, ztrdy, pvn, ptn(:,:,:,jn) ) 262 CALL trd_tra( kt, cdtype, jn, jptra_zad, ztrdz, pwn, ptn(:,:,:,jn) ) 267 ENDIF 268 269 IF( l_trd ) THEN 270 CALL trd_tra( kt, cdtype, jn, jptra_xad, ztrdx, pun, ptn(:,:,:,jn) ) 271 CALL trd_tra( kt, cdtype, jn, jptra_yad, ztrdy, pvn, ptn(:,:,:,jn) ) 272 CALL trd_tra( kt, cdtype, jn, jptra_zad, ztrdz, pwn, ptn(:,:,:,jn) ) 263 273 END IF 264 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 274 275 IF( l_trans .AND. jn==jp_tem ) THEN 276 z2d(:,:) = 0._wp 277 DO jk = 1, jpkm1 278 DO jj = 2, jpjm1 279 DO ji = fs_2, fs_jpim1 ! vector opt. 280 z2d(ji,jj) = z2d(ji,jj) + ztrdx(ji,jj,jk) 281 END DO 282 END DO 283 END DO 284 CALL lbc_lnk( z2d, 'U', -1. ) 285 CALL iom_put( "uadv_heattr", rau0_rcp * z2d ) ! heat transport in i-direction 286 ! 287 z2d(:,:) = 0._wp 288 DO jk = 1, jpkm1 289 DO jj = 2, jpjm1 290 DO ji = fs_2, fs_jpim1 ! vector opt. 291 z2d(ji,jj) = z2d(ji,jj) + ztrdy(ji,jj,jk) 292 END DO 293 END DO 294 END DO 295 CALL lbc_lnk( z2d, 'V', -1. ) 296 CALL iom_put( "vadv_heattr", rau0_rcp * z2d ) ! heat transport in j-direction 297 ENDIF 298 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 265 299 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 266 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) + htr_adv(:)267 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) + str_adv(:)300 zptry(:,:,:) = zptry(:,:,:) + zwy(:,:,:) ! <<< Add to previously computed 301 CALL dia_ptr_ohst_components( jn, 'adv', zptry(:,:,:) ) 268 302 ENDIF 269 303 ! 270 304 END DO 271 305 ! 272 CALL wrk_dealloc( jpi, jpj, jpk, zwi, zwz ) 273 IF( l_trd ) CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 306 CALL wrk_dealloc( jpi, jpj, jpk, zwi, zwz ) 307 IF( l_trd .OR. l_trans ) THEN 308 CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 309 CALL wrk_dealloc( jpi, jpj, z2d ) 310 ENDIF 311 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 274 312 ! 275 313 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_tvd') … … 318 356 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz, zhdiv, zwz_sav, zwzts 319 357 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz 358 REAL(wp), POINTER, DIMENSION(:,:,:) :: zptry 320 359 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrs 321 360 !!---------------------------------------------------------------------- … … 339 378 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 340 379 ztrdx(:,:,:) = 0._wp ; ztrdy(:,:,:) = 0._wp ; ztrdz(:,:,:) = 0._wp 380 ENDIF 381 ! 382 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 383 CALL wrk_alloc( jpi, jpj,jpk, zptry ) 384 zptry(:,:,:) = 0._wp 341 385 ENDIF 342 386 ! … … 428 472 END IF 429 473 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 430 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 431 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 432 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 433 ENDIF 474 IF( cdtype == 'TRA' .AND. ln_diaptr ) zptry(:,:,:) = zwy(:,:,:) 434 475 435 476 ! 3. antidiffusive flux : high order minus low order … … 556 597 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 557 598 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 558 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) + htr_adv(:)559 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) + str_adv(:)599 zptry(:,:,:) = zptry(:,:,:) + zwy(:,:,:) 600 CALL dia_ptr_ohst_components( jn, 'adv', zptry(:,:,:) ) 560 601 ENDIF 561 602 ! … … 566 607 CALL wrk_dealloc( jpi, jpj, zwx_sav, zwy_sav ) 567 608 IF( l_trd ) CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 609 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 568 610 ! 569 611 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_tvd_zts') -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r6486 r7923 177 177 END IF 178 178 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 179 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 180 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( ztv(:,:,:) ) 181 IF( jn == jp_sal ) str_adv(:) = ptr_sj( ztv(:,:,:) ) 182 ENDIF 179 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', ztv(:,:,:) ) 183 180 184 181 ! TVD scheme for the vertical direction -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90
r6486 r7923 173 173 ! 174 174 ! "zonal" mean lateral diffusive heat and salt transport 175 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 176 IF( jn == jp_tem ) htr_ldf(:) = ptr_sj( ztv(:,:,:) ) 177 IF( jn == jp_sal ) str_ldf(:) = ptr_sj( ztv(:,:,:) ) 178 ENDIF 175 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', ztv(:,:,:) ) 179 176 ! ! =========== 180 177 END DO ! tracer loop -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilapg.F90
r6486 r7923 247 247 ! ! =============== 248 248 ! "Poleward" diffusive heat or salt transport 249 IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( kaht == 2 ) ) THEN 250 ! note sign is reversed to give down-gradient diffusive transports (#1043) 251 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( -zftv(:,:,:) ) 252 IF( jn == jp_sal) str_ldf(:) = ptr_sj( -zftv(:,:,:) ) 253 ENDIF 249 ! note sign is reversed to give down-gradient diffusive transports (#1043) 250 IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( kaht == 2 ) ) CALL dia_ptr_ohst_components( jn, 'ldf', -zftv(:,:,:) ) 254 251 255 252 ! ! ************ ! ! =============== -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r6486 r7923 26 26 USE ldfslp ! iso-neutral slopes 27 27 USE diaptr ! poleward transport diagnostics 28 USE trd_oce ! trends: ocean variables 29 USE trdtra ! trends manager: tracers 28 30 USE in_out_manager ! I/O manager 29 31 USE iom ! I/O library … … 105 107 INTEGER :: ji, jj, jk, jn ! dummy loop indices 106 108 INTEGER :: ikt 107 REAL(wp) :: zmsku, zabe1, zcof1, zcoef3 ! local scalars108 REAL(wp) :: zmskv, zabe2, zcof2, zcoef4 ! - -109 REAL(wp) :: zcoef0, zbtr , ztra! - -109 REAL(wp) :: zmsku, zabe1, zcof1, zcoef3 ! local scalars 110 REAL(wp) :: zmskv, zabe2, zcof2, zcoef4 ! - - 111 REAL(wp) :: zcoef0, zbtr ! - - 110 112 REAL(wp), POINTER, DIMENSION(:,: ) :: z2d 111 113 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdkt, zdk1t, zdit, zdjt, ztfw 114 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), TARGET :: ztrax, ztray, ztraz 115 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), TARGET :: ztrax_T, ztray_T, ztraz_T 112 116 !!---------------------------------------------------------------------- 113 117 ! … … 115 119 ! 116 120 CALL wrk_alloc( jpi, jpj, z2d ) 117 CALL wrk_alloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t ) 121 CALL wrk_alloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t) 122 ALLOCATE( ztrax(jpi,jpj,jpk), ztray(jpi,jpj,jpk), ztraz(jpi,jpj,jpk) ) 123 IF( l_trdtra .and. cdtype == 'TRA' ) ALLOCATE( ztrax_T(jpi,jpj,jpk), ztray_T(jpi,jpj,jpk), ztraz_T(jpi,jpj,jpk) ) 118 124 ! 119 125 … … 127 133 DO jn = 1, kjpt ! tracer loop 128 134 ! ! =========== 135 ztrax(:,:,:) = 0._wp ; ztray(:,:,:) = 0._wp ; ztraz(:,:,:) = 0._wp ; 129 136 ! 130 137 !!---------------------------------------------------------------------- … … 226 233 DO ji = fs_2, fs_jpim1 ! vector opt. 227 234 zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 228 ztra = zbtr * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk))229 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra235 ztrax(ji,jj,jk) = zbtr * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) ) 236 ztray(ji,jj,jk) = zbtr * ( zftv(ji,jj,jk) - zftv(ji,jj-1,jk) ) 230 237 END DO 231 238 END DO … … 234 241 ! ! =============== 235 242 ! 243 pta(:,:,:,jn) = pta(:,:,:,jn) + ztrax(:,:,:) + ztray(:,:,:) 244 ! 236 245 ! "Poleward" diffusive heat or salt transports (T-S case only) 237 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN238 246 ! note sign is reversed to give down-gradient diffusive transports (#1043) 239 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( -zftv(:,:,:) ) 240 IF( jn == jp_sal) str_ldf(:) = ptr_sj( -zftv(:,:,:) ) 241 ENDIF 247 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', -zftv(:,:,:) ) 242 248 243 249 IF( iom_use("udiff_heattr") .OR. iom_use("vdiff_heattr") ) THEN … … 314 320 DO ji = fs_2, fs_jpim1 ! vector opt. 315 321 zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 316 ztra = ( ztfw(ji,jj,jk) - ztfw(ji,jj,jk+1) ) * zbtr 317 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 322 ztraz(ji,jj,jk) = ( ztfw(ji,jj,jk) - ztfw(ji,jj,jk+1) ) * zbtr 318 323 END DO 319 324 END DO 320 325 END DO 326 pta(:,:,:,jn) = pta(:,:,:,jn) + ztraz(:,:,:) 321 327 ! 328 IF( l_trdtra .AND. cdtype == "TRA" .AND. jn .eq. 1 ) THEN ! save the temperature trends 329 ztrax_T(:,:,:) = ztrax(:,:,:) 330 ztray_T(:,:,:) = ztray(:,:,:) 331 ztraz_T(:,:,:) = ztraz(:,:,:) 332 ENDIF 333 IF( l_trdtrc .AND. cdtype == "TRC" ) THEN ! save the horizontal component of diffusive trends for further diagnostics 334 CALL trd_tra( kt, cdtype, jn, jptra_iso_x, ztrax ) 335 CALL trd_tra( kt, cdtype, jn, jptra_iso_y, ztray ) 336 CALL trd_tra( kt, cdtype, jn, jptra_iso_z1, ztraz ) ! This is the first part of the vertical component. 337 ENDIF 322 338 END DO 339 ! 340 IF( l_trdtra .AND. cdtype == "TRA" ) THEN ! save the horizontal component of diffusive trends for further diagnostics 341 CALL trd_tra( kt, cdtype, jp_tem, jptra_iso_x, ztrax_T ) 342 CALL trd_tra( kt, cdtype, jp_sal, jptra_iso_x, ztrax ) 343 CALL trd_tra( kt, cdtype, jp_tem, jptra_iso_y, ztray_T ) 344 CALL trd_tra( kt, cdtype, jp_sal, jptra_iso_y, ztray ) 345 CALL trd_tra( kt, cdtype, jp_tem, jptra_iso_z1, ztraz_T ) ! This is the first part of the vertical component 346 CALL trd_tra( kt, cdtype, jp_sal, jptra_iso_z1, ztraz ) ! 347 ENDIF 323 348 ! 324 349 CALL wrk_dealloc( jpi, jpj, z2d ) 325 350 CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t ) 351 DEALLOCATE( ztrax, ztray, ztraz ) 352 IF( l_trdtra .and. cdtype == 'TRA' ) DEALLOCATE( ztrax_T, ztray_T, ztraz_T ) 326 353 ! 327 354 IF( nn_timing == 1 ) CALL timing_stop('tra_ldf_iso') -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90
r6486 r7923 386 386 ! 387 387 ! ! "Poleward" diffusive heat or salt transports (T-S case only) 388 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 389 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( zftv(:,:,:) ) ! 3.3 names 390 IF( jn == jp_sal) str_ldf(:) = ptr_sj( zftv(:,:,:) ) 391 ENDIF 388 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', zftv(:,:,:) ) 392 389 393 390 IF( iom_use("udiff_heattr") .OR. iom_use("vdiff_heattr") ) THEN -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90
r6486 r7923 154 154 ! 155 155 ! "Poleward" diffusive heat or salt transports 156 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 157 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( ztv(:,:,:) ) 158 IF( jn == jp_sal) str_ldf(:) = ptr_sj( ztv(:,:,:) ) 159 ENDIF 156 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', ztv(:,:,:) ) 160 157 ! ! ================== 161 158 END DO ! end of tracer loop -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r6487 r7923 127 127 128 128 ! trends computation initialisation 129 IF( l_trdtra ) THEN ! store now fields before applying the Asselin filter129 IF( l_trdtra ) THEN 130 130 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 131 ztrdt(:,:, :) = tsn(:,:,:,jp_tem)132 ztrds(:,:, :) = tsn(:,:,:,jp_sal)131 ztrdt(:,:,jpk) = 0._wp 132 ztrds(:,:,jpk) = 0._wp 133 133 IF( ln_traldf_iso ) THEN ! diagnose the "pure" Kz diffusive trend 134 134 CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdfp, ztrdt ) 135 135 CALL trd_tra( kt, 'TRA', jp_sal, jptra_zdfp, ztrds ) 136 136 ENDIF 137 ! total trend for the non-time-filtered variables. 138 DO jk = 1, jpkm1 139 zfact = 1.0 / rdttra(jk) 140 ztrdt(:,:,jk) = ( tsa(:,:,jk,jp_tem) - tsn(:,:,jk,jp_tem) ) * zfact 141 ztrds(:,:,jk) = ( tsa(:,:,jk,jp_sal) - tsn(:,:,jk,jp_sal) ) * zfact 142 END DO 143 CALL trd_tra( kt, 'TRA', jp_tem, jptra_tot, ztrdt ) 144 CALL trd_tra( kt, 'TRA', jp_sal, jptra_tot, ztrds ) 145 ! Store now fields before applying the Asselin filter 146 ! in order to calculate Asselin filter trend later. 147 ztrdt(:,:,:) = tsn(:,:,:,jp_tem) 148 ztrds(:,:,:) = tsn(:,:,:,jp_sal) 137 149 ENDIF 138 150 -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRD/trd_oce.F90
r6486 r7923 33 33 # endif 34 34 ! !!!* Active tracers trends indexes 35 INTEGER, PUBLIC, PARAMETER :: jptot_tra = 14!: Total trend nb: change it when adding/removing one indice below35 INTEGER, PUBLIC, PARAMETER :: jptot_tra = 20 !: Total trend nb: change it when adding/removing one indice below 36 36 ! =============== ! 37 37 INTEGER, PUBLIC, PARAMETER :: jptra_xad = 1 !: x- horizontal advection … … 39 39 INTEGER, PUBLIC, PARAMETER :: jptra_zad = 3 !: z- vertical advection 40 40 INTEGER, PUBLIC, PARAMETER :: jptra_sad = 4 !: z- vertical advection 41 INTEGER, PUBLIC, PARAMETER :: jptra_ldf = 5 !: lateral diffusion 42 INTEGER, PUBLIC, PARAMETER :: jptra_zdf = 6 !: vertical diffusion 43 INTEGER, PUBLIC, PARAMETER :: jptra_zdfp = 7 !: "PURE" vert. diffusion (ln_traldf_iso=T) 44 INTEGER, PUBLIC, PARAMETER :: jptra_bbc = 8 !: Bottom Boundary Condition (geoth. heating) 45 INTEGER, PUBLIC, PARAMETER :: jptra_bbl = 9 !: Bottom Boundary Layer (diffusive and/or advective) 46 INTEGER, PUBLIC, PARAMETER :: jptra_npc = 10 !: non-penetrative convection treatment 47 INTEGER, PUBLIC, PARAMETER :: jptra_dmp = 11 !: internal restoring (damping) 48 INTEGER, PUBLIC, PARAMETER :: jptra_qsr = 12 !: penetrative solar radiation 49 INTEGER, PUBLIC, PARAMETER :: jptra_nsr = 13 !: non solar radiation / C/D on salinity (+runoff if ln_rnf=T) 50 INTEGER, PUBLIC, PARAMETER :: jptra_atf = 14 !: Asselin time filter 41 INTEGER, PUBLIC, PARAMETER :: jptra_totad = 5 !: total advection 42 INTEGER, PUBLIC, PARAMETER :: jptra_ldf = 6 !: lateral diffusion 43 INTEGER, PUBLIC, PARAMETER :: jptra_iso_x = 7 !: x-component of isopycnal diffusion 44 INTEGER, PUBLIC, PARAMETER :: jptra_iso_y = 8 !: y-component of isopycnal diffusion 45 INTEGER, PUBLIC, PARAMETER :: jptra_iso_z1 = 9 !: z-component of isopycnal diffusion 46 INTEGER, PUBLIC, PARAMETER :: jptra_zdf = 10 !: vertical diffusion 47 INTEGER, PUBLIC, PARAMETER :: jptra_zdfp = 11 !: "PURE" vert. diffusion (ln_traldf_iso=T) 48 INTEGER, PUBLIC, PARAMETER :: jptra_evd = 12 !: EVD term (convection) 49 INTEGER, PUBLIC, PARAMETER :: jptra_bbc = 13 !: Bottom Boundary Condition (geoth. heating) 50 INTEGER, PUBLIC, PARAMETER :: jptra_bbl = 14 !: Bottom Boundary Layer (diffusive and/or advective) 51 INTEGER, PUBLIC, PARAMETER :: jptra_npc = 15 !: non-penetrative convection treatment 52 INTEGER, PUBLIC, PARAMETER :: jptra_dmp = 16 !: internal restoring (damping) 53 INTEGER, PUBLIC, PARAMETER :: jptra_qsr = 17 !: penetrative solar radiation 54 INTEGER, PUBLIC, PARAMETER :: jptra_nsr = 18 !: non solar radiation / C/D on salinity (+runoff if ln_rnf=T) 55 INTEGER, PUBLIC, PARAMETER :: jptra_atf = 19 !: Asselin time filter 56 INTEGER, PUBLIC, PARAMETER :: jptra_tot = 20 !: Model total trend 51 57 ! 52 58 ! !!!* Passive tracers trends indices (use if "key_top" defined) 53 INTEGER, PUBLIC, PARAMETER :: jptra_sms = 1 5!: sources m. sinks54 INTEGER, PUBLIC, PARAMETER :: jptra_radn = 16!: corr. trn<0 in trcrad55 INTEGER, PUBLIC, PARAMETER :: jptra_radb = 17!: corr. trb<0 in trcrad (like atf)59 INTEGER, PUBLIC, PARAMETER :: jptra_sms = 19 !: sources m. sinks 60 INTEGER, PUBLIC, PARAMETER :: jptra_radn = 20 !: corr. trn<0 in trcrad 61 INTEGER, PUBLIC, PARAMETER :: jptra_radb = 21 !: corr. trb<0 in trcrad (like atf) 56 62 ! 57 63 ! !!!* Momentum trends indices 58 INTEGER, PUBLIC, PARAMETER :: jptot_dyn = 1 5!: Total trend nb: change it when adding/removing one indice below64 INTEGER, PUBLIC, PARAMETER :: jptot_dyn = 16 !: Total trend nb: change it when adding/removing one indice below 59 65 ! =============== ! 60 66 INTEGER, PUBLIC, PARAMETER :: jpdyn_hpg = 1 !: hydrostatic pressure gradient … … 73 79 INTEGER, PUBLIC, PARAMETER :: jpdyn_spgflt = 14 !: filter contribution to surface pressure gradient (spg_flt) 74 80 INTEGER, PUBLIC, PARAMETER :: jpdyn_spgexp = 15 !: explicit contribution to surface pressure gradient (spg_flt) 81 INTEGER, PUBLIC, PARAMETER :: jpdyn_eivke = 16 !: K.E trend from Gent McWilliams scheme 75 82 ! 76 83 !!---------------------------------------------------------------------- -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdini.F90
r6486 r7923 91 91 !!gm end 92 92 ! 93 IF( lk_vvl .AND. ( l_trdtra .OR. l_trddyn ) ) CALL ctl_stop( 'trend diagnostics with variable volume not validated' )94 93 95 94 !!gm : Potential BUG : 3D output only for vector invariant form! add a ctl_stop or code the flux form case -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdken.F90
r6487 r7923 27 27 USE lib_mpp ! MPP library 28 28 USE wrk_nemo ! Memory allocation 29 USE ldfslp ! Isopycnal slopes 29 30 30 31 IMPLICIT NONE … … 42 43 # include "domzgr_substitute.h90" 43 44 # include "vectopt_loop_substitute.h90" 45 # include "ldfeiv_substitute.h90" 46 44 47 !!---------------------------------------------------------------------- 45 48 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 192 195 CALL ken_p2k( kt , zke ) 193 196 CALL iom_put( "ketrd_convP2K", zke ) ! conversion -rau*g*w 197 CASE( jpdyn_eivke ) 198 ! CMIP6 diagnostic tknebto = tendency of KE from 199 ! parameterized mesoscale eddy advection 200 ! = vertical_integral( k (N S)^2 ) rho dz 201 ! rho = reference density 202 ! S = isoneutral slope. 203 ! Most terms are on W grid so work on this grid 204 CALL wrk_alloc( jpi, jpj, zke2d ) 205 zke2d(:,:) = 0._wp 206 DO jk = 1,jpk 207 DO ji = 1,jpi 208 DO jj = 1,jpj 209 zke2d(ji,jj) = zke2d(ji,jj) + rau0 * fsaeiw(ji, jj, jk) & 210 & * ( wslpi(ji, jj, jk) * wslpi(ji,jj,jk) & 211 & + wslpj(ji, jj, jk) * wslpj(ji,jj,jk) ) & 212 & * rn2(ji,jj,jk) * fse3w(ji, jj, jk) 213 ENDDO 214 ENDDO 215 ENDDO 216 CALL iom_put("ketrd_eiv", zke2d) 217 CALL wrk_dealloc( jpi, jpj, zke2d ) 194 218 ! 195 219 END SELECT -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdpen.F90
r6487 r7923 150 150 rab_pe(:,:,:,:) = 0._wp 151 151 ! 152 IF ( lk_vvl ) CALL ctl_stop('trd_pen_init : PE trends not coded for variable volume')152 ! IF ( lk_vvl ) CALL ctl_stop('trd_pen_init : PE trends not coded for variable volume') 153 153 ! 154 154 nkstp = nit000 - 1 -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90
r6486 r7923 38 38 REAL(wp) :: r2dt ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=0 39 39 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt ! use to store the temperature trends 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt ! use to store the temperature trends 41 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_evd ! store avt_evd to calculate EVD trend 41 42 42 43 !! * Substitutions … … 55 56 !! *** FUNCTION trd_tra_alloc *** 56 57 !!--------------------------------------------------------------------- 57 ALLOCATE( trdtx(jpi,jpj,jpk) , trdty(jpi,jpj,jpk) , trdt(jpi,jpj,jpk) , STAT= trd_tra_alloc )58 ALLOCATE( trdtx(jpi,jpj,jpk) , trdty(jpi,jpj,jpk) , trdt(jpi,jpj,jpk) , avt_evd(jpi,jpj,jpk), STAT= trd_tra_alloc ) 58 59 ! 59 60 IF( lk_mpp ) CALL mpp_sum ( trd_tra_alloc ) … … 104 105 ztrds(:,:,:) = 0._wp 105 106 CALL trd_tra_mng( trdt, ztrds, ktrd, kt ) 107 CASE( jptra_evd ) ; avt_evd(:,:,:) = ptrd(:,:,:) * tmask(:,:,:) 106 108 CASE DEFAULT ! other trends: masked trends 107 109 trdt(:,:,:) = ptrd(:,:,:) * tmask(:,:,:) ! mask & store … … 128 130 zwt(:,:,jpk) = 0._wp ; zws(:,:,jpk) = 0._wp 129 131 DO jk = 2, jpk 130 zwt(:,:,jk) = 132 zwt(:,:,jk) = avt(:,:,jk) * ( tsa(:,:,jk-1,jp_tem) - tsa(:,:,jk,jp_tem) ) / fse3w(:,:,jk) * tmask(:,:,jk) 131 133 zws(:,:,jk) = fsavs(:,:,jk) * ( tsa(:,:,jk-1,jp_sal) - tsa(:,:,jk,jp_sal) ) / fse3w(:,:,jk) * tmask(:,:,jk) 132 134 END DO … … 138 140 END DO 139 141 CALL trd_tra_mng( ztrdt, ztrds, jptra_zdfp, kt ) 142 ! 143 ! ! Also calculate EVD trend at this point. 144 zwt(:,:,:) = 0._wp ; zws(:,:,:) = 0._wp ! vertical diffusive fluxes 145 DO jk = 2, jpk 146 zwt(:,:,jk) = avt_evd(:,:,jk) * ( tsa(:,:,jk-1,jp_tem) - tsa(:,:,jk,jp_tem) ) / fse3w(:,:,jk) * tmask(:,:,jk) 147 zws(:,:,jk) = avt_evd(:,:,jk) * ( tsa(:,:,jk-1,jp_sal) - tsa(:,:,jk,jp_sal) ) / fse3w(:,:,jk) * tmask(:,:,jk) 148 END DO 149 ! 150 ztrdt(:,:,jpk) = 0._wp ; ztrds(:,:,jpk) = 0._wp 151 DO jk = 1, jpkm1 152 ztrdt(:,:,jk) = ( zwt(:,:,jk) - zwt(:,:,jk+1) ) / fse3t(:,:,jk) 153 ztrds(:,:,jk) = ( zws(:,:,jk) - zws(:,:,jk+1) ) / fse3t(:,:,jk) 154 END DO 155 CALL trd_tra_mng( ztrdt, ztrds, jptra_evd, kt ) 140 156 ! 141 157 CALL wrk_dealloc( jpi, jpj, jpk, zwt, zws, ztrdt ) … … 312 328 CALL wrk_dealloc( jpi, jpj, z2dx, z2dy ) 313 329 ENDIF 330 CASE( jptra_totad ) ; CALL iom_put( "ttrd_totad" , ptrdx ) ! total advection 331 CALL iom_put( "strd_totad" , ptrdy ) 314 332 CASE( jptra_ldf ) ; CALL iom_put( "ttrd_ldf" , ptrdx ) ! lateral diffusion 315 333 CALL iom_put( "strd_ldf" , ptrdy ) … … 318 336 CASE( jptra_zdfp ) ; CALL iom_put( "ttrd_zdfp", ptrdx ) ! PURE vertical diffusion (no isoneutral contribution) 319 337 CALL iom_put( "strd_zdfp", ptrdy ) 338 CASE( jptra_evd ) ; CALL iom_put( "ttrd_evd", ptrdx ) ! EVD trend (convection) 339 CALL iom_put( "strd_evd", ptrdy ) 340 CASE( jptra_iso_x ) ; CALL iom_put( "ttrd_iso_x", ptrdx ) ! x-component of isopycnal mixing 341 CALL iom_put( "strd_iso_x", ptrdy ) 342 CASE( jptra_iso_y ) ; CALL iom_put( "ttrd_iso_y", ptrdx ) ! y-component of isopycnal mixing 343 CALL iom_put( "strd_iso_y", ptrdy ) 344 CASE( jptra_iso_z1 ) ; CALL iom_put( "ttrd_iso_z1", ptrdx ) ! first part of z-component of isopycnal mixing 345 CALL iom_put( "strd_iso_z1", ptrdy ) 320 346 CASE( jptra_dmp ) ; CALL iom_put( "ttrd_dmp" , ptrdx ) ! internal restoring (damping) 321 347 CALL iom_put( "strd_dmp" , ptrdy ) … … 324 350 CASE( jptra_npc ) ; CALL iom_put( "ttrd_npc" , ptrdx ) ! static instability mixing 325 351 CALL iom_put( "strd_npc" , ptrdy ) 326 CASE( jptra_nsr ) ; CALL iom_put( "ttrd_qns" , ptrdx ) ! surface forcing + runoff (ln_rnf=T)327 CALL iom_put( "strd_cdt" , ptrdy )352 CASE( jptra_nsr ) ; CALL iom_put( "ttrd_qns" , ptrdx(:,:,1) ) ! surface forcing + runoff (ln_rnf=T) 353 CALL iom_put( "strd_cdt" , ptrdy(:,:,1) ) ! output as 2D surface fields 328 354 CASE( jptra_qsr ) ; CALL iom_put( "ttrd_qsr" , ptrdx ) ! penetrative solar radiat. (only on temperature) 329 355 CASE( jptra_bbc ) ; CALL iom_put( "ttrd_bbc" , ptrdx ) ! geothermal heating (only on temperature) 330 356 CASE( jptra_atf ) ; CALL iom_put( "ttrd_atf" , ptrdx ) ! asselin time Filter 331 357 CALL iom_put( "strd_atf" , ptrdy ) 358 CASE( jptra_tot ) ; CALL iom_put( "ttrd_tot" , ptrdx ) ! model total trend 359 CALL iom_put( "strd_tot" , ptrdy ) 332 360 END SELECT 333 361 ! -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90
r6486 r7923 19 19 USE zdf_oce ! ocean vertical physics variables 20 20 USE zdfkpp ! KPP vertical mixing 21 USE trd_oce ! trends: ocean variables 22 USE trdtra ! trends manager: tracers 21 23 USE in_out_manager ! I/O manager 22 24 USE iom ! for iom_put … … 122 124 zavt_evd(:,:,:) = avt(:,:,:) - zavt_evd(:,:,:) ! change in avt due to evd 123 125 CALL iom_put( "avt_evd", zavt_evd ) ! output this change 126 IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 124 127 ! 125 128 IF( nn_timing == 1 ) CALL timing_stop('zdf_evd') -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90
r6533 r7923 147 147 ! no need to output in offline mode 148 148 IF( .NOT.lk_offline ) THEN 149 IF( kt >= nit000 ) THEN ! workaround for calls before SOMETHING reads the XIOS namelist150 149 IF ( iom_use("mldr10_1") ) THEN 151 150 IF( ln_isfcav ) THEN … … 162 161 END IF 163 162 END IF 164 ENDIF165 163 ENDIF 166 164 … … 482 480 mld_diags(5) = sn_mld5 483 481 484 IF( nn_mld_diag > 0) THEN482 IF( lwp .AND. (nn_mld_diag > 0) ) THEN 485 483 WRITE(numout,*) '=============== Vertically-interpolated mixed layer ================' 486 484 WRITE(numout,*) '(Diagnostic number, nn_mld_type, rn_zref, rn_dT_crit, rn_iso_frac)' -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90
r6498 r7923 918 918 CALL iom_put( "pcmap_tmx", pcmap_tmx ) 919 919 ENDIF 920 CALL iom_put( "bn2", rn2 )921 920 CALL iom_put( "emix_tmx", emix_tmx ) 922 921 -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r6487 r7923 462 462 ! ! Diagnostics 463 463 IF( lk_floats ) CALL flo_init ! drifting Floats 464 IF( lk_diaar5 ) CALL dia_ar5_init ! ar5 diag465 464 CALL dia_ptr_init ! Poleward TRansports initialization 466 465 IF( lk_diadct ) CALL dia_dct_init ! Sections tranports -
branches/UKMO/dev_r5518_GO6_package_XIOS_read/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r6486 r7923 26 26 USE traadv_mle ! ML eddy induced velocity (tra_adv_mle routine) 27 27 USE ldftra_oce ! lateral diffusion coefficient on tracers 28 USE trd_oce 29 USE trdtra 28 30 USE prtctl_trc ! Print control 29 31 … … 74 76 CHARACTER (len=22) :: charout 75 77 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn ! effective velocity 78 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd 76 79 !!---------------------------------------------------------------------- 77 80 ! … … 111 114 IF( ln_mle ) CALL tra_adv_mle( kt, nittrc000, zun, zvn, zwn, 'TRC' ) ! add the mle transport (if necessary) 112 115 ! 116 IF( l_trdtrc ) THEN 117 CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd ) 118 ztrtrd(:,:,:,:) = tra(:,:,:,:) 119 ENDIF 120 ! 113 121 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 114 122 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nittrc000, 'TRC', zun, zvn, zwn, trb, trn, tra, jptra ) ! 2nd order centered … … 140 148 ! 141 149 END SELECT 150 ! 151 IF( l_trdtrc ) THEN ! save the advective trends for further diagnostics 152 DO jn = 1, jptra 153 ztrtrd(:,:,:,jn) = tra(:,:,:,jn) - ztrtrd(:,:,:,jn) 154 CALL trd_tra( kt, 'TRC', jn, jptra_totad, ztrtrd(:,:,:,jn) ) 155 END DO 156 CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrtrd ) 157 ENDIF 142 158 143 159 ! ! print mean trends (used for debugging)
Note: See TracChangeset
for help on using the changeset viewer.