Changeset 1238


Ignore:
Timestamp:
May 7, 2014, 12:35:26 PM (11 years ago)
Author:
emillour
Message:

Mars GCM and common dynamics:

Common dynamics:

  • correction in inidissip (only matters in Martian case)
  • added correction in addfi on theta to account for surface pressure change.

Mars GCM:
Some fixes and updates:

  • addfi (dyn3d): Add correction on theta when surface pressure changes
  • vdif_cd (phymars): Correction for coefficients in stable nighttime case
  • jthermcalc (aeronomars): Fix for some pathological cases (further investigations on the origin of these is needed)

EM

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3d/addfi.F

    r1189 r1238  
    103103       ENDDO
    104104      ENDDO
    105 c
     105!***********************
     106! Correction on teta due to surface pressure changes
     107      DO k = 1,llm
     108        DO j = 1,ip1jmp1
     109           pteta(j,k)= pteta(j,k)*(1+pdpfi(j)*pdt/pps(j))**kappa
     110        ENDDO
     111      ENDDO
     112!***********************
    106113
    107114      DO k = 1,llm
  • trunk/LMDZ.COMMON/libf/dyn3d/inidissip.F90

    r1021 r1238  
    268268    DO l=1,llm
    269269     zz      = 1. - preff/presnivs(l)
    270      zvert(l)= dissip_fac_mid -( dissip_fac_mid-1.)/( 1.+zz*zz )
     270!     zvert(l)= dissip_fac_mid -( dissip_fac_mid-1.)/( 1.+zz*zz )
     271     zvert(l)= fac_mid -( fac_mid-1.)/( 1.+zz*zz )
    271272     
    272273     zvert(l)= zvert(l)*(1.0+((fac_up/fac_mid-1)*    &
     
    275276                ))
    276277    ENDDO
    277 
     278    write(lunout,*) "inidissip: vert_prof_disip=1, scaleheight=",scaleheight
     279    write(lunout,*) "           fac_mid=",fac_mid,", fac_up=",fac_up
     280   
    278281   else
    279282     write(lunout,*) 'wrong value for vert_prof_dissip:',vert_prof_dissip
  • trunk/LMDZ.COMMON/libf/dyn3dpar/addfi_p.F

    r1189 r1238  
    128128      endif
    129129c
     130!***********************
     131! Correction on teta due to surface pressure changes
     132c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     133      DO k = 1,llm
     134        DO j = ijb,ije
     135           pteta(j,k)= pteta(j,k)*(1+pdpfi(j)*pdt/pps(j))**kappa
     136        ENDDO
     137      ENDDO
     138c$OMP END DO NOWAIT
     139!***********************
    130140
    131141      ijb=ij_begin
  • trunk/LMDZ.COMMON/libf/dyn3dpar/inidissip.F90

    r1021 r1238  
    268268    DO l=1,llm
    269269     zz      = 1. - preff/presnivs(l)
    270      zvert(l)= dissip_fac_mid -( dissip_fac_mid-1.)/( 1.+zz*zz )
     270!     zvert(l)= dissip_fac_mid -( dissip_fac_mid-1.)/( 1.+zz*zz )
     271     zvert(l)= fac_mid -( fac_mid-1.)/( 1.+zz*zz )
    271272     
    272273     zvert(l)= zvert(l)*(1.0+((fac_up/fac_mid-1)*    &
     
    275276                ))
    276277    ENDDO
    277 
     278    write(lunout,*) "inidissip: vert_prof_disip=1, scaleheight=",scaleheight
     279    write(lunout,*) "           fac_mid=",fac_mid,", fac_up=",fac_up
     280   
    278281   else
    279282     write(lunout,*) 'wrong value for vert_prof_dissip:',vert_prof_dissip
  • trunk/LMDZ.MARS/README

    r1236 r1238  
    20722072        so we use the comm_wrf.F90 strategy instead for
    20732073        several arrays (radiative transfer, clouds, etc...)
     2074
     2075== 07/05/2014 == EM+FF
     2076Some fixes and updates:
     2077- addfi (dyn3d): Add correction on theta when surface pressure changes
     2078- vdif_cd (phymars): Correction for coefficients in stable nighttime case
     2079- jthermcalc (aeronomars): Fix for some pathological cases (further investigations
     2080  on the origin of these is needed)
     2081
     2082
  • trunk/LMDZ.MARS/libf/aeronomars/jthermcalc.F

    r1119 r1238  
    158158      limup=1.e26
    159159
     160      ! Ehouarn: sanity check
     161      ! test that auxcolinp in monotonously increasing from 1 to nlayermx
     162      do j=1,nlayermx-1
     163        if (auxcolinp(j).gt.auxcolinp(j+1)) then
     164          !there is a problem
     165          write(*,*) "jthermcalc error: "
     166          write(*,*) "auxcolinp() not increasing with altitude index!"
     167          write(*,*) "j=",j," auxcolinp(j)=",auxcolinp(j)
     168          write(*,*) "                auxcolinp(j+1)=",auxcolinp(j+1)
     169          ! Quick fix:
     170          if (j==1) then
     171            auxcolinp(j)=auxcolinp(j+1)/2.
     172          else
     173            ! compute it as a geometric mean from encompassing values
     174            auxcolinp(j)=sqrt(auxcolinp(j-1)*auxcolinp(j+1))
     175          endif
     176          write(*,*) " Quick fixed to auxcolinp(j)=",auxcolinp(j)
     177        endif
     178      enddo
    160179
    161180c     Interpolations
  • trunk/LMDZ.MARS/libf/dyn3d/addfi.F

    r38 r1238  
    104104       ENDDO
    105105      ENDDO
    106 c
     106!***********************
     107! Correction on teta due to surface pressure changes
     108      DO k = 1,llm
     109        DO j = 1,ip1jmp1
     110           pteta(j,k)= pteta(j,k)*(1+pdpfi(j)*pdt/pps(j))**kappa
     111        ENDDO
     112      ENDDO
     113!***********************
    107114
    108115! increment covariant zonal wind
  • trunk/LMDZ.MARS/libf/phymars/vdif_cd.F

    r1236 r1238  
    195195         else
    196196c For Ri>Ric, we consider Ri->Infinity => no turbulent mixing at surface
    197             fm(ig)=0.
    198             fh(ig)=0.
     197!            fm(ig)=0.
     198!            fh(ig)=0.
     199            fm(ig)=1.
     200            fh(ig)=1.
    199201         endif
    200202c Unstable case :
Note: See TracChangeset for help on using the changeset viewer.