source: LMDZ5/trunk/libf/dyn3d/ce0l.F90 @ 2069

Last change on this file since 2069 was 1984, checked in by Ehouarn Millour, 11 years ago

Cleanup and update of "grilles_gcm_netcdf_sub": removed old version, removed flag "grilles_gcm_netcdf" used to trigger output of grilles_gcm.nc file (file will now always be created) and fixed writing vertical levels presnivs in the file.
JBM+EM

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.7 KB
RevLine 
[524]1!
[1279]2! $Id: ce0l.F90 1984 2014-02-18 09:59:29Z fairhead $
[524]3!
[1319]4!-------------------------------------------------------------------------------
5!
6PROGRAM ce0l
7!-------------------------------------------------------------------------------
8! Purpose: Calls etat0, creates initial states and limit_netcdf
9!
10!     interbar=.T. for barycentric interpolation inter_barxy
11!     extrap  =.T. for data extrapolation, like for the SSTs when file does not
12!                  contain ocean points only.
13!     oldice  =.T. for old-style ice, obtained using grille_m (grid_atob).
14!     masque is created in etat0, passed to limit to ensure consistancy.
15!-------------------------------------------------------------------------------
[1403]16  USE control_mod
[1279]17#ifdef CPP_EARTH
18! This prog. is designed to work for Earth
[1319]19  USE dimphy
20  USE comgeomphy
21  USE infotrac
[1785]22  USE indice_sol_mod
[1319]23
[1279]24#ifdef CPP_IOIPSL
[1319]25  USE ioipsl, ONLY: ioconf_calendar
[1279]26#endif
[524]27
[1319]28#endif
29  IMPLICIT NONE
30#ifndef CPP_EARTH
[1615]31#include "iniprint.h"
[1319]32  WRITE(lunout,*)'limit_netcdf: Earth-specific routine, needs Earth physics'
33#else
34!-------------------------------------------------------------------------------
35! Local variables:
36  LOGICAL, PARAMETER :: interbar=.TRUE., extrap=.FALSE., oldice=.FALSE.
[524]37#include "dimensions.h"
38#include "paramet.h"
[1785]39!#include "indicesol.h"
[1319]40#include "iniprint.h"
41#include "temps.h"
42#include "logic.h"
43  INTEGER, PARAMETER            :: longcles=20
44  REAL,    DIMENSION(longcles)  :: clesphy0
45  REAL,    DIMENSION(iip1,jjp1) :: masque
46  CHARACTER(LEN=15)             :: calnd
[1511]47  REAL,    DIMENSION(iip1,jjp1) :: phis ! geopotentiel au sol
[1319]48!-------------------------------------------------------------------------------
49  CALL conf_gcm( 99, .TRUE. , clesphy0 )
[524]50
[1319]51  CALL Init_Phys_lmdz(iim,jjp1,llm,1,(/(jjm-1)*iim+2/))
52  WRITE(lunout,*)'---> klon=',klon
53  CALL InitComgeomphy
[822]54
[1279]55#ifdef CPP_IOIPSL
[1319]56  SELECT CASE(calend)
57    CASE('earth_360d');CALL ioconf_calendar('360d');      calnd='a 360 jours/an'
58    CASE('earth_365d');CALL ioconf_calendar('noleap');    calnd='a 365 jours/an'
59    CASE('earth_366d');CALL ioconf_calendar('366d');      calnd='bissextile'
60    CASE('gregorian'); CALL ioconf_calendar('gregorian'); calnd='gregorien'
61    CASE('standard');  CALL ioconf_calendar('gregorian'); calnd='gregorien'
62    CASE('julian');    CALL ioconf_calendar('julian');    calnd='julien'
63    CASE('proleptic_gregorian'); CALL ioconf_calendar('gregorian')
64  !--- DC Bof...  => IOIPSL a mettre a jour: proleptic_gregorian /= gregorian
65    CASE DEFAULT
66      CALL abort_gcm('ce0l','Mauvais choix de calendrier',1)
67  END SELECT
68  WRITE(lunout,*)'CALENDRIER CHOISI: Terrestre '//TRIM(calnd)
[1279]69#endif
70
[1563]71  IF (type_trac == 'inca') THEN
[1319]72#ifdef INCA
73    CALL init_const_lmdz(nbtr,anneeref,dayref,iphysiq,day_step,nday)
74    CALL init_inca_para(iim,jjm+1,klon,1,klon_mpi_para_nb,0)
75    WRITE(lunout,*)'nbtr =' , nbtr
76#endif
77  END IF
[524]78
[1319]79  WRITE(lunout,'(//)')
80  WRITE(lunout,*) '  *********************  '
81  WRITE(lunout,*) '  ***  etat0_netcdf ***  '
82  WRITE(lunout,*) '  *********************  '
83  WRITE(lunout,'(//)')
84  WRITE(lunout,*) ' interbar = ',interbar
[1511]85  CALL etat0_netcdf(interbar,masque,phis,ok_etat0)
[524]86
[1319]87  IF(ok_limit) THEN
88  WRITE(lunout,'(//)')
89  WRITE(lunout,*) '  *********************  '
90  WRITE(lunout,*) '  ***  Limit_netcdf ***  '
91  WRITE(lunout,*) '  *********************  '
92  WRITE(lunout,'(//)')
93  CALL limit_netcdf(interbar,extrap,oldice,masque)
94  END IF
95
[1984]96 
97  WRITE(lunout,'(//)')
98  WRITE(lunout,*) '  ***************************  '
99  WRITE(lunout,*) '  ***  grilles_gcm_netcdf ***  '
100  WRITE(lunout,*) '  ***************************  '
101  WRITE(lunout,'(//)')
102  CALL grilles_gcm_netcdf_sub(masque,phis)
103
[1279]104#endif
[1319]105! of #ifndef CPP_EARTH #else
106
107END PROGRAM ce0l
108!
109!-------------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.