- Timestamp:
- 2009-11-20T09:46:06+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/sbccpl.F90
r1726 r1742 45 45 USE lib_mpp ! distribued memory computing library 46 46 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 47 USE phycst, ONLY : xlsn, rhosn 47 USE phycst, ONLY : xlsn, rhosn, xlic, rhoic 48 48 #if defined key_cpl_carbon_cycle 49 49 USE p4zflx, ONLY : oce_co2 … … 1038 1038 INTEGER :: isec, info ! temporary integer 1039 1039 REAL(wp):: zcoef, ztsurf ! temporary scalar 1040 REAL(wp), DIMENSION(jpi,jpj):: zsnow ! snow precipitation 1040 REAL(wp), DIMENSION(jpi,jpj ):: zsnow ! snow precipitation 1041 REAL(wp), DIMENSION(jpi,jpj,jpl):: zicefr ! ice fraction 1041 1042 !!---------------------------------------------------------------------- 1043 zicefr(:,:,1) = 1.- p_frld(:,:,1) 1042 1044 ! 1043 1045 ! ! ========================= ! … … 1054 1056 zsnow (:,:) = frcv(:,:,jpr_snow) 1055 1057 CASE( 'oce and ice' ) ! received fields: jpr_sbpr, jpr_semp, jpr_oemp 1056 pemp_tot(:,:) = p_frld(:,:,1) * frcv(:,:,jpr_oemp) + (1.- p_frld(:,:,1)) * frcv(:,:,jpr_sbpr)1058 pemp_tot(:,:) = p_frld(:,:,1) * frcv(:,:,jpr_oemp) + zicefr(:,:,1) * frcv(:,:,jpr_sbpr) 1057 1059 pemp_ice(:,:) = frcv(:,:,jpr_semp) 1058 1060 zsnow (:,:) = - frcv(:,:,jpr_semp) + frcv(:,:,jpr_ievp) … … 1088 1090 pqns_ice(:,:,1) = frcv(:,:,jpr_qnsice) 1089 1091 CASE( 'oce and ice' ) ! the total flux is computed from ocean and ice fluxes 1090 pqns_tot(:,: ) = p_frld(:,:,1) * frcv(:,:,jpr_qnsoce) + ( 1.- p_frld(:,:,1)) * frcv(:,:,jpr_qnsice)1092 pqns_tot(:,: ) = p_frld(:,:,1) * frcv(:,:,jpr_qnsoce) + zicefr(:,:,1) * frcv(:,:,jpr_qnsice) 1091 1093 pqns_ice(:,:,1) = frcv(:,:,jpr_qnsice) 1092 1094 CASE( 'mixed oce-ice' ) ! the ice flux is cumputed from the total flux, the SST and ice informations 1093 1095 pqns_tot(:,: ) = frcv(:,:,jpr_qnsmix) 1094 1096 pqns_ice(:,:,1) = frcv(:,:,jpr_qnsmix) & 1095 & + frcv(:,:,jpr_dqnsdt) * ( pist(:,:,1) - ( (rt0 + psst(:,: ) ) * 1096 & + pist(:,:,1) * ( 1. - p_frld(:,:,1)) ) )1097 & + frcv(:,:,jpr_dqnsdt) * ( pist(:,:,1) - ( (rt0 + psst(:,: ) ) * p_frld(:,:,1) & 1098 & + pist(:,:,1) * zicefr(:,:,1) ) ) 1097 1099 END SELECT 1098 1100 ! ! snow melting heat flux .... 1099 ! energy for melting solid precipitation over free ocean1101 ! energy for melting solid precipitation over ice-free ocean 1100 1102 zcoef = xlsn / rhosn 1101 1103 pqns_tot(:,:) = pqns_tot(:,:) - p_frld(:,:,1) * zsnow(:,:) * zcoef … … 1107 1109 !! 1108 1110 !! similar job should be done for snow and precipitation temperature 1111 ! ! Iceberg melting heat flux .... 1112 ! energy for iceberg melting 1113 IF( srcv(jpr_cal)%laction ) THEN 1114 zcoef = xlic / rhoic 1115 pqns_tot(:,:) = pqns_tot(:,:) - frcv(:,:,jpr_cal)(:,:) * zcoef 1116 ENDIF 1109 1117 1110 1118 ! ! ========================= ! … … 1115 1123 pqsr_ice(:,:,1) = frcv(:,:,jpr_qsrice) 1116 1124 CASE( 'oce and ice' ) 1117 pqsr_tot(:,: ) = p_frld(:,:,1) * frcv(:,:,jpr_qsroce) + ( 1.- p_frld(:,:,1)) * frcv(:,:,jpr_qsrice)1125 pqsr_tot(:,: ) = p_frld(:,:,1) * frcv(:,:,jpr_qsroce) + zicefr(:,:,1) * frcv(:,:,jpr_qsrice) 1118 1126 pqsr_ice(:,:,1) = frcv(:,:,jpr_qsrice) 1119 1127 CASE( 'mixed oce-ice' ) … … 1122 1130 ! ( see OASIS3 user guide, 5th edition, p39 ) 1123 1131 pqsr_ice(:,:,1) = frcv(:,:,jpr_qsrmix) * ( 1.- palbi(:,:,1) ) & 1124 & / ( 1.- ( albedo_oce_mix(:,: ) * ( 1.- p_frld(:,:,1)) &1125 & + palbi (:,:,1) * p_frld(:,:,1) ))1132 & / ( 1.- ( albedo_oce_mix(:,: ) * p_frld(:,:,1) & 1133 & + palbi (:,:,1) * zicefr(:,:,1) ) ) 1126 1134 END SELECT 1127 1135
Note: See TracChangeset
for help on using the changeset viewer.