- Timestamp:
- 2021-11-25T12:47:25+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/v15531_cpl-mslp-apr/src/OCE/SBC/sbccpl.F90
r15004 r15537 220 220 #endif 221 221 222 REAL(wp) :: rpref = 101000._wp ! reference atmospheric pressure[N/m2]223 REAL(wp) :: r1_grau ! = 1.e0 / (grav * rho0)224 225 222 INTEGER , ALLOCATABLE, SAVE, DIMENSION(:) :: nrcvinfo ! OASIS info argument 226 223 … … 601 598 ! ! Mean Sea Level Pressure ! 602 599 ! ! ------------------------- ! 603 srcv(jpr_mslp)%clname = 'O_MSLP' ; IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) srcv(jpr_mslp)%laction = .TRUE. 600 srcv(jpr_mslp)%clname = 'O_MSLP' 601 IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) THEN 602 srcv(jpr_mslp)%laction = .TRUE. 603 cpl_mslp = .TRUE. 604 ENDIF 604 605 ! 605 606 ! ! --------------------------------- ! … … 1175 1176 !!---------------------------------------------------------------------- 1176 1177 USE zdf_oce, ONLY : ln_zdfswm 1178 USE sbcssm , ONLY : sbc_ssm_cpl 1179 USE lib_fortran ! distributed memory computing library 1177 1180 ! 1178 1181 INTEGER, INTENT(in) :: kt ! ocean model time step index … … 1348 1351 ! ! ========================= ! 1349 1352 IF( srcv(jpr_mslp)%laction ) THEN ! UKMO SHELF effect of atmospheric pressure on SSH 1350 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1351 1352 r1_grau = 1.e0 / (grav * rho0) !* constant for optimization 1353 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau ! equivalent ssh (inverse barometer) 1354 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1355 1356 IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) ! correct this later (read from restart if possible) 1353 IF( ln_apr_dyn ) THEN 1354 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1355 ! !* update the reference atmospheric pressure (if necessary) 1356 IF( ln_ref_apr ) rn_pref = glob_sum( 'sbccpl', frcv(jpr_mslp)%z3(:,:,1) * e1e2t(:,:) ) / tarea 1357 1358 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rn_pref ) * r1_grau ! equivalent ssh (inverse barometer) 1359 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1360 ! 1361 CALL iom_put( "ssh_ib", ssh_ib ) !* output the inverse barometer ssh 1362 ! ! ---------------------------------------- ! 1363 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 1364 ! ! ---------------------------------------- ! 1365 !* Restart: read in restart file 1366 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 1367 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb read in the restart file' 1368 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb ) ! before inv. barometer ssh 1369 ELSE !* no restart: set from nit000 values 1370 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb set to nit000 values' 1371 ssh_ibb(:,:) = ssh_ib(:,:) 1372 ENDIF 1373 ENDIF 1374 ! ! ---------------------------------------- ! 1375 IF( lrst_oce ) THEN ! Write in the ocean restart file ! 1376 ! ! ---------------------------------------- ! 1377 IF(lwp) WRITE(numout,*) 1378 IF(lwp) WRITE(numout,*) 'sbc_cpl : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp 1379 IF(lwp) WRITE(numout,*) '~~~~' 1380 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib ) 1381 ENDIF 1382 ENDIF 1383 1384 ! Update mean ssh 1385 IF( nn_components /= jp_iam_sas ) CALL sbc_ssm_cpl( kt ) 1386 ENDIF 1357 1387 ENDIF 1358 1388 !
Note: See TracChangeset
for help on using the changeset viewer.