Changeset 5158 for LMDZ6/branches/Amaury_dev/libf/dyn3d/interp_horiz.F90
- Timestamp:
- Aug 2, 2024, 2:12:03 PM (7 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d/interp_horiz.F90
r5117 r5158 36 36 ! Autres variables 37 37 ! """""""""""""""" 38 REAL :: airetest(imn + 1, jmn + 1)39 38 INTEGER :: ii, jj, l 40 39 … … 45 44 INTEGER :: iik(kllm), jjk(kllm), jk(kllm), ik(kllm) 46 45 REAL :: intersec(kllm) 47 REAL :: R48 46 REAL :: totn, tots 49 50 LOGICAL :: firstcall, firsttest, aire_ok51 save firsttest52 data firsttest /.TRUE./53 data aire_ok /.TRUE./54 55 56 57 58 47 59 48 ! initialisation … … 68 57 ktotal, iik, jjk, jk, ik, intersec, airen) 69 58 70 dol = 1, lm71 dojj = 1, jmn + 172 doii = 1, imn + 159 DO l = 1, lm 60 DO jj = 1, jmn + 1 61 DO ii = 1, imn + 1 73 62 varn(ii, jj, l) = 0. 74 63 END DO … … 83 72 PRINT *, 'ktotal 1 = ', ktotal 84 73 85 dok = 1, ktotal86 dol = 1, lm74 DO k = 1, ktotal 75 DO l = 1, lm 87 76 varn(iik(k), jjk(k), l) = varn(iik(k), jjk(k), l) & 88 77 + varo(ik(k), jk(k), l) * intersec(k) / airen(iik(k), jjk(k)) … … 91 80 92 81 ! Une seule valeur au pole pour les variables ! : 93 ! ----------------------------------------------- 94 do l = 1, lm 82 DO l = 1, lm 95 83 totn = 0. 96 84 tots = 0. 97 doii = 1, imn + 185 DO ii = 1, imn + 1 98 86 totn = totn + varn(ii, 1, l) 99 87 tots = tots + varn (ii, jmn + 1, l) 100 88 END DO 101 doii = 1, imn + 189 DO ii = 1, imn + 1 102 90 varn(ii, 1, l) = totn / REAL(imn + 1) 103 91 varn(ii, jmn + 1, l) = tots / REAL(imn + 1) … … 105 93 END DO 106 94 107 108 !---------------------------------------------------------------109 ! TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST110 !! if (.NOT.(firsttest)) goto 99111 !! firsttest = .FALSE.112 !! ! write (*,*) 'INTERP. HORIZ. : TEST SUR LES AIRES:'113 !! do jj =1 , jmn+1114 !! do ii=1, imn+1115 !! airetest(ii,jj) =0.116 !! END DO117 !! END DO118 !! PRINT *, 'ktotal = ', ktotal119 !! PRINT *, 'jmn+1 =', jmn+1, 'imn+1', imn+1120 !!121 !! do k=1,ktotal122 !! airetest(iik(k),jjk(k))= airetest(iik(k),jjk(k)) +intersec(k)123 !! end DO124 !!125 !!126 !! PRINT *, 'fin boucle'127 !! do jj =1 , jmn+1128 !! do ii=1, imn+1129 !! r = airen(ii,jj)/airetest(ii,jj)130 !! if ((r.gt.1.001).OR.(r.lt.0.999)) THEN131 !! ! write (*,*) '********** PROBLEME D'' AIRES !!!',132 !! ! & ' DANS L''INTERPOLATION HORIZONTALE'133 !! ! WRITE(*,*)'ii,jj,airen,airetest',134 !! ! & ii,jj,airen(ii,jj),airetest(ii,jj)135 !! aire_ok = .FALSE.136 !! end if137 !! END DO138 !! END DO139 !! ! if (aire_ok) WRITE(*,*) 'INTERP. HORIZ. : AIRES OK'140 !! 99 continue141 142 ! FIN TEST FIN TEST FIN TEST FIN TEST FIN TEST FIN TEST FIN TEST143 !---------------------------------------------------------------144 145 146 95 END SUBROUTINE interp_horiz
Note: See TracChangeset
for help on using the changeset viewer.