- Timestamp:
- 2019-07-31T18:05:50+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_STOPACK/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r4990 r11384 25 25 USE timing ! Timing 26 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 27 USE stopack 28 USE wrk_nemo ! Memory Allocation 27 29 28 30 IMPLICIT NONE … … 75 77 REAL(wp) :: zerp ! local scalar for evaporation damping 76 78 REAL(wp) :: zqrp ! local scalar for heat flux damping 77 REAL(wp) :: zsrp ! local scalar for unit conversion of rn_deds factor78 79 REAL(wp) :: zerp_bnd ! local scalar for unit conversion of rn_epr_max factor 80 REAL(wp), POINTER, DIMENSION(:,:) :: rn_dqdt_s, zsrp 79 81 INTEGER :: ierror ! return error code 80 82 !! … … 95 97 ! 96 98 IF( nn_sstr == 1 ) THEN !* Temperature restoring term 99 100 CALL wrk_alloc( jpi, jpj, rn_dqdt_s) 101 rn_dqdt_s=rn_dqdt 102 103 IF( nn_spp_dqdt > 0 ) CALL spp_gen(kt, rn_dqdt_s,nn_spp_dqdt,rn_dqdt_sd,jk_spp_dqdt ) 97 104 DO jj = 1, jpj 98 105 DO ji = 1, jpi 99 zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) )106 zqrp = rn_dqdt_s(ji,jj) * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) 100 107 qns(ji,jj) = qns(ji,jj) + zqrp 101 108 qrp(ji,jj) = zqrp … … 103 110 END DO 104 111 CALL iom_put( "qrp", qrp ) ! heat flux damping 112 CALL wrk_dealloc( jpi, jpj, rn_dqdt_s ) 105 113 ENDIF 106 114 ! 107 115 IF( nn_sssr == 1 ) THEN !* Salinity damping term (salt flux only (sfx)) 108 zsrp = rn_deds / rday ! from [mm/day] to [kg/m2/s] 116 CALL wrk_alloc( jpi, jpj, zsrp) 117 zsrp = rn_deds 118 IF( nn_spp_dedt > 0 ) CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 109 119 !CDIR COLLAPSE 110 120 DO jj = 1, jpj 111 121 DO ji = 1, jpi 112 zerp = zsrp* ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths122 zerp = (zsrp(ji,jj)/rday) * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 113 123 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) 114 124 sfx(ji,jj) = sfx(ji,jj) + zerp ! salt flux … … 117 127 END DO 118 128 CALL iom_put( "erp", erp ) ! freshwater flux damping 129 CALL wrk_dealloc( jpi,jpj, zsrp ) 119 130 ! 120 131 ELSEIF( nn_sssr == 2 ) THEN !* Salinity damping term (volume flux (emp) and associated heat flux (qns) 121 zsrp = rn_deds / rday ! from [mm/day] to [kg/m2/s] 132 CALL wrk_alloc( jpi, jpj, zsrp) 133 zsrp = rn_deds 134 IF( nn_spp_dedt > 0 ) CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 122 135 zerp_bnd = rn_sssr_bnd / rday ! - - 123 136 !CDIR COLLAPSE 124 137 DO jj = 1, jpj 125 138 DO ji = 1, jpi 126 zerp = zsrp* ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths139 zerp = (zsrp(ji,jj)/rday) * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 127 140 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) & 128 141 & / MAX( sss_m(ji,jj), 1.e-20 ) … … 134 147 END DO 135 148 CALL iom_put( "erp", erp ) ! freshwater flux damping 149 CALL wrk_dealloc( jpi,jpj,zsrp ) 136 150 ENDIF 137 151 !
Note: See TracChangeset
for help on using the changeset viewer.