- Timestamp:
- 2021-10-28T11:23:37+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/r14075_ukmo_shelf/src/OCE/SBC/sbcssr.F90
r14075 r15455 44 44 REAL(wp) :: rn_sssr_bnd ! ABS(Max./Min.) value of erp term [mm/day] 45 45 INTEGER :: nn_sssr_ice ! Control of restoring under ice 46 LOGICAL :: ln_UKMO_haney ! UKMO specific flag to calculate Haney forcing 46 47 47 48 REAL(wp) , ALLOCATABLE, DIMENSION(:) :: buffer ! Temporary buffer for exchange … … 79 80 INTEGER :: ierror ! return error code 80 81 !! 82 REAL(wp) :: sst1,sst2 ! sea surface temperature 83 REAL(wp) :: e_sst1, e_sst2 ! saturation vapour pressure 84 REAL(wp) :: qs1,qs2 ! specific humidity 85 REAL(wp) :: pr_tmp ! temporary variable for pressure 86 87 REAL(wp), DIMENSION(jpi,jpj) :: hny_frc1 ! Haney forcing for sensible heat, correction for latent heat 88 REAL(wp), DIMENSION(jpi,jpj) :: hny_frc2 ! Haney forcing for sensible heat, correction for latent heat 89 !! 81 90 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files 82 91 TYPE(FLD_N) :: sn_sst, sn_sss ! informations about the fields to be read … … 93 102 ! 94 103 IF( nn_sstr == 1 ) THEN !* Temperature restoring term 95 DO jj = 1, jpj 96 DO ji = 1, jpi 97 zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) * tmask(ji,jj,1) 98 qns(ji,jj) = qns(ji,jj) + zqrp 99 qrp(ji,jj) = zqrp 100 END DO 101 END DO 104 IF( ln_UKMO_haney ) THEN 105 DO jj = 1, jpj 106 DO ji = 1, jpi 107 sst1 = sst_m(ji,jj) 108 sst2 = sf_sst(1)%fnow(ji,jj,1) 109 e_sst1 = 10**((0.7859+0.03477*sst1)/(1.+0.00412*sst1)) 110 e_sst2 = 10**((0.7859+0.03477*sst2)/(1.+0.00412*sst2)) 111 pr_tmp = 0.01*pressnow(ji,jj) !pr_tmp = 1012.0 112 qs1 = (0.62197*e_sst1)/(pr_tmp-0.378*e_sst1) 113 qs2 = (0.62197*e_sst2)/(pr_tmp-0.378*e_sst2) 114 hny_frc1(ji,jj) = sst1-sst2 115 hny_frc2(ji,jj) = qs1-qs2 116 !Might need to mask off land points. 117 hny_frc1(ji,jj)=-hny_frc1(ji,jj)*wndm(ji,jj)*1.42 118 hny_frc2(ji,jj)=-hny_frc2(ji,jj)*wndm(ji,jj)*4688.0 119 qns(ji,jj)=qns(ji,jj)+hny_frc1(ji,jj)+hny_frc2(ji,jj) 120 qrp(ji,jj) = 0.e0 121 END DO 122 END DO 123 ELSE 124 DO jj = 1, jpj 125 DO ji = 1, jpi 126 zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) 127 qns(ji,jj) = qns(ji,jj) + zqrp 128 qrp(ji,jj) = zqrp 129 END DO 130 END DO 131 ENDIF 102 132 ENDIF 103 133 ! … … 170 200 TYPE(FLD_N) :: sn_sst, sn_sss ! informations about the fields to be read 171 201 NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, & 172 & sn_sss, ln_sssr_bnd, rn_sssr_bnd, nn_sssr_ice 202 & sn_sss, ln_sssr_bnd, rn_sssr_bnd, nn_sssr_ice, ln_UKMO_haney 173 203 INTEGER :: ios 174 204 !!---------------------------------------------------------------------- … … 202 232 WRITE(numout,*) ' ( 1 = restoration everywhere )' 203 233 WRITE(numout,*) ' (>1 = enhanced restoration under ice )' 234 WRITE(numout,*) ' Haney forcing ln_UKMO_haney = ', ln_UKMO_haney 204 235 ENDIF 205 236 !
Note: See TracChangeset
for help on using the changeset viewer.