Ignore:
Timestamp:
Jan 4, 2014, 4:51:31 PM (11 years ago)
Author:
aslmd
Message:

LMDZ.GENERIC. added a flag strictboundcorrk (default is true) that can be set to false if one wants the model to keep running even if temperature gets outside correlated-k temperature grid bounds. use with caution and only if you know what you are doing.

Location:
trunk/LMDZ.GENERIC/libf/phystd
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/callcorrk.F90

    r1133 r1145  
    646646         if(tlevrad(k).lt.tgasmin)then
    647647            print*,'Minimum temperature is outside the radiative'
    648             print*,'transfer kmatrix bounds, exiting.'
     648            print*,'transfer kmatrix bounds'
    649649            print*,"k=",k," tlevrad(k)=",tlevrad(k)
    650650            print*,"tgasmin=",tgasmin
    651             !print*,'WARNING, OVERRIDING FOR TEST'
    652             call abort
    653             !tlevrad(k)=tgasmin
     651            if (strictboundcorrk) then
     652              call abort
     653            else
     654              print*,'***********************************************'
     655              print*,'we allow model to continue with tlevrad=tgasmin'
     656              print*,'  ... we assume we know what you are doing ... '
     657              print*,'  ... but do not let this happen too often ... '
     658              print*,'***********************************************'
     659              tlevrad(k)=tgasmin
     660            endif
    654661         elseif(tlevrad(k).gt.tgasmax)then
    655662            print*,'Maximum temperature is outside the radiative'
    656663            print*,'transfer kmatrix bounds, exiting.'
    657             print*,'level,grid,T',k,ig,tlevrad(k)
    658             !print*,'WARNING, OVERRIDING FOR TEST'
    659             call abort
    660             !tlevrad(k)=tgasmax
     664            print*,"k=",k," tlevrad(k)=",tlevrad(k)
     665            print*,"tgasmax=",tgasmax
     666            if (strictboundcorrk) then
     667              call abort
     668            else
     669              print*,'***********************************************'
     670              print*,'we allow model to continue with tlevrad=tgasmax' 
     671              print*,'  ... we assume we know what you are doing ... '
     672              print*,'  ... but do not let this happen too often ... '
     673              print*,'***********************************************'
     674              tlevrad(k)=tgasmax
     675            endif
    661676         endif
    662677      enddo
     
    665680            print*,'Minimum temperature is outside the radiative'
    666681            print*,'transfer kmatrix bounds, exiting.'
    667             print*,"k=",k," tlevrad(k)=",tlevrad(k)
     682            print*,"k=",k," tmid(k)=",tmid(k)
    668683            print*,"tgasmin=",tgasmin
    669             !print*,'WARNING, OVERRIDING FOR TEST'
    670             call abort
    671             !tmid(k)=tgasmin
     684            if (strictboundcorrk) then
     685              call abort
     686            else
     687              print*,'***********************************************'
     688              print*,'we allow model to continue with tmid=tgasmin'
     689              print*,'  ... we assume we know what you are doing ... '
     690              print*,'  ... but do not let this happen too often ... '
     691              print*,'***********************************************'
     692              tmid(k)=tgasmin
     693            endif
    672694         elseif(tmid(k).gt.tgasmax)then
    673695            print*,'Maximum temperature is outside the radiative'
    674696            print*,'transfer kmatrix bounds, exiting.'
    675             print*,'level,grid,T',k,ig,tlevrad(k)
    676             !print*,'WARNING, OVERRIDING FOR TEST'
    677             call abort
    678             !tmid(k)=tgasmax
     697            print*,"k=",k," tmid(k)=",tmid(k)
     698            print*,"tgasmax=",tgasmax
     699            if (strictboundcorrk) then
     700              call abort
     701            else
     702              print*,'***********************************************'
     703              print*,'we allow model to continue with tmid=tgasmin'
     704              print*,'  ... we assume we know what you are doing ... '
     705              print*,'  ... but do not let this happen too often ... '
     706              print*,'***********************************************'
     707              tmid(k)=tgasmax
     708            endif
    679709         endif
    680710      enddo
  • trunk/LMDZ.GENERIC/libf/phystd/callkeys.h

    r1133 r1145  
    3131     &   , cloudlvl                                                     &
    3232     &   , pceil                                                        &
     33     &   , strictboundcorrk                                             &
    3334     &   , rings_shadow                                         
    3435
     
    3839     &   , callstats,calleofdump                                        &
    3940     &   , callgasvis,continuum,H2Ocont_simple,graybody                 &
     41     &   , strictboundcorrk                                             &
    4042     &   , rings_shadow
    4143
  • trunk/LMDZ.GENERIC/libf/phystd/gfluxi.F

    r1016 r1145  
    104104      ! -- same results for most thin atmospheres
    105105      ! -- and stabilizes integrations
    106       NT    = int(TLEV(2*L+1)*NTfac) - NTstar+1
     106      !NT    = int(TLEV(2*L+1)*NTfac) - NTstar+1
    107107      !! For deep, opaque, thick first layers (e.g. Saturn)
    108108      !! what is below works much better, not unstable, ...
    109109      !! ... and actually fully accurate because 1st layer temp (JL)
    110       !NT    = int(TLEV(2*L)*NTfac) - NTstar+1
     110      NT    = int(TLEV(2*L)*NTfac) - NTstar+1
    111111      !! (or this one yields same results
    112112      !NT    = int( (TLEV(2*L)+TLEV(2*L+1))*0.5*NTfac ) - NTstar+1
  • trunk/LMDZ.GENERIC/libf/phystd/inifis.F

    r1133 r1145  
    199199         call getin("corrk",corrk)
    200200         write(*,*) " corrk = ",corrk
     201
     202         write(*,*) "prohibit calculations outside corrk T grid?"
     203         strictboundcorrk=.true. ! default value
     204         call getin("strictboundcorrk",strictboundcorrk)
     205         write(*,*) "strictboundcorrk = ",strictboundcorrk
    201206
    202207         write(*,*) "call gaseous absorption in the visible bands?",
Note: See TracChangeset for help on using the changeset viewer.