Changeset 1611


Ignore:
Timestamp:
01/25/12 15:31:54 (6 years ago)
Author:
lguez
Message:

Avoid aliasing in "inidissip".
Correct misplaced continuation lines in "initdynav".

Location:
LMDZ5/trunk/libf
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/bibio/initdynav.F90

    r1610 r1611  
    117117  !  Appel a histvert pour la grille verticale 
    118118 
    119   call histvert(histaveid,'presnivs','Niveaux Pression & 
    120        approximatifs','mb',llm, presnivs/100., zvertiid,'down') 
    121   call histvert(histuaveid,'presnivs','Niveaux Pression & 
    122        approximatifs','mb',llm, presnivs/100., zvertiid,'down') 
    123   call histvert(histvaveid,'presnivs','Niveaux Pression & 
    124        approximatifs','mb',llm, presnivs/100., zvertiid,'down') 
     119  call histvert(histaveid,'presnivs','Niveaux Pression approximatifs','mb', & 
     120       llm, presnivs/100., zvertiid,'down') 
     121  call histvert(histuaveid,'presnivs','Niveaux Pression approximatifs','mb', & 
     122       llm, presnivs/100., zvertiid,'down') 
     123  call histvert(histvaveid,'presnivs','Niveaux Pression approximatifs','mb', & 
     124       llm, presnivs/100., zvertiid,'down') 
    125125 
    126126  !  Appels a histdef pour la definition des variables a sauvegarder 
  • LMDZ5/trunk/libf/dyn3d/inidissip.F90

    r1502 r1611  
    2828! Local variables: 
    2929  REAL fact,zvert(llm),zz 
    30   REAL zh(ip1jmp1),zu(ip1jmp1),zv(ip1jm),deltap(ip1jmp1,llm) 
     30  REAL zh(ip1jmp1),zu(ip1jmp1), gx(ip1jmp1), divgra(ip1jmp1) 
     31  real zv(ip1jm), gy(ip1jm), deltap(ip1jmp1,llm) 
    3132  REAL ullm,vllm,umin,vmin,zhmin,zhmax 
    32   REAL zllm,z1llm 
     33  REAL zllm 
    3334 
    3435  INTEGER l,ij,idum,ii 
     
    7879  DO l = 1,50 
    7980     IF(lstardis) THEN 
    80         CALL divgrad2(1,zh,deltap,niterh,zh) 
     81        CALL divgrad2(1,zh,deltap,niterh,divgra) 
    8182     ELSE 
    82         CALL divgrad (1,zh,niterh,zh) 
     83        CALL divgrad (1,zh,niterh,divgra) 
    8384     ENDIF 
    8485 
    85      CALL minmax(iip1*jjp1,zh,zhmin,zhmax ) 
    86  
    87      zllm  = ABS( zhmax ) 
    88      z1llm = 1./zllm 
    89      DO ij = 1,ip1jmp1 
    90         zh(ij) = zh(ij)* z1llm 
    91      ENDDO 
     86     zllm  = ABS(maxval(divgra)) 
     87     zh = divgra / zllm 
    9288  ENDDO 
    9389 
     
    123119           !cccc             CALL covcont( 1,zu,zv,zu,zv ) 
    124120           IF(lstardis) THEN 
    125               CALL gradiv2( 1,zu,zv,nitergdiv,zu,zv ) 
     121              CALL gradiv2( 1,zu,zv,nitergdiv,gx,gy ) 
    126122           ELSE 
    127               CALL gradiv ( 1,zu,zv,nitergdiv,zu,zv ) 
     123              CALL gradiv ( 1,zu,zv,nitergdiv,gx,gy ) 
    128124           ENDIF 
    129125        ELSE 
    130126           IF(lstardis) THEN 
    131               CALL nxgraro2( 1,zu,zv,nitergrot,zu,zv ) 
     127              CALL nxgraro2( 1,zu,zv,nitergrot,gx,gy ) 
    132128           ELSE 
    133               CALL nxgrarot( 1,zu,zv,nitergrot,zu,zv ) 
     129              CALL nxgrarot( 1,zu,zv,nitergrot,gx,gy ) 
    134130           ENDIF 
    135131        ENDIF 
    136132 
    137         CALL minmax(iip1*jjp1,zu,umin,ullm ) 
    138         CALL minmax(iip1*jjm, zv,vmin,vllm ) 
    139  
    140         ullm = ABS  ( ullm ) 
    141         vllm = ABS  ( vllm ) 
    142  
    143         zllm  = MAX( ullm,vllm ) 
    144         z1llm = 1./ zllm 
    145         DO ij = 1, ip1jmp1 
    146            zu(ij) = zu(ij)* z1llm 
    147         ENDDO 
    148         DO ij = 1, ip1jm 
    149            zv(ij) = zv(ij)* z1llm 
    150         ENDDO 
     133        zllm = max(abs(maxval(gx)), abs(maxval(gy))) 
     134        zu = gx / zllm 
     135        zv = gy / zllm 
    151136     end DO 
    152137 
  • LMDZ5/trunk/libf/dyn3dpar/inidissip.F90

    r1502 r1611  
    2828! Local variables: 
    2929  REAL fact,zvert(llm),zz 
    30   REAL zh(ip1jmp1),zu(ip1jmp1),zv(ip1jm),deltap(ip1jmp1,llm) 
     30  REAL zh(ip1jmp1),zu(ip1jmp1), gx(ip1jmp1), divgra(ip1jmp1) 
     31  real zv(ip1jm), gy(ip1jm), deltap(ip1jmp1,llm) 
    3132  REAL ullm,vllm,umin,vmin,zhmin,zhmax 
    32   REAL zllm,z1llm 
     33  REAL zllm 
    3334 
    3435  INTEGER l,ij,idum,ii 
     
    7879  DO l = 1,50 
    7980     IF(lstardis) THEN 
    80         CALL divgrad2(1,zh,deltap,niterh,zh) 
     81        CALL divgrad2(1,zh,deltap,niterh,divgra) 
    8182     ELSE 
    82         CALL divgrad (1,zh,niterh,zh) 
     83        CALL divgrad (1,zh,niterh,divgra) 
    8384     ENDIF 
    8485 
    85      CALL minmax(iip1*jjp1,zh,zhmin,zhmax ) 
    86  
    87      zllm  = ABS( zhmax ) 
    88      z1llm = 1./zllm 
    89      DO ij = 1,ip1jmp1 
    90         zh(ij) = zh(ij)* z1llm 
    91      ENDDO 
     86     zllm  = ABS(maxval(divgra)) 
     87     zh = divgra / zllm 
    9288  ENDDO 
    9389 
     
    123119           !cccc             CALL covcont( 1,zu,zv,zu,zv ) 
    124120           IF(lstardis) THEN 
    125               CALL gradiv2( 1,zu,zv,nitergdiv,zu,zv ) 
     121              CALL gradiv2( 1,zu,zv,nitergdiv,gx,gy ) 
    126122           ELSE 
    127               CALL gradiv ( 1,zu,zv,nitergdiv,zu,zv ) 
     123              CALL gradiv ( 1,zu,zv,nitergdiv,gx,gy ) 
    128124           ENDIF 
    129125        ELSE 
    130126           IF(lstardis) THEN 
    131               CALL nxgraro2( 1,zu,zv,nitergrot,zu,zv ) 
     127              CALL nxgraro2( 1,zu,zv,nitergrot,gx,gy ) 
    132128           ELSE 
    133               CALL nxgrarot( 1,zu,zv,nitergrot,zu,zv ) 
     129              CALL nxgrarot( 1,zu,zv,nitergrot,gx,gy ) 
    134130           ENDIF 
    135131        ENDIF 
    136132 
    137         CALL minmax(iip1*jjp1,zu,umin,ullm ) 
    138         CALL minmax(iip1*jjm, zv,vmin,vllm ) 
    139  
    140         ullm = ABS  ( ullm ) 
    141         vllm = ABS  ( vllm ) 
    142  
    143         zllm  = MAX( ullm,vllm ) 
    144         z1llm = 1./ zllm 
    145         DO ij = 1, ip1jmp1 
    146            zu(ij) = zu(ij)* z1llm 
    147         ENDDO 
    148         DO ij = 1, ip1jm 
    149            zv(ij) = zv(ij)* z1llm 
    150         ENDDO 
     133        zllm = max(abs(maxval(gx)), abs(maxval(gy))) 
     134        zu = gx / zllm 
     135        zv = gy / zllm 
    151136     end DO 
    152137 
Note: See TracChangeset for help on using the changeset viewer.