Changeset 12594
- Timestamp:
- 2020-03-24T22:18:34+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r11953 r12594 994 994 INTEGER :: it 995 995 REAL(wp) :: zincwgt ! IAU weight for current time step 996 ! #if defined key_lim2997 ! REAL(wp), DIMENSION(jpi,jpj) :: zofrld, zohicif, zseaicendg, zhicifinc ! LIM998 ! REAL(wp) :: zhicifmin = 0.5_wp ! ice minimum depth in metres999 ! !!THICKNESS INCS NOT SET UP FOR LIM1000 ! #endif1001 996 !!---------------------------------------------------------------------- 1002 997 … … 1021 1016 ENDIF 1022 1017 1023 ! Sea-ice : LIM-3 case (to add)1024 1025 ! #if defined key_lim21026 ! ! Sea-ice : LIM-2 case (to add if needed)1027 ! zofrld (:,:) = frld(:,:)1028 ! zohicif(:,:) = hicif(:,:)1029 ! !1030 ! frld = MIN( MAX( frld (:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp)1031 ! pfrld = MIN( MAX( pfrld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp)1032 ! fr_i(:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction1033 ! !1034 ! zseaicendg(:,:) = zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied1035 ! !1036 ! ! Nudge sea ice depth to bring it up to a required minimum depth1037 ! WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin )1038 ! zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt1039 ! ELSEWHERE1040 ! zhicifinc(:,:) = 0.0_wp1041 ! END WHERE1042 ! !1043 ! ! nudge ice depth1044 ! hicif (:,:) = hicif (:,:) + zhicifinc(:,:)1045 ! phicif(:,:) = phicif(:,:) + zhicifinc(:,:)1046 ! !1047 ! ! seaice salinity balancing (to add)1048 ! #endif1049 1050 1018 #if defined key_cice && defined key_asminc 1051 1019 ! Sea-ice thickness : CICE case. Pass ice thickness increment tendency into CICE … … 1076 1044 neuler = 0 ! Force Euler forward step 1077 1045 1078 ! Sea-ice : LIM-3 case (to add)1079 1080 ! #if defined key_lim21081 ! ! Sea-ice : LIM-2 case (add if needed)1082 ! zofrld(:,:)=frld(:,:)1083 ! zohicif(:,:)=hicif(:,:)1084 ! !1085 ! ! Initialize the now fields the background + increment1086 ! frld (:,:) = MIN( MAX( frld(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp)1087 ! pfrld(:,:) = frld(:,:)1088 ! fr_i (:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction1089 ! zseaicendg(:,:) = zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied1090 ! !1091 ! ! Nudge sea ice depth to bring it up to a required minimum depth1092 ! WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin )1093 ! zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt1094 ! ELSEWHERE1095 ! zhicifinc(:,:) = 0.0_wp1096 ! END WHERE1097 ! !1098 ! ! nudge ice depth1099 ! hicif (:,:) = hicif (:,:) + zhicifinc(:,:)1100 ! phicif(:,:) = phicif(:,:)1101 ! !1102 ! ! seaice salinity balancing (to add)1103 ! #endif1104 1105 1046 #if defined key_cice && defined key_asminc 1106 1047 ! Sea-ice thickness : CICE case. Pass ice thickness increment tendency into CICE … … 1119 1060 1120 1061 ENDIF 1121 1122 !#if defined defined key_lim2 || defined key_cice1123 !1124 ! IF (ln_seaicebal ) THEN1125 ! !! balancing salinity increments1126 ! !! simple case from limflx.F90 (doesn't include a mass flux)1127 ! !! assumption is that as ice concentration is reduced or increased1128 ! !! the snow and ice depths remain constant1129 ! !! note that snow is being created where ice concentration is being increased1130 ! !! - could be more sophisticated and1131 ! !! not do this (but would need to alter h_snow)1132 !1133 ! usave(:,:,:)=sb(:,:,:) ! use array as a temporary store1134 !1135 ! DO jj = 1, jpj1136 ! DO ji = 1, jpi1137 ! ! calculate change in ice and snow mass per unit area1138 ! ! positive values imply adding salt to the ocean (results from ice formation)1139 ! ! fwf : ice formation and melting1140 !1141 ! zfons = ( -nfresh_da(ji,jj)*soce + nfsalt_da(ji,jj) )*rdt1142 !1143 ! ! change salinity down to mixed layer depth1144 ! mld=hmld_kara(ji,jj)1145 !1146 ! ! prevent small mld1147 ! ! less than 10m can cause salinity instability1148 ! IF (mld < 10) mld=101149 !1150 ! ! set to bottom of a level1151 ! DO jk = jpk-1, 2, -11152 ! IF ((mld > gdepw(ji,jj,jk)) .and. (mld < gdepw(ji,jj,jk+1))) THEN1153 ! mld=gdepw(ji,jj,jk+1)1154 ! jkmax=jk1155 ! ENDIF1156 ! ENDDO1157 !1158 ! ! avoid applying salinity balancing in shallow water or on land1159 ! !1160 !1161 ! ! dsal_ocn (psu kg m^-2) / (kg m^-3 * m)1162 !1163 ! dsal_ocn=0.0_wp1164 ! sal_thresh=5.0_wp ! minimum salinity threshold for salinity balancing1165 !1166 ! if (tmask(ji,jj,1) > 0 .AND. tmask(ji,jj,jkmax) > 0 ) &1167 ! dsal_ocn = zfons / (rhop(ji,jj,1) * mld)1168 !1169 ! ! put increments in for levels in the mixed layer1170 ! ! but prevent salinity below a threshold value1171 !1172 ! DO jk = 1, jkmax1173 !1174 ! IF (dsal_ocn > 0.0_wp .or. sb(ji,jj,jk)+dsal_ocn > sal_thresh) THEN1175 ! sb(ji,jj,jk) = sb(ji,jj,jk) + dsal_ocn1176 ! sn(ji,jj,jk) = sn(ji,jj,jk) + dsal_ocn1177 ! ENDIF1178 !1179 ! ENDDO1180 !1181 ! ! ! salt exchanges at the ice/ocean interface1182 ! ! zpmess = zfons / rdt_ice ! rdt_ice is ice timestep1183 ! !1184 ! !! Adjust fsalt. A +ve fsalt means adding salt to ocean1185 ! !! fsalt(ji,jj) = fsalt(ji,jj) + zpmess ! adjust fsalt1186 ! !!1187 ! !! emps(ji,jj) = emps(ji,jj) + zpmess ! or adjust emps (see icestp1d)1188 ! !! ! E-P (kg m-2 s-2)1189 ! ! emp(ji,jj) = emp(ji,jj) + zpmess ! E-P (kg m-2 s-2)1190 ! ENDDO !ji1191 ! ENDDO !jj!1192 !1193 ! ENDIF !ln_seaicebal1194 !1195 !#endif1196 1062 1197 1063 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.