- Timestamp:
- 2019-08-16T12:32:43+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r6486 r11442 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( ln_stopack .AND. nn_spp_dqdt > 0 ) & 104 & CALL spp_gen( kt, rn_dqdt_s, nn_spp_dqdt, rn_dqdt_sd, jk_spp_dqdt ) 97 105 DO jj = 1, jpj 98 106 DO ji = 1, jpi 99 zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) )107 zqrp = rn_dqdt_s(ji,jj) * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) 100 108 qns(ji,jj) = qns(ji,jj) + zqrp 101 109 qrp(ji,jj) = zqrp … … 103 111 END DO 104 112 CALL iom_put( "qrp", qrp ) ! heat flux damping 113 CALL wrk_dealloc( jpi, jpj, rn_dqdt_s ) 105 114 ENDIF 106 115 ! 107 116 IF( nn_sssr == 1 ) THEN !* Salinity damping term (salt flux only (sfx)) 108 zsrp = rn_deds / rday ! from [mm/day] to [kg/m2/s] 117 CALL wrk_alloc( jpi, jpj, zsrp) 118 zsrp(:,:) = rn_deds 119 IF( ln_stopack .AND. nn_spp_dedt > 0 ) & 120 & CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 109 121 !CDIR COLLAPSE 110 122 DO jj = 1, jpj 111 123 DO ji = 1, jpi 112 zerp = zsrp* ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths124 zerp = (zsrp(ji,jj)/rday) * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 113 125 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) 114 126 sfx(ji,jj) = sfx(ji,jj) + zerp ! salt flux … … 117 129 END DO 118 130 CALL iom_put( "erp", erp ) ! freshwater flux damping 131 CALL wrk_dealloc( jpi,jpj, zsrp ) 119 132 ! 120 133 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] 134 CALL wrk_alloc( jpi, jpj, zsrp) 135 zsrp(:,:) = rn_deds 136 IF( ln_stopack .AND. nn_spp_dedt > 0 ) & 137 & CALL spp_gen( kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 122 138 zerp_bnd = rn_sssr_bnd / rday ! - - 123 139 !CDIR COLLAPSE 124 140 DO jj = 1, jpj 125 141 DO ji = 1, jpi 126 zerp = zsrp* ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths142 zerp = (zsrp(ji,jj)/rday) * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 127 143 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) & 128 144 & / MAX( sss_m(ji,jj), 1.e-20 ) … … 134 150 END DO 135 151 CALL iom_put( "erp", erp ) ! freshwater flux damping 152 CALL wrk_dealloc( jpi,jpj,zsrp ) 136 153 ENDIF 137 154 !
Note: See TracChangeset
for help on using the changeset viewer.