Changeset 12595
- Timestamp:
- 2020-03-24T22:25:05+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14_sit/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r11952 r12595 1024 1024 INTEGER :: it 1025 1025 REAL(wp) :: zincwgt ! IAU weight for current time step 1026 ! #if defined key_lim21027 ! REAL(wp), DIMENSION(jpi,jpj) :: zofrld, zohicif, zseaicendg, zhicifinc ! LIM1028 ! REAL(wp) :: zhicifmin = 0.5_wp ! ice minimum depth in metres1029 ! !!THICKNESS INCS NOT SET UP FOR LIM1030 ! #endif1031 1026 !!---------------------------------------------------------------------- 1032 1027 … … 1051 1046 ENDIF 1052 1047 1053 ! Sea-ice : LIM-3 case (to add)1054 1055 ! #if defined key_lim21056 ! ! Sea-ice : LIM-2 case (to add if needed)1057 ! zofrld (:,:) = frld(:,:)1058 ! zohicif(:,:) = hicif(:,:)1059 ! !1060 ! frld = MIN( MAX( frld (:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp)1061 ! pfrld = MIN( MAX( pfrld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp)1062 ! fr_i(:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction1063 ! !1064 ! zseaicendg(:,:) = zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied1065 ! !1066 ! ! Nudge sea ice depth to bring it up to a required minimum depth1067 ! WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin )1068 ! zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt1069 ! ELSEWHERE1070 ! zhicifinc(:,:) = 0.0_wp1071 ! END WHERE1072 ! !1073 ! ! nudge ice depth1074 ! hicif (:,:) = hicif (:,:) + zhicifinc(:,:)1075 ! phicif(:,:) = phicif(:,:) + zhicifinc(:,:)1076 ! !1077 ! ! seaice salinity balancing (to add)1078 ! #endif1079 1080 1048 #if defined key_cice && defined key_asminc 1081 1049 ! Sea-ice thickness : CICE case. Pass ice thickness increment tendency into CICE … … 1106 1074 neuler = 0 ! Force Euler forward step 1107 1075 1108 ! Sea-ice : LIM-3 case (to add)1109 1110 ! #if defined key_lim21111 ! ! Sea-ice : LIM-2 case (add if needed)1112 ! zofrld(:,:)=frld(:,:)1113 ! zohicif(:,:)=hicif(:,:)1114 ! !1115 ! ! Initialize the now fields the background + increment1116 ! frld (:,:) = MIN( MAX( frld(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp)1117 ! pfrld(:,:) = frld(:,:)1118 ! fr_i (:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction1119 ! zseaicendg(:,:) = zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied1120 ! !1121 ! ! Nudge sea ice depth to bring it up to a required minimum depth1122 ! WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin )1123 ! zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt1124 ! ELSEWHERE1125 ! zhicifinc(:,:) = 0.0_wp1126 ! END WHERE1127 ! !1128 ! ! nudge ice depth1129 ! hicif (:,:) = hicif (:,:) + zhicifinc(:,:)1130 ! phicif(:,:) = phicif(:,:)1131 ! !1132 ! ! seaice salinity balancing (to add)1133 ! #endif1134 1135 1076 #if defined key_cice && defined key_asminc 1136 1077 ! Sea-ice thickness : CICE case. Pass ice thickness increment tendency into CICE … … 1149 1090 1150 1091 ENDIF 1151 1152 !#if defined defined key_lim2 || defined key_cice1153 !1154 ! IF (ln_seaicebal ) THEN1155 ! !! balancing salinity increments1156 ! !! simple case from limflx.F90 (doesn't include a mass flux)1157 ! !! assumption is that as ice concentration is reduced or increased1158 ! !! the snow and ice depths remain constant1159 ! !! note that snow is being created where ice concentration is being increased1160 ! !! - could be more sophisticated and1161 ! !! not do this (but would need to alter h_snow)1162 !1163 ! usave(:,:,:)=sb(:,:,:) ! use array as a temporary store1164 !1165 ! DO jj = 1, jpj1166 ! DO ji = 1, jpi1167 ! ! calculate change in ice and snow mass per unit area1168 ! ! positive values imply adding salt to the ocean (results from ice formation)1169 ! ! fwf : ice formation and melting1170 !1171 ! zfons = ( -nfresh_da(ji,jj)*soce + nfsalt_da(ji,jj) )*rdt1172 !1173 ! ! change salinity down to mixed layer depth1174 ! mld=hmld_kara(ji,jj)1175 !1176 ! ! prevent small mld1177 ! ! less than 10m can cause salinity instability1178 ! IF (mld < 10) mld=101179 !1180 ! ! set to bottom of a level1181 ! DO jk = jpk-1, 2, -11182 ! IF ((mld > gdepw(ji,jj,jk)) .and. (mld < gdepw(ji,jj,jk+1))) THEN1183 ! mld=gdepw(ji,jj,jk+1)1184 ! jkmax=jk1185 ! ENDIF1186 ! ENDDO1187 !1188 ! ! avoid applying salinity balancing in shallow water or on land1189 ! !1190 !1191 ! ! dsal_ocn (psu kg m^-2) / (kg m^-3 * m)1192 !1193 ! dsal_ocn=0.0_wp1194 ! sal_thresh=5.0_wp ! minimum salinity threshold for salinity balancing1195 !1196 ! if (tmask(ji,jj,1) > 0 .AND. tmask(ji,jj,jkmax) > 0 ) &1197 ! dsal_ocn = zfons / (rhop(ji,jj,1) * mld)1198 !1199 ! ! put increments in for levels in the mixed layer1200 ! ! but prevent salinity below a threshold value1201 !1202 ! DO jk = 1, jkmax1203 !1204 ! IF (dsal_ocn > 0.0_wp .or. sb(ji,jj,jk)+dsal_ocn > sal_thresh) THEN1205 ! sb(ji,jj,jk) = sb(ji,jj,jk) + dsal_ocn1206 ! sn(ji,jj,jk) = sn(ji,jj,jk) + dsal_ocn1207 ! ENDIF1208 !1209 ! ENDDO1210 !1211 ! ! ! salt exchanges at the ice/ocean interface1212 ! ! zpmess = zfons / rdt_ice ! rdt_ice is ice timestep1213 ! !1214 ! !! Adjust fsalt. A +ve fsalt means adding salt to ocean1215 ! !! fsalt(ji,jj) = fsalt(ji,jj) + zpmess ! adjust fsalt1216 ! !!1217 ! !! emps(ji,jj) = emps(ji,jj) + zpmess ! or adjust emps (see icestp1d)1218 ! !! ! E-P (kg m-2 s-2)1219 ! ! emp(ji,jj) = emp(ji,jj) + zpmess ! E-P (kg m-2 s-2)1220 ! ENDDO !ji1221 ! ENDDO !jj!1222 !1223 ! ENDIF !ln_seaicebal1224 !1225 !#endif1226 1092 1227 1093 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.