Ignore:
Timestamp:
Feb 10, 2020, 9:54:26 AM (4 years ago)
Author:
acozic
Message:

Add new grid, new axis and new variables for cmip protocole and dr2xml

  • field_group id="coord_hyb"
  • grid_ref="klevp1_bnds"
  • grid_ref="klev_bnds"
  • domain id="greordered"
  • axis id="axis_lat"
  • axis id="bnds"
  • axis id="klevp1"
  • axis id="klev"
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/IPSLCM5A2.1/libf/phylmd/phys_output_mod.F90

    r2907 r3629  
    4646    USE mod_grid_phy_lmdz, only: klon_glo,nbp_lon,nbp_lat
    4747    USE print_control_mod, ONLY: prt_level,lunout
    48     USE vertical_layers_mod, ONLY: ap,bp,preff,presnivs, Ahyb, Bhyb
     48    USE vertical_layers_mod, ONLY: ap,bp,preff,presnivs, aps, bps, pseudoalt
    4949    USE time_phylmdz_mod, ONLY: day_ini, itau_phy, start_time, annee_ref, day_ref
    5050#ifdef CPP_XIOS
     
    130130    REAL, DIMENSION(nfiles), SAVE     :: phys_out_latmax        = (/  90.,     90.,     90.,     90., &
    131131                                                                    90., 90., 90., 90., 90. /)                       
     132    REAL, DIMENSION(klev,2) :: Ahyb_bounds, Bhyb_bounds
     133    REAL, DIMENSION(klev+1)   :: lev_index
    132134#ifdef CPP_XIOS
    133135    ! ug Variables utilis\'ees pour r\'ecup\'erer le calendrier pour xios
     
    140142    WRITE(lunout,*) 'Debut phys_output_mod.F90'
    141143    ! Initialisations (Valeurs par defaut
     144
     145    DO ilev=1,klev
     146      Ahyb_bounds(ilev,1) = ap(ilev)
     147      Ahyb_bounds(ilev,2) = ap(ilev+1)
     148      Bhyb_bounds(ilev,1) = bp(ilev)
     149      Bhyb_bounds(ilev,2) = bp(ilev+1)
     150      lev_index(ilev) = REAL(ilev)
     151    END DO
     152      lev_index(klev+1) = REAL(klev+1)
    142153
    143154    IF (.NOT. ALLOCATED(o_trac)) ALLOCATE(o_trac(nqtot))
     
    283294    zdtime_moy = dtime         ! Frequence ou l on moyenne
    284295
    285     ! Calcul des Ahyb, Bhyb et Alt
    286     DO k=1,klev
    287        Ahyb(k)=(ap(k)+ap(k+1))/2.
    288        Bhyb(k)=(bp(k)+bp(k+1))/2.
    289        Alt(k)=log(preff/presnivs(k))*8.
    290     ENDDO
    291     !          if(prt_level.ge.1) then
    292     WRITE(lunout,*)'Ap Hybrid = ',Ahyb(1:klev)
    293     WRITE(lunout,*)'Bp Hybrid = ',Bhyb(1:klev)
    294     WRITE(lunout,*)'Alt approx des couches pour une haut d echelle de 8km = ',Alt(1:klev)
    295     !          endif
    296296
    297297  ecrit_files(7) = ecrit_files(1)
     
    335335            levmax(iff) - levmin(iff) + 1, presnivs(levmin(iff):levmax(iff)))
    336336    CALL wxios_add_vaxis("Ahyb", &
    337             levmax(iff) - levmin(iff) + 1, Ahyb)
     337            levmax(iff) - levmin(iff) + 1, aps(levmin(iff):levmax(iff)), positif='down', &
     338            bnds=Ahyb_bounds(levmin(iff):levmax(iff),:))
    338339    CALL wxios_add_vaxis("Bhyb", &
    339             levmax(iff) - levmin(iff) + 1, Bhyb)
    340     CALL wxios_add_vaxis("Alt", &
    341             levmax(iff) - levmin(iff) + 1, Alt)
    342    else
     340            levmax(iff) - levmin(iff) + 1, bps(levmin(iff):levmax(iff)), positif='down', &
     341            bnds=Bhyb_bounds(levmin(iff):levmax(iff),:))
     342    CALL wxios_add_vaxis("klev", levmax(iff) - levmin(iff) + 1, &
     343                          lev_index(levmin(iff):levmax(iff)))
     344    CALL wxios_add_vaxis("klevp1", klev+1, &
     345                          lev_index(1:klev+1))
     346    CALL wxios_add_vaxis("bnds", 2, (/1.,2./))
     347
     348     CALL wxios_add_vaxis("Alt", &
     349            levmax(iff) - levmin(iff) + 1, pseudoalt)
     350
     351   ELSE
    343352    ! NMC files
    344353    CALL wxios_add_vaxis("plev", &
     
    403412!!!! Composantes de la coordonnee sigma-hybride
    404413          CALL histvert(nid_files(iff), "Ahyb","Ahyb comp of Hyb Cord ", "Pa", &
    405                levmax(iff) - levmin(iff) + 1,Ahyb,nvertap(iff))
     414               levmax(iff) - levmin(iff) + 1,aps,nvertap(iff))
    406415
    407416          CALL histvert(nid_files(iff), "Bhyb","Bhyb comp of Hyb Cord", " ", &
    408                levmax(iff) - levmin(iff) + 1,Bhyb,nvertbp(iff))
     417               levmax(iff) - levmin(iff) + 1,bps,nvertbp(iff))
    409418
    410419          CALL histvert(nid_files(iff), "Alt","Height approx for scale heigh of 8km at levels", "Km", &                       
    411                levmax(iff) - levmin(iff) + 1,Alt,nvertAlt(iff))
     420               levmax(iff) - levmin(iff) + 1,pseudoalt,nvertAlt(iff))
    412421
    413422          else
Note: See TracChangeset for help on using the changeset viewer.