Ignore:
Timestamp:
Oct 24, 2014, 7:53:24 PM (10 years ago)
Author:
lguez
Message:

In nudging procedures, replaced explicit Euler integration of nudged
fields by exact integration. This does not change anything if
guide_add is true, but it changes the value of alpha if guide_add is
false. We could have taken into account the variation of the nudging
field during a nudging time step. This would be a small correction. We
choose not to take it into account for the time being. Also, we add a
restriction on zonal nudging: we allow it only for a grid which is
regular in longitude. It does not seem to make sense otherwise and the
exact integration would take more programming for an irregular grid.

In the sequential version, copying the parallel versions, set
iguide_int to 1 when the input value is 0.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3dpar/guide_p_mod.F90

    r2124 r2134  
    6767
    6868  SUBROUTINE guide_init
    69    
     69
    7070    USE control_mod
     71
    7172    IMPLICIT NONE
    7273 
     
    7475    INCLUDE "paramet.h"
    7576    INCLUDE "netcdf.inc"
     77
     78    ! For grossismx:
     79    include "serre.h"
    7680
    7781    INTEGER                :: error,ncidpl,rid,rcod
     
    9397    CALL getpar('guide_add',.false.,guide_add,'for�age constant?')
    9498    CALL getpar('guide_zon',.false.,guide_zon,'guidage moy zonale')
     99    if (guide_zon .and. abs(grossismx - 1.) > 0.01) &
     100         call abort_gcm("guide_init", &
     101         "zonal nudging requires grid regular in longitude", 1)
    95102
    96103!   Constantes de rappel. Unite : fraction de jour
     
    157164    ncidpl=-99
    158165    if (guide_plevs.EQ.1) then
    159        if (ncidpl.eq.-99) then 
     166       if (ncidpl.eq.-99) then
    160167          rcod=nf90_open('apbp.nc',Nf90_NOWRITe, ncidpl)
    161168          if (rcod.NE.NF_NOERR) THEN
     
    165172       endif
    166173    elseif (guide_plevs.EQ.2) then
    167        if (ncidpl.EQ.-99) then 
     174       if (ncidpl.EQ.-99) then
    168175          rcod=nf90_open('P.nc',Nf90_NOWRITe,ncidpl)
    169176          if (rcod.NE.NF_NOERR) THEN
     
    12511258        enddo
    12521259    ENDIF ! guide_reg
     1260
     1261    if (.not. guide_add) alpha = 1. - exp(- alpha)
    12531262
    12541263  END SUBROUTINE tau2alpha
Note: See TracChangeset for help on using the changeset viewer.