Ignore:
Timestamp:
Jun 25, 2019, 4:50:13 PM (5 years ago)
Author:
Laurent Fairhead
Message:

Modifications needed for "real" calendar in 1D model
MPL/EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/phyaqua_mod.F90

    • Property svn:keywords set to Id
    r3531 r3540  
     1!
     2! $Id$
     3!
    14MODULE phyaqua_mod
    25  ! Routines complementaires pour la physique planetaire.
     
    3437    USE mod_grid_phy_lmdz
    3538    USE ioipsl_getin_p_mod, ONLY : getin_p
     39    USE phys_cal_mod , ONLY: year_len
    3640    IMPLICIT NONE
    3741
     
    7276    CHARACTER *2 cnbl
    7377
    74     REAL phy_nat(nlon, 360)
    75     REAL phy_alb(nlon, 360)
    76     REAL phy_sst(nlon, 360)
    77     REAL phy_bil(nlon, 360)
    78     REAL phy_rug(nlon, 360)
    79     REAL phy_ice(nlon, 360)
    80     REAL phy_fter(nlon, 360)
    81     REAL phy_foce(nlon, 360)
    82     REAL phy_fsic(nlon, 360)
    83     REAL phy_flic(nlon, 360)
     78    REAL phy_nat(nlon, year_len)
     79    REAL phy_alb(nlon, year_len)
     80    REAL phy_sst(nlon, year_len)
     81    REAL phy_bil(nlon, year_len)
     82    REAL phy_rug(nlon, year_len)
     83    REAL phy_ice(nlon, year_len)
     84    REAL phy_fter(nlon, year_len)
     85    REAL phy_foce(nlon, year_len)
     86    REAL phy_fsic(nlon, year_len)
     87    REAL phy_flic(nlon, year_len)
    8488
    8589    INTEGER, SAVE :: read_climoz = 0 ! read ozone climatology
     
    125129    ! -------------------------------
    126130
     131
     132    if (year_len.ne.360) then
     133      write (*,*) 'iniaqua: 360 day calendar is required !'
     134      stop
     135    endif
    127136
    128137    type_aqua = iflag_phys/100
     
    223232    ! endif !alb_ocean
    224233
    225     DO i = 1, 360
     234    DO i = 1, year_len
    226235      ! IM Terraplanete   phy_sst(:,i) = 260.+50.*cos(rlatd(:))**2
    227236      ! IM ajout calcul profil sst selon le cas considere (cf. FBr)
     
    544553    USE mod_grid_phy_lmdz, ONLY: klon_glo
    545554    USE mod_phys_lmdz_transfert_para, ONLY: gather
     555    USE phys_cal_mod, ONLY: year_len
    546556    IMPLICIT NONE
    547557    include "netcdf.inc"
    548558
    549559    INTEGER, INTENT (IN) :: klon
    550     REAL, INTENT (IN) :: phy_nat(klon, 360)
    551     REAL, INTENT (IN) :: phy_alb(klon, 360)
    552     REAL, INTENT (IN) :: phy_sst(klon, 360)
    553     REAL, INTENT (IN) :: phy_bil(klon, 360)
    554     REAL, INTENT (IN) :: phy_rug(klon, 360)
    555     REAL, INTENT (IN) :: phy_ice(klon, 360)
    556     REAL, INTENT (IN) :: phy_fter(klon, 360)
    557     REAL, INTENT (IN) :: phy_foce(klon, 360)
    558     REAL, INTENT (IN) :: phy_flic(klon, 360)
    559     REAL, INTENT (IN) :: phy_fsic(klon, 360)
    560 
    561     REAL :: phy_glo(klon_glo, 360) ! temporary variable, to store phy_***(:)
     560    REAL, INTENT (IN) :: phy_nat(klon, year_len)
     561    REAL, INTENT (IN) :: phy_alb(klon, year_len)
     562    REAL, INTENT (IN) :: phy_sst(klon, year_len)
     563    REAL, INTENT (IN) :: phy_bil(klon, year_len)
     564    REAL, INTENT (IN) :: phy_rug(klon, year_len)
     565    REAL, INTENT (IN) :: phy_ice(klon, year_len)
     566    REAL, INTENT (IN) :: phy_fter(klon, year_len)
     567    REAL, INTENT (IN) :: phy_foce(klon, year_len)
     568    REAL, INTENT (IN) :: phy_flic(klon, year_len)
     569    REAL, INTENT (IN) :: phy_fsic(klon, year_len)
     570
     571    REAL :: phy_glo(klon_glo, year_len) ! temporary variable, to store phy_***(:)
    562572      ! on the whole physics grid
    563573    INTEGER :: k
     
    665675
    666676      ! write the 'times'
    667       DO k = 1, 360
     677      DO k = 1, year_len
    668678#ifdef NC_DOUBLE
    669679        ierr = nf_put_var1_double(nid, id_tim, k, dble(k))
     
    809819  SUBROUTINE profil_sst(nlon, rlatd, type_profil, phy_sst)
    810820    USE dimphy
     821    USE phys_cal_mod , ONLY: year_len
    811822    IMPLICIT NONE
    812823
    813824    INTEGER nlon, type_profil, i, k, j
    814     REAL :: rlatd(nlon), phy_sst(nlon, 360)
     825    REAL :: rlatd(nlon), phy_sst(nlon, year_len)
    815826    INTEGER imn, imx, amn, amx, kmn, kmx
    816827    INTEGER p, pplus, nlat_max
     
    825836    ENDIF
    826837    WRITE (*, *) ' profil_sst: type_profil=', type_profil
    827     DO i = 1, 360
     838    DO i = 1, year_len
    828839      ! phy_sst(:,i) = 260.+50.*cos(rlatd(:))**2
    829840
     
    10181029    imx = 1
    10191030    kmx = 1
    1020     DO k = 1, 360
     1031    DO k = 1, year_len
    10211032      DO i = 2, nlon
    10221033        IF (phy_sst(i,k)<amn) THEN
Note: See TracChangeset for help on using the changeset viewer.