Changeset 1423


Ignore:
Timestamp:
May 4, 2015, 6:30:38 PM (10 years ago)
Author:
sglmd
Message:

Second part of solving the top-of-atmosphere problem in the radiative transfer: Return to a previous interpolation scheme

Location:
trunk/LMDZ.GENERIC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r1419 r1423  
    10701070* phystd/dyn1d: this subdirectory contains the 1D models.
    10711071
    1072 == 17/04/2015 == JL
    1073 - Correct radiative transfer bug for the Top layer in callcorrk following commit by SG.
    1074 
     1072== 17/04/2015 == JL & SG
     1073- Correct radiative transfer bug for the Top layer in callcorrk (=rev 1419). Only impacts plevrad(2).
     1074== 04/05/2015 == SG
     1075- Return to a previous interpolation scheme for pmid and tmid in callcorrk.
     1076
  • trunk/LMDZ.GENERIC/libf/phystd/callcorrk.F90

    r1419 r1423  
    2020      use comcstfi_mod, only: pi, mugaz, cpp
    2121      use callkeys_mod, only: varactive,diurnal,tracer,water,nosurf,varfixed,satval,    &
    22                 kastprof,strictboundcorrk,specOLR,CLFvarying,ptopzero
     22                kastprof,strictboundcorrk,specOLR,CLFvarying
    2323
    2424      implicit none
     
    607607     
    608608      plevrad(1) = 0.
     609      plevrad(2) = 0.   !! Trick to have correct calculations of fluxes in gflux(i/v).F,
     610                        !! but the pmid levels are not impacted by this change.
    609611
    610612      tlevrad(1) = tlevrad(2)
    611613      tlevrad(2*nlayer+1)=tsurf(ig)
    612614     
     615      pmid(1) = max(pgasmin,0.0001*plevrad(3))
     616      pmid(2) =  pmid(1)
     617
    613618      tmid(1) = tlevrad(2)
    614       tmid(2) = tlevrad(2)
    615       tmid(3) = tlevrad(2)
    616       tmid(4) = tlevrad(2)
    617       pmid(1) = plevrad(2)
    618       pmid(2) = plevrad(2)
    619       pmid(3) = plevrad(2)
    620       pmid(4) = plevrad(2)
    621 
    622       if (ptopzero) then
    623          plevrad(2) = 0.
    624       else
    625          plevrad(2) = max(pgasmin,0.0001*plevrad(3))
    626       endif
    627      
    628       DO l=2,L_NLAYRAD-1
    629          tmid(2*l+1) = tlevrad(2*l)
    630          tmid(2*l+2) = tlevrad(2*l)
    631          pmid(2*l+1) = plevrad(2*l)
    632          pmid(2*l+2) = plevrad(2*l)
    633 !JL13index         tmid(2*l+1) = tlevrad(2*l+1)
    634 !JL13index         tmid(2*l+2) = tlevrad(2*l+1)
    635 !JL13index         pmid(2*l+1) = plevrad(2*l+1)
    636 !JL13index         pmid(2*l+2) = plevrad(2*l+1)
     619      tmid(2) = tmid(1)
     620   
     621      DO l=1,L_NLAYRAD-1
     622         tmid(2*l+1) = tlevrad(2*l+1)
     623         tmid(2*l+2) = tlevrad(2*l+1)
     624         pmid(2*l+1) = plevrad(2*l+1)
     625         pmid(2*l+2) = plevrad(2*l+1)
    637626      END DO
    638       pmid(L_LEVELS) = plevrad(L_LEVELS-1)
    639       tmid(L_LEVELS) = tlevrad(L_LEVELS-1)
    640 !JL13index      pmid(L_LEVELS) = plevrad(L_LEVELS)
    641 !JL13index      tmid(L_LEVELS) = tlevrad(L_LEVELS)
     627      pmid(L_LEVELS) = plevrad(L_LEVELS)
     628      tmid(L_LEVELS) = tlevrad(L_LEVELS)
     629
     630!!Alternative interpolation:
     631!         pmid(3) = pmid(1)
     632!         pmid(4) = pmid(1)
     633!         tmid(3) = tmid(1)
     634!         tmid(4) = tmid(1)
     635!      DO l=2,L_NLAYRAD-1
     636!         tmid(2*l+1) = tlevrad(2*l)
     637!         tmid(2*l+2) = tlevrad(2*l)
     638!         pmid(2*l+1) = plevrad(2*l)
     639!         pmid(2*l+2) = plevrad(2*l)
     640!      END DO
     641!      pmid(L_LEVELS) = plevrad(L_LEVELS-1)
     642!      tmid(L_LEVELS) = tlevrad(L_LEVELS-1)
    642643
    643644      ! test for out-of-bounds pressure
  • trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90

    r1417 r1423  
    77     &   , callstats,calleofdump                                        &
    88     &   , callgasvis,continuum,H2Ocont_simple,graybody                 &
    9      &   , strictboundcorrk,ptopzero                                        
     9     &   , strictboundcorrk                                     
    1010
    1111      logical enertest
  • trunk/LMDZ.GENERIC/libf/phystd/inifis.F

    r1419 r1423  
    228228         call getin_p("strictboundcorrk",strictboundcorrk)
    229229         write(*,*) "strictboundcorrk = ",strictboundcorrk
    230 
    231          write(*,*) "correction on plevrad in the top levels",
    232      &              " (callcorrk)?"
    233          ptopzero=.true. ! default value
    234          call getin_p("ptopzero",ptopzero)
    235          write(*,*) "ptopzero = ",ptopzero
    236230
    237231         write(*,*) "call gaseous absorption in the visible bands?",
Note: See TracChangeset for help on using the changeset viewer.