- Timestamp:
- 2019-03-26T11:46:36+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/r8395_cpl-pressure/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r10797 r10803 182 182 183 183 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: albedo_oce_mix ! ocean albedo sent to atmosphere (mix clear/overcast sky) 184 185 REAL(wp) :: rpref = 101000._wp ! reference atmospheric pressure[N/m2]186 REAL(wp) :: r1_grau ! = 1.e0 / (grav * rau0)187 184 188 185 INTEGER , ALLOCATABLE, SAVE, DIMENSION( :) :: nrcvinfo ! OASIS info argument … … 535 532 ! ! Mean Sea Level Pressure ! 536 533 ! ! ------------------------- ! 537 srcv(jpr_mslp)%clname = 'O_MSLP' ; IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) srcv(jpr_mslp)%laction = .TRUE. 538 534 srcv(jpr_mslp)%clname = 'O_MSLP' 535 IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) THEN 536 srcv(jpr_mslp)%laction = .TRUE. 537 cpl_mslp = .TRUE. 538 ENDIF 539 539 ! ! ------------------------- ! 540 540 ! ! topmelt and botmelt ! … … 975 975 !!---------------------------------------------------------------------- 976 976 USE zdf_oce, ONLY : ln_zdfqiao 977 USE sbcssm , ONLY : sbc_ssm_cpl 978 USE lib_fortran ! distributed memory computing library 977 979 978 980 IMPLICIT NONE … … 1138 1140 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1139 1141 1140 r1_grau = 1.e0 / (grav * rau0) !* constant for optimization 1141 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau ! equivalent ssh (inverse barometer) 1142 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1143 1144 IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) ! correct this later (read from restart if possible) 1142 ! !* update the reference atmospheric pressure (if necessary) 1143 IF( ln_ref_apr ) rn_pref = glob_sum( frcv(jpr_mslp)%z3(:,:,1) * e1e2t(:,:) ) / tarea 1144 1145 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rn_pref ) * r1_grau ! equivalent ssh (inverse barometer) 1146 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1147 ! 1148 CALL iom_put( "ssh_ib", ssh_ib ) !* output the inverse barometer ssh 1149 ! ! ---------------------------------------- ! 1150 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 1151 ! ! ---------------------------------------- ! 1152 !* Restart: read in restart file 1153 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 1154 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb read in the restart file' 1155 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb ) ! before inv. barometer ssh 1156 ELSE !* no restart: set from nit000 values 1157 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb set to nit000 values' 1158 ssh_ibb(:,:) = ssh_ib(:,:) 1159 ENDIF 1160 ENDIF 1161 ! ! ---------------------------------------- ! 1162 IF( lrst_oce ) THEN ! Write in the ocean restart file ! 1163 ! ! ---------------------------------------- ! 1164 IF(lwp) WRITE(numout,*) 1165 IF(lwp) WRITE(numout,*) 'sbc_cpl : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp 1166 IF(lwp) WRITE(numout,*) '~~~~' 1167 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib ) 1168 ENDIF 1169 1170 ! Update mean ssh 1171 CALL sbc_ssm_cpl( kt ) 1145 1172 END IF 1146 1173 !
Note: See TracChangeset
for help on using the changeset viewer.