Changeset 1959


Ignore:
Timestamp:
Feb 7, 2014, 10:37:38 AM (10 years ago)
Author:
fhourdin
Message:

Nouvelles options dans disvert.F90 :
=------------------------------------

  1. avec vert_sampling="sigma" -> niveaux sigma plutôt qu'hybride.

P_i,j,k= Bhyb_k * Ps , Ahyb_k=0.

  1. disgmin, l'épaisseur approximative du premier niveau en coordonnée

sigma peut être défini dans les fichiers .def.
Cette option est valable pour vert_sampling=sigma, tropo ou strato.
Valeur par défaut : 1, sauf pour (llm==39 .and. vert_sampling=="strato")

ce qui correspond aux configurations CMIP5

=======================================================================
New options in disvert.F90 :
=---------------------------

  1. with vert_samplig="sigma" -> sigma levels instead of hybrid

P_i,j,k= Bhyb_k * Ps , Ahyb_k=0.

  1. disgmin, the approximate thickness of the first layer in sigma

coordinate can be specified from the .def files.
Active for vert_sampling=sigma, tropo or strato.
Defaut value : 1, except for (llm==39 .and. vert_sampling=="strato")

which corresponds to the CMIP5 configurations.

--Cette ligne, et les suivantes ci-dessous, seront ignorées-

M dyn3d_common/disvert.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3d_common/disvert.F90

    r1952 r1959  
    5050  call getin('vert_sampling', vert_sampling)
    5151  print *, 'vert_sampling = ' // vert_sampling
     52  if (llm==39 .and. vert_sampling=="strato") then
     53     dsigmin=0.3 ! Vieille option par défaut pour CMIP5
     54  else
     55     dsigmin=1.
     56  endif
     57  call getin('dsigmin', dsigmin)
     58  WRITE(LUNOUT,*) trim(modname), 'Discretisation verticale DSIGMIN=',dsigmin
     59
    5260
    5361  select case (vert_sampling)
     
    8694
    8795     ap = pa * (sig - bp)
     96  case("sigma")
     97     DO l = 1, llm
     98        x = 2*asin(1.) * (l - 0.5) / (llm + 1)
     99        dsig(l) = dsigmin + 7.0 * SIN(x)**2
     100     ENDDO
     101     dsig = dsig / sum(dsig)
     102     sig(llm+1) = 0.
     103     DO l = llm, 1, -1
     104        sig(l) = sig(l+1) + dsig(l)
     105     ENDDO
     106
     107     bp(1)=1.
     108     bp(2: llm) = sig(2:llm)
     109     bp(llmp1) = 0.
     110     ap(:)=0.
    88111  case("tropo")
    89112     DO l = 1, llm
    90113        x = 2*asin(1.) * (l - 0.5) / (llm + 1)
    91         dsig(l) = 1.0 + 7.0 * SIN(x)**2
     114        dsig(l) = dsigmin + 7.0 * SIN(x)**2
    92115     ENDDO
    93116     dsig = dsig / sum(dsig)
     
    104127     ap(2: llm + 1) = pa * (sig(2: llm + 1) - bp(2: llm + 1))
    105128  case("strato")
    106      if (llm==39) then
    107         dsigmin=0.3
    108      else if (llm==50) then
    109         dsigmin=1.
    110      else
    111         write(lunout,*) trim(modname), ' ATTENTION discretisation z a ajuster'
    112         dsigmin=1.
    113      endif
    114      WRITE(LUNOUT,*) trim(modname), 'Discretisation verticale DSIGMIN=',dsigmin
    115 
    116129     DO l = 1, llm
    117130        x = 2*asin(1.) * (l - 0.5) / (llm + 1)
Note: See TracChangeset for help on using the changeset viewer.