--- trunk/Sources/filtrez/filtreg_scal.f 2015/05/06 15:51:03 137 +++ trunk/filtrez/filtreg_scal.f 2018/02/05 10:39:38 254 @@ -11,9 +11,9 @@ ! Objet : filtre matriciel longitudinal, avec les matrices pr\'ecalcul\'ees ! pour l'op\'erateur filtre. - USE coefils, ONLY: sddv, unsddv USE dimens_m, ONLY: iim, jjm use filtreg_hemisph_m, only: filtreg_hemisph + USE inifgn_m, ONLY: sddv, unsddv use inifilr_m, only: jfiltnu, jfiltsu, matriceun, matriceus, matrinvn, & matrinvs use nr_util, only: assert @@ -27,27 +27,21 @@ ! champ intensif ou extensif (pond\'er\'e par les aires) ! Local: - REAL sdd1(iim), sdd2(iim) + REAL sdd(iim) !----------------------------------------------------------- call assert(size(champ, 1) == iim + 1, "filtreg_scal iim + 1") call assert(size(champ, 2) == jjm + 1, "filtreg_scal jjm + 1") - IF (intensive) THEN - sdd1 = sddv - sdd2 = unsddv - ELSE - sdd1 = unsddv - sdd2 = sddv - END IF + sdd = merge(sddv, unsddv, intensive) if (direct) then - call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd1, sdd2, matriceun) - call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd1, sdd2, matriceus) + call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd, matriceun) + call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd, matriceus) else - call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd1, sdd2, - matrinvn) - call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd1, sdd2, - matrinvs) + call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd, - matrinvn) + call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd, - matrinvs) end if END SUBROUTINE filtreg_scal