- Timestamp:
- 2018-01-18T13:14:23+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r8917 r9259 185 185 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: albedo_oce_mix ! ocean albedo sent to atmosphere (mix clear/overcast sky) 186 186 187 REAL(wp) :: rpref = 101000._wp ! reference atmospheric pressure[N/m2]188 REAL(wp) :: r1_grau ! = 1.e0 / (grav * rau0189 190 187 INTEGER , ALLOCATABLE, SAVE, DIMENSION( :) :: nrcvinfo ! OASIS info argument 191 188 … … 523 520 ! ! Mean Sea Level Pressure ! 524 521 ! ! ------------------------- ! 525 srcv(jpr_mslp)%clname = 'O_MSLP' ; IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) srcv(jpr_mslp)%laction = .TRUE. 522 srcv(jpr_mslp)%clname = 'O_MSLP' 523 IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) THEN 524 srcv(jpr_mslp)%laction = .TRUE. 525 cpl_mslp = .TRUE. 526 ENDIF 526 527 527 528 ! ! ------------------------- ! … … 977 978 !!---------------------------------------------------------------------- 978 979 USE sbcflx , ONLY : ln_shelf_flx 980 USE sbcssm , ONLY : sbc_ssm_cpl 981 USE lib_fortran ! distributed memory computing library 979 982 980 983 INTEGER, INTENT(in) :: kt ! ocean model time step index … … 1175 1178 ! 1176 1179 IF( srcv(jpr_mslp)%laction ) THEN ! UKMO SHELF effect of atmospheric pressure on SSH 1177 1180 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1178 1181 1179 r1_grau = 1.e0 / (grav * rau0) !* constant for optimization 1180 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau ! equivalent ssh (inverse barometer) 1181 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1182 ! !* update the reference atmospheric pressure (if necessary) 1183 IF( ln_ref_apr ) rn_pref = glob_sum( frcv(jpr_mslp)%z3(:,:,1) * e1e2t(:,:) ) / tarea 1184 1185 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rn_pref ) * r1_grau ! equivalent ssh (inverse barometer) 1186 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1187 ! 1188 CALL iom_put( "ssh_ib", ssh_ib ) !* output the inverse barometer ssh 1182 1189 1183 IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) ! correct this later (read from restart if possible) 1190 ! ! ---------------------------------------- ! 1191 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 1192 ! ! ---------------------------------------- ! 1193 !* Restart: read in restart file 1194 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 1195 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb read in the restart file' 1196 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb ) ! before inv. barometer ssh 1197 ELSE !* no restart: set from nit000 values 1198 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb set to nit000 values' 1199 ssh_ibb(:,:) = ssh_ib(:,:) 1200 ENDIF 1201 ENDIF 1202 ! ! ---------------------------------------- ! 1203 IF( lrst_oce ) THEN ! Write in the ocean restart file ! 1204 ! ! ---------------------------------------- ! 1205 IF(lwp) WRITE(numout,*) 1206 IF(lwp) WRITE(numout,*) 'sbc_cpl : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp 1207 IF(lwp) WRITE(numout,*) '~~~~' 1208 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib ) 1209 ENDIF 1210 1211 ! Update mean ssh 1212 CALL sbc_ssm_cpl( kt ) 1184 1213 END IF 1185 1214 !
Note: See TracChangeset
for help on using the changeset viewer.