Changeset 6594 for branches/UKMO
- Timestamp:
- 2016-05-20T16:51:52+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_ww3_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r6394 r6594 141 141 INTEGER, PARAMETER :: jps_ocxw = 30 ! currents on grid 1 142 142 INTEGER, PARAMETER :: jps_ocyw = 31 ! currents on grid 1 143 INTEGER, PARAMETER :: jpsnd = 31 ! total number of fields sended 143 INTEGER, PARAMETER :: jps_wlev = 32 ! water level 144 INTEGER, PARAMETER :: jpsnd = 32 ! total number of fields sended 144 145 145 146 ! !!** namelist namsbc_cpl ** … … 157 158 TYPE(FLD_C) :: sn_rcv_cal, sn_rcv_iceflx, sn_rcv_co2, sn_rcv_mslp 158 159 ! Send to waves 159 TYPE(FLD_C) :: sn_snd_ifrac, sn_snd_crtw, sn_snd_ ssh160 TYPE(FLD_C) :: sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev 160 161 ! Received from waves 161 162 TYPE(FLD_C) :: sn_rcv_hsig,sn_rcv_phioc … … 233 234 NAMELIST/namsbc_cpl/ sn_snd_temp , sn_snd_alb , sn_snd_thick , sn_snd_crt , sn_snd_co2, & 234 235 & sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau , sn_rcv_dqnsdt, sn_rcv_qsr, & 235 & sn_snd_ifrac, sn_snd_crtw , sn_snd_ ssh, sn_rcv_hsig , sn_rcv_phioc , &236 & sn_snd_ifrac, sn_snd_crtw , sn_snd_wlev , sn_rcv_hsig , sn_rcv_phioc , & 236 237 & sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf , sn_rcv_cal , sn_rcv_iceflx, & 237 238 & sn_rcv_co2 , nn_cplmodel , ln_usecplmask, sn_rcv_mslp … … 288 289 WRITE(numout,*)' - mesh = ', sn_snd_crt%clvgrd 289 290 WRITE(numout,*)' oce co2 flux = ', TRIM(sn_snd_co2%cldes ), ' (', TRIM(sn_snd_co2%clcat ), ')' 290 WRITE(numout,*)' sea surface height = ', TRIM(sn_snd_ssh%cldes ), ' (', TRIM(sn_snd_ssh%clcat), ')'291 WRITE(numout,*)' water level = ', TRIM(sn_snd_wlev%cldes ), ' (', TRIM(sn_snd_wlev%clcat ), ')' 291 292 WRITE(numout,*)' mean sea level pressure = ', TRIM(sn_rcv_mslp%cldes ), ' (', TRIM(sn_rcv_mslp%clcat ), ')' 292 293 WRITE(numout,*)' surface current to waves = ', TRIM(sn_snd_crtw%cldes ), ' (', TRIM(sn_snd_crtw%clcat ), ')' … … 746 747 ! ! CO2 flux ! 747 748 ! ! ------------------------- ! 748 ssnd(jps_co2)%clname = 'O_CO2FLX' ; IF( TRIM(sn_snd_co2%cldes) == 'coupled' ) ssnd(jps_co2 )%laction = .TRUE.749 ssnd(jps_co2)%clname = 'O_CO2FLX' ; IF( TRIM(sn_snd_co2%cldes) == 'coupled' ) ssnd(jps_co2 )%laction = .TRUE. 749 750 750 751 ! ! ------------------------- ! 751 752 ! ! Sea surface height ! 752 753 ! ! ------------------------- ! 753 ssnd(jps_ ssh)%clname = 'O_SSHght' ; IF( TRIM(sn_snd_ssh%cldes) == 'coupled' ) ssnd(jps_ssh)%laction = .TRUE.754 ssnd(jps_wlev)%clname = 'O_Wlevel' ; IF( TRIM(sn_snd_wlev%cldes) == 'coupled' ) ssnd(jps_wlev)%laction = .TRUE. 754 755 755 756 ! ! ------------------------------- ! 756 757 ! ! OPA-SAS coupling - snd by opa ! 757 758 ! ! ------------------------------- ! 759 ssnd(jps_ssh )%clname = 'O_SSHght' 758 760 ssnd(jps_soce )%clname = 'O_SSSal' 759 761 ssnd(jps_e3t1st)%clname = 'O_E3T1st' … … 1058 1060 IF( srcv(jpr_co2)%laction ) atm_co2(:,:) = frcv(jpr_co2)%z3(:,:,1) 1059 1061 #endif 1062 ! 1063 ! ! ========================= ! 1064 ! ! Mean Sea Level Pressure ! (taum) 1065 ! ! ========================= ! 1066 ! 1067 IF( srcv(jpr_mslp)%laction ) THEN ! UKMO SHELF effect of atmospheric pressure on SSH 1068 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1069 1070 r1_grau = 1.e0 / (grav * rau0) !* constant for optimization 1071 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau ! equivalent ssh (inverse barometer) 1072 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1073 1074 IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) ! correct this later (read from restart if possible) 1075 END IF 1060 1076 1061 1077 ! Fields received by SAS when OASIS coupling … … 1174 1190 ! 1175 1191 CALL wrk_dealloc( jpi,jpj, ztx, zty, zmsk, zemp, zqns, zqsr ) 1176 !1177 ! ! ========================= !1178 ! ! Mean Sea Level Pressure ! (taum)1179 ! ! ========================= !1180 !1181 IF( srcv(jpr_mslp)%laction ) THEN ! UKMO SHELF effect of atmospheric pressure on SSH1182 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields1183 1184 r1_grau = 1.e0 / (grav * rau0) !* constant for optimization1185 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau ! equivalent ssh (inverse barometer)1186 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure1187 1188 IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) ! correct this later (read from restart if possible)1189 END IF1190 1191 1192 ! 1192 1193 IF( nn_timing == 1 ) CALL timing_stop('sbc_cpl_rcv') … … 2194 2195 CALL cpl_snd( jps_ficet, isec, RESHAPE ( fr_i, (/jpi,jpj,1/) ), info ) 2195 2196 END IF 2197 ! ! ------------------------- ! 2198 ! ! Water levels to waves ! 2199 ! ! ------------------------- ! 2200 IF( ssnd(jps_wlev)%laction ) THEN 2201 IF( ln_apr_dyn ) THEN 2202 IF( kt /= nit000 ) THEN 2203 ztmp1(:,:) = sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 2204 ELSE 2205 ztmp1(:,:) = sshb(:,:) 2206 ENDIF 2207 ELSE 2208 ztmp1(:,:) = sshn(:,:) 2209 ENDIF 2210 ! add the bathymetry - we need to send the total height of the water column 2211 ztmp1(:,:) = ztmp1(:,:) + bathy(:,:) 2212 CALL cpl_snd( jps_wlev , isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 2213 END IF 2196 2214 ! 2197 2215 ! Fields sent by OPA to SAS when doing OPA<->SAS coupling … … 2200 2218 ! ! removed inverse barometer ssh when Patm 2201 2219 ! forcing is used (for sea-ice dynamics) 2202 IF( ln_apr_dyn ) THEN 2203 IF( kt /= nit000 ) THEN 2204 ztmp1(:,:) = sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 2205 ELSE 2206 ztmp1(:,:) = sshb(:,:) 2207 ENDIF 2208 ELSE 2209 ztmp1(:,:) = sshn(:,:) 2220 IF( ln_apr_dyn ) THEN ; ztmp1(:,:) = sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 2221 ELSE ; ztmp1(:,:) = sshn(:,:) 2210 2222 ENDIF 2211 2223 CALL cpl_snd( jps_ssh , isec, RESHAPE ( ztmp1 , (/jpi,jpj,1/) ), info )
Note: See TracChangeset
for help on using the changeset viewer.