- Timestamp:
- 2020-02-25T18:24:46+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/r12083_cpl-pressure/src/OCE/SBC/sbccpl.F90
r11715 r12461 191 191 192 192 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: alb_oce_mix ! ocean albedo sent to atmosphere (mix clear/overcast sky) 193 194 REAL(wp) :: rpref = 101000._wp ! reference atmospheric pressure[N/m2]195 REAL(wp) :: r1_grau ! = 1.e0 / (grav * rau0)196 193 197 194 INTEGER , ALLOCATABLE, SAVE, DIMENSION(:) :: nrcvinfo ! OASIS info argument … … 550 547 ! ! Mean Sea Level Pressure ! 551 548 ! ! ------------------------- ! 552 srcv(jpr_mslp)%clname = 'O_MSLP' ; IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) srcv(jpr_mslp)%laction = .TRUE. 549 srcv(jpr_mslp)%clname = 'O_MSLP' 550 IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) THEN 551 srcv(jpr_mslp)%laction = .TRUE. 552 cpl_mslp = .TRUE. 553 ENDIF 553 554 ! 554 555 ! ! ------------------------- ! … … 1095 1096 !!---------------------------------------------------------------------- 1096 1097 USE zdf_oce, ONLY : ln_zdfswm 1098 USE sbcssm , ONLY : sbc_ssm_cpl 1099 USE lib_fortran ! distributed memory computing library 1097 1100 ! 1098 1101 INTEGER, INTENT(in) :: kt ! ocean model time step index … … 1259 1262 ! ! ========================= ! 1260 1263 IF( srcv(jpr_mslp)%laction ) THEN ! UKMO SHELF effect of atmospheric pressure on SSH 1261 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1262 1263 r1_grau = 1.e0 / (grav * rau0) !* constant for optimization 1264 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau ! equivalent ssh (inverse barometer) 1265 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1264 IF( ln_apr_dyn ) THEN 1265 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1266 1266 1267 IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) ! correct this later (read from restart if possible) 1267 ! !* update the reference atmospheric pressure (if necessary) 1268 IF( ln_ref_apr ) rn_pref = glob_sum( 'sbccpl', frcv(jpr_mslp)%z3(:,:,1) * e1e2t(:,:) ) / tarea 1269 1270 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rn_pref ) * r1_grau ! equivalent ssh (inverse barometer) 1271 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1272 ! 1273 CALL iom_put( "ssh_ib", ssh_ib ) !* output the inverse barometer ssh 1274 ! ! ---------------------------------------- ! 1275 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 1276 ! ! ---------------------------------------- ! 1277 !* Restart: read in restart file 1278 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 1279 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb read in the restart file' 1280 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb ) ! before inv. barometer ssh 1281 ELSE !* no restart: set from nit000 values 1282 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb set to nit000 values' 1283 ssh_ibb(:,:) = ssh_ib(:,:) 1284 ENDIF 1285 ENDIF 1286 ! ! ---------------------------------------- ! 1287 IF( lrst_oce ) THEN ! Write in the ocean restart file ! 1288 ! ! ---------------------------------------- ! 1289 IF(lwp) WRITE(numout,*) 1290 IF(lwp) WRITE(numout,*) 'sbc_cpl : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp 1291 IF(lwp) WRITE(numout,*) '~~~~' 1292 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib ) 1293 ENDIF 1294 ENDIF 1295 1296 ! Update mean ssh 1297 IF( nn_components /= jp_iam_sas ) CALL sbc_ssm_cpl( kt ) 1268 1298 END IF 1269 1299 !
Note: See TracChangeset
for help on using the changeset viewer.