Changeset 2239


Ignore:
Timestamp:
Mar 23, 2015, 8:27:30 AM (9 years ago)
Author:
Ehouarn Millour
Message:

Reorganizing physics/dynamics interface:

  • what is related to dynamics-physics interface is now in a seperate directory: dynlmdz_phy* for physics in phy*
  • 1d model and related dependencies (including a couple from "dynamics", set up as symbolic links) is now in subdirectory "dyn1d" of phy*.
  • "bibio" directory is now "misc" and should only contain autonomous utilities.
  • "cosp" is now a subdirectory of phylmd.

EM

Location:
LMDZ5/trunk
Files:
61 added
28 deleted
20 edited
10 copied
36 moved

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/bld.cfg

    r2084 r2239  
    2424src::dyn     %SRC_PATH/%DYN
    2525src::phys    %SRC_PATH/%PHYS
     26src::dyn_phys %DYN_PHYS
    2627src::sisvat  %SISVAT
    2728src::rrtm    %RRTM
    2829src::grid    %SRC_PATH/grid
    29 src::filtrez %SRC_PATH/filtrez
    30 src::bibio   %SRC_PATH/bibio
    31 src::dyn3d_common   %SRC_PATH/dyn3d_common
     30src::filtrez %FILTRE
     31src::misc    %SRC_PATH/misc
     32src::dyn3d_common   %DYN_COMMON
    3233src::cosp    %COSP
    3334src::ext_src %EXT_SRC
  • LMDZ5/trunk/create_make_gcm

    r2238 r2239  
    5050fi
    5151echo "LOCAL_DIR=`echo $localdir`"
    52 echo 'BIBIO    = $(LIBF)/bibio'
     52echo 'MISC    = $(LIBF)/misc'
    5353echo "FILTRE   = filtre"
    5454echo "PHYS  = "
    5555echo 'LIBPHY = $(LIBO)/libphy$(PHYS).a'
     56echo 'LIBDYN_PHY = $(LIBO)/libdynlmdz_phy$(PHYS).a'
    5657echo 'DIRMAIN=dyn$(DIM)d$(FLAG_PARA)'
    5758echo 'RM=rm'
     
    6263echo 'L_DYN      = -ldyn$(DIM)d$(FLAG_PARA) -ldyn3d_common'
    6364echo 'L_FILTRE   = -l$(FILTRE)'
     65echo 'L_DYN_PHY = -ldynlmdz_phy$(PHYS) '
    6466echo 'L_PHY = -lphy$(PHYS) '
    65 echo 'L_BIBIO    = -lbibio'
     67echo 'L_MISC    = -lmisc'
    6668echo 'L_ADJNT    ='
    6769echo 'L_COSP     = -lcosp'
     
    8991echo 'DYN  = dyn$(DIM)d'
    9092echo
    91 #echo 'main : chimie $(DYN) bibio phys $(OPTION_DEP) '
    92 echo 'main : $(DYN) bibio phys $(OPTION_DEP) '
     93#echo 'main : chimie $(DYN) misc phys $(OPTION_DEP) '
     94echo 'main : $(DYN) misc phys dyn_phy $(OPTION_DEP) '
    9395echo '  cd $(LIBO) ; $(RANLIB) lib*.a ; cd $(GCM) ;\'
    9496echo '  cd $(LOCAL_DIR); \'
    9597echo '  $(COMPILE90) $(LIBF)/$(DIRMAIN)/$(SOURCE) -o $(PROG).o ; \'
    96 echo '  $(LINK) $(PROG).o -L$(LIBO) $(L_DYN) $(L_ADJNT) $(L_COSP) $(L_PHY) $(L_DYN) $(L_DYN3D_COMMON) $(L_BIBIO) $(L_DYN3D_COMMON) $(L_PHY) $(L_DYN) $(L_FILTRE) $(OPLINK) $(OPTION_LINK) -o $(LOCAL_DIR)/$(PROG).e ; $(RM) $(PROG).o '
     98echo '  $(LINK) $(PROG).o -L$(LIBO) $(L_DYN) $(L_DYN_PHY) $(L_ADJNT) $(L_COSP) $(L_PHY) $(L_DYN) $(L_DYN3D_COMMON) $(L_MISC) $(L_DYN3D_COMMON) $(L_PHY) $(L_DYN_PHY) $(L_DYN) $(L_FILTRE) $(OPLINK) $(OPTION_LINK) -o $(LOCAL_DIR)/$(PROG).e ; $(RM) $(PROG).o '
    9799echo
    98100echo 'phys : $(LIBPHY)'
     
    101103echo 'dyn1d :'
    102104echo
     105echo 'dyn_phy: $(LIBDYN_PHYS)'
    103106echo
    104107#echo 'chimie : $(LIBO)/libchimie.a'
    105108echo
    106 echo 'bibio : $(LIBO)/libbibio.a'
     109echo 'misc : $(LIBO)/libmisc.a'
    107110echo
    108111echo 'adjnt : $(LIBO)/libadjnt.a'
  • LMDZ5/trunk/libf/dyn3d/advtrac.F90

    r1987 r2239  
    7979
    8080  IF(iadvtr.EQ.0) THEN
    81      CALL initial0(ijp1llm,pbaruc)
    82      CALL initial0(ijmllm,pbarvc)
     81     pbaruc(:,:)=0
     82     pbarvc(:,:)=0
    8383  ENDIF
    8484
  • LMDZ5/trunk/libf/dyn3d/fluxstokenc.F

    r1907 r2239  
    8383
    8484      IF(iadvtr.EQ.0) THEN
    85          CALL initial0(ijp1llm,phic)
    86          CALL initial0(ijp1llm,tetac)
    87          CALL initial0(ijp1llm,pbaruc)
    88          CALL initial0(ijmllm,pbarvc)
     85         phic(:,:)=0
     86         tetac(:,:)=0
     87         pbaruc(:,:)=0
     88         pbarvc(:,:)=0
    8989      ENDIF
    9090
  • LMDZ5/trunk/libf/dyn3d/leapfrog.F

    r2221 r2239  
    437437#endif
    438438! #endif of #ifdef CPP_IOIPSL
     439#ifdef CPP_PHYS
    439440         CALL calfis( lafin , jD_cur, jH_cur,
    440441     $               ucov,vcov,teta,q,masse,ps,p,pk,phis,phi ,
    441442     $               du,dv,dteta,dq,
    442443     $               flxw,dufi,dvfi,dtetafi,dqfi,dpfi  )
    443 
     444#endif
    444445c      ajout des tendances physiques:
    445446c      ------------------------------
  • LMDZ5/trunk/libf/dyn3d_common/diagedyn.F

    r1952 r2239  
    5353c======================================================================
    5454 
     55      USE control_mod, ONLY : planet_type
     56     
    5557      IMPLICIT NONE
    5658C
     
    6062#include "iniprint.h"
    6163
    62 #ifdef CPP_EARTH
    63 #include "../phylmd/YOMCST.h"
    64 #include "../phylmd/YOETHF.h"
    65 #endif
     64!#ifdef CPP_EARTH
     65!#include "../phylmd/YOMCST.h"
     66!#include "../phylmd/YOETHF.h"
     67!#endif
     68! Ehouarn: for now set these parameters to what is in Earth physics...
     69!          (cf ../phylmd/suphel.h)
     70!          this should be generalized...
     71      REAL,PARAMETER :: RCPD=
     72     &               3.5*(1000.*(6.0221367E+23*1.380658E-23)/28.9644)
     73      REAL,PARAMETER :: RCPV=
     74     &               4.*(1000.*(6.0221367E+23*1.380658E-23)/18.0153)
     75      REAL,PARAMETER :: RCS=RCPV
     76      REAL,PARAMETER :: RCW=RCPV
     77      REAL,PARAMETER :: RLSTT=2.8345E+6
     78      REAL,PARAMETER :: RLVTT=2.5008E+6
     79!
    6680C
    6781      INTEGER imjmp1
     
    140154
    141155
    142 #ifdef CPP_EARTH
     156!#ifdef CPP_EARTH
     157      IF (planet_type=="earth") THEN
     158     
    143159c======================================================================
    144160C     Compute Kinetic enrgy
     
    314330      ec_pre (idiag)    = ec_tot
    315331C
    316 #else
    317       write(lunout,*)'diagedyn: Needs Earth physics to function'
    318 #endif
     332!#else
     333      ELSE
     334        write(lunout,*)'diagedyn: set to function with Earth parameters'
     335      ENDIF ! of if (planet_type=="earth")
     336!#endif
    319337! #endif of #ifdef CPP_EARTH
    320338      RETURN
  • LMDZ5/trunk/libf/dyn3dmem/call_calfis_mod.F90

    r2221 r2239  
    227227  !$OMP BARRIER
    228228
     229#ifdef CPP_PHYS
    229230    CALL calfis_loc(lafin ,jD_cur, jH_cur,                       &
    230231                     ucov,vcov,teta,q,masse,ps,p,pk,phis,phi ,   &
    231232                     du,dv,dteta,dq,                             &
    232233                     flxw, dufi,dvfi,dtetafi,dqfi,dpfi  )
    233 
     234#endif
    234235    ijb=ij_begin
    235236    ije=ij_end 
  • LMDZ5/trunk/libf/dyn3dmem/gcm.F

    r2230 r2239  
    1313      USE parallel_lmdz
    1414      USE infotrac
    15       USE mod_interface_dyn_phys
     15#ifdef CPP_PHYS
     16      USE mod_interface_dyn_phys, ONLY: init_interface_dyn_phys
     17#endif
    1618      USE mod_hallo
    1719      USE Bands
  • LMDZ5/trunk/libf/dyn3dpar/advtrac_p.F90

    r1987 r2239  
    1010  !            M.A Filiberti (04/2002)
    1111  !
    12   USE parallel_lmdz
    13   USE Write_Field_p
    14   USE Bands
     12  USE parallel_lmdz, ONLY: ij_begin,ij_end,OMP_CHUNK,pole_nord,pole_sud,&
     13                           setdistrib
     14  USE Write_Field_p, ONLY: WriteField_p
     15  USE Bands, ONLY: jj_Nb_Caldyn,jj_Nb_vanleer
    1516  USE mod_hallo
    1617  USE Vampir
  • LMDZ5/trunk/libf/dyn3dpar/covcont_p.F

    r1907 r2239  
    11      SUBROUTINE covcont_p (klevel,ucov, vcov, ucont, vcont )
    2       USE parallel_lmdz
     2      USE parallel_lmdz, ONLY: ij_begin,ij_end,OMP_CHUNK,
     3     &                         pole_nord, pole_sud
    34      IMPLICIT NONE
    45
  • LMDZ5/trunk/libf/dyn3dpar/gcm.F

    r2225 r2239  
    1414      USE parallel_lmdz
    1515      USE infotrac
    16       USE mod_interface_dyn_phys
     16#ifdef CPP_PHYS
     17      USE mod_interface_dyn_phys, ONLY: init_interface_dyn_phys
     18#endif
    1719      USE mod_hallo
    1820      USE Bands
  • LMDZ5/trunk/libf/dyn3dpar/leapfrog_p.F

    r2221 r2239  
    825825cc$OMP BARRIER
    826826!        CALL FTRACE_REGION_BEGIN("calfis")
     827#ifdef CPP_PHYS
    827828        CALL calfis_p(lafin ,jD_cur, jH_cur,
    828829     $               ucov,vcov,teta,q,masse,ps,p,pk,phis,phi ,
    829830     $               du,dv,dteta,dq,
    830831     $               flxw, dufi,dvfi,dtetafi,dqfi,dpfi  )
     832#endif
    831833!        CALL FTRACE_REGION_END("calfis")
    832834        ijb=ij_begin
  • LMDZ5/trunk/libf/dyn3dpar/mod_hallo.F90

    r1907 r2239  
    11module mod_Hallo
    2 USE parallel_lmdz
     2USE mod_const_mpi, ONLY: COMM_LMDZ,MPI_REAL_LMDZ
     3USE parallel_lmdz, ONLY: using_mpi, mpi_size, mpi_rank, omp_chunk, omp_rank, &
     4                         pole_nord, pole_sud, jj_begin, jj_end, &
     5                         jj_begin_para, jj_end_para
    36implicit none
    47  logical,save :: use_mpi_alloc
  • LMDZ5/trunk/libf/dyn3dpar/parallel_lmdz.F90

    r2054 r2239  
    3131    integer, save :: omp_size 
    3232!$OMP THREADPRIVATE(omp_rank)
     33
     34! Ehouarn: add "dummy variables" (which are in dyn3d_mem/parallel_lmdz.F90)
     35! so that calfis_loc compiles even if using dyn3dpar
     36    integer,save  :: jjb_u
     37    integer,save  :: jje_u
     38    integer,save  :: jjnb_u
     39    integer,save  :: jjb_v
     40    integer,save  :: jje_v
     41    integer,save  :: jjnb_v   
     42
     43    integer,save  :: ijb_u
     44    integer,save  :: ije_u
     45    integer,save  :: ijnb_u   
     46   
     47    integer,save  :: ijb_v
     48    integer,save  :: ije_v
     49    integer,save  :: ijnb_v   
    3350
    3451 contains
  • LMDZ5/trunk/libf/dynlmdz_phylmd/calfis_loc.F

    r2233 r2239  
    3636      USE IOPHY
    3737#endif
     38#ifdef CPP_PARA
    3839      USE parallel_lmdz,ONLY:omp_chunk,using_mpi,jjb_u,jje_u,jjb_v,jje_v
    3940      USE Write_Field
    4041      Use Write_field_p
    4142      USE Times
     43#endif
    4244      USE infotrac, ONLY: nqtot, niadv, tname
    4345      USE control_mod, ONLY: planet_type, nsplit_phys
    4446
     47#ifdef CPP_PARA
    4548      IMPLICIT NONE
    4649c=======================================================================
     
    11861189#endif
    11871190! of #ifdef CPP_PHYS
    1188       RETURN
     1191#endif
     1192! of #ifdef CPP_PARA
    11891193      END
  • LMDZ5/trunk/libf/dynlmdz_phylmd/calfis_p.F

    r2233 r2239  
    3333      USE IOPHY
    3434#endif
     35#ifdef CPP_PARA
    3536      USE parallel_lmdz, ONLY : omp_chunk, using_mpi
    3637      USE Write_Field
    3738      Use Write_field_p
    3839      USE Times
     40#endif
    3941      USE infotrac, ONLY: nqtot, niadv, tname
    4042      USE control_mod, ONLY: planet_type, nsplit_phys
     
    140142      REAL,INTENT(OUT) :: pdpsfi(iip1,jjp1) ! tendency on surface pressure (Pa/s)
    141143
     144#ifdef CPP_PARA
    142145#ifdef CPP_PHYS
    143146! Ehouarn: for now calfis_p needs some informations from physics to compile
     
    11141117#endif
    11151118! of #ifdef CPP_PHYS
    1116       RETURN
     1119#endif
     1120! of #ifdef CPP_PARA
    11171121      END
  • LMDZ5/trunk/libf/dynlmdz_phylmd/gr_dyn_fi_p.F

    r2233 r2239  
    33!
    44      SUBROUTINE gr_dyn_fi_p(nfield,im,jm,ngrid,pdyn,pfi)
    5 #ifdef CPP_PHYS
     5#ifdef CPP_PARA
    66! Interface with parallel physics,
    77      USE mod_interface_dyn_phys
     
    4040c$OMP END DO NOWAIT
    4141#endif
    42 ! of #ifdef CPP_PHYS
     42! of #ifdef CPP_PARA
    4343      RETURN
    4444      END
  • LMDZ5/trunk/libf/dynlmdz_phylmd/gr_fi_dyn_p.F

    r2233 r2239  
    33!
    44      SUBROUTINE gr_fi_dyn_p(nfield,ngrid,im,jm,pfi,pdyn)
    5 #ifdef CPP_PHYS
     5#ifdef CPP_PARA
    66! Interface with parallel physics,
    77      USE mod_interface_dyn_phys
     
    5252c$OMP END DO NOWAIT
    5353#endif
    54 ! of #ifdef CPP_PHYS
     54! of #ifdef CPP_PARA
    5555      RETURN
    5656      END
  • LMDZ5/trunk/libf/dynlmdz_phylmd/iniphysiq.F90

    r2233 r2239  
    148148    WRITE (lunout, *) '  in the dynamics punjours=', punjours
    149149    WRITE (lunout, *) '   but in the physics RDAY=', rday
    150     IF (abs(rday-punjours)>0.01) THEN
     150    IF (abs(rday-punjours)>0.01*punjours) THEN
    151151        ! stop here if the relative difference is more than 1%
    152152      abort_message = 'length of day discrepancy'
     
    158158    WRITE (lunout, *) '     in the dynamics pg=', pg
    159159    WRITE (lunout, *) '  but in the physics RG=', rg
    160     IF (abs(rg-pg)>0.01) THEN
     160    IF (abs(rg-pg)>0.01*pg) THEN
    161161        ! stop here if the relative difference is more than 1%
    162162      abort_message = 'gravity discrepancy'
     
    168168    WRITE (lunout, *) '   in the dynamics prad=', prad
    169169    WRITE (lunout, *) '  but in the physics RA=', ra
    170     IF (abs(ra-prad)>0.01) THEN
     170    IF (abs(ra-prad)>0.01*prad) THEN
    171171        ! stop here if the relative difference is more than 1%
    172172      abort_message = 'planet radius discrepancy'
     
    178178    WRITE (lunout, *) '     in the dynamics pr=', pr
    179179    WRITE (lunout, *) '  but in the physics RD=', rd
    180     IF (abs(rd-pr)>0.01) THEN
     180    IF (abs(rd-pr)>0.01*pr) THEN
    181181        ! stop here if the relative difference is more than 1%
    182182      abort_message = 'reduced gas constant discrepancy'
     
    188188    WRITE (lunout, *) '     in the dynamics pcpp=', pcpp
    189189    WRITE (lunout, *) '  but in the physics RCPD=', rcpd
    190     IF (abs(rcpd-pcpp)>0.01) THEN
     190    IF (abs(rcpd-pcpp)>0.01*pcpp) THEN
    191191        ! stop here if the relative difference is more than 1%
    192192      abort_message = 'specific heat discrepancy'
  • LMDZ5/trunk/libf/dynlmdz_phylmd/mod_interface_dyn_phys.F90

    r2233 r2239  
    77 
    88 
    9 #ifdef CPP_PHYS
     9#ifdef CPP_PARA
    1010! Interface with parallel physics,
    1111CONTAINS
     
    5555  END SUBROUTINE Init_interface_dyn_phys
    5656#endif
    57 ! of #ifdef CPP_PHYS
     57! of #ifdef CPP_PARA
    5858END MODULE mod_interface_dyn_phys
  • LMDZ5/trunk/libf/dynlmdz_phymar/iniphysiq.F90

    r2238 r2239  
    2222                       rg, & ! gravity
    2323                       rcpp  ! specific heat of the atmosphere
    24   USE phyaqua_mod, ONLY: iniaqua
     24!  USE phyaqua_mod, ONLY: iniaqua
    2525  IMPLICIT NONE
    2626  !
     
    149149
    150150! Additional initializations for aquaplanets
    151 !$OMP PARALLEL
    152       if (iflag_phys>=100) then
    153         call iniaqua(klon_omp,rlatd,rlond,iflag_phys)
    154       endif
    155 !$OMP END PARALLEL
     151!!$OMP PARALLEL
     152!      if (iflag_phys>=100) then
     153!        call iniaqua(klon_omp,rlatd,rlond,iflag_phys)
     154!      endif
     155!!$OMP END PARALLEL
    156156
    157157      END
  • LMDZ5/trunk/libf/grid/dimension/makdim

    r2204 r2239  
    1212fi
    1313
    14 if (($1 % 8 != 0)) && (( $# = 3 ))
     14if (($1 % 8 != 0)) && (( $# == 3 ))
    1515then
    1616    echo "The number of longitudes must be a multiple of 8."
  • LMDZ5/trunk/libf/phylmd/dyn1d/1DUTILS.h

    r2238 r2239  
    1 #include "../dyn3d/conf_gcm.F90"
    2 #include "../dyn3d_common/q_sat.F"
     1#include "conf_gcm.F90"
     2#include "q_sat.F"
    33
    44!
     
    443443!   Declarations:
    444444!   -------------
    445 #include "dimensions.h"
    446 #include "comconst.h"
    447 #include "temps.h"
     445      include "dimensions.h"
     446      include "comconst.h"
     447      include "temps.h"
    448448!!#include "control.h"
    449 #include "logic.h"
    450 #include "netcdf.inc"
     449      include "logic.h"
     450      include "netcdf.inc"
    451451
    452452!   Arguments:
     
    587587!   Declarations:
    588588!   -------------
    589 #include "dimensions.h"
    590 #include "comconst.h"
    591 #include "temps.h"
     589      include "dimensions.h"
     590      include "comconst.h"
     591      include "temps.h"
    592592!!#include "control.h"
    593 #include "logic.h"
    594 #include "netcdf.inc"
     593      include "logic.h"
     594      include "netcdf.inc"
    595595
    596596!   Arguments:
     
    894894      IMPLICIT NONE
    895895 
    896 #include "dimensions.h"
    897 #include "paramet.h"
     896      include "dimensions.h"
     897      include "paramet.h"
    898898!
    899899!=======================================================================
  • LMDZ5/trunk/libf/phylmd/dyn1d/lmdz1d.F90

    r2238 r2239  
    1 #ifdef CPP_1D
    2 #include "../dyn3d/mod_const_mpi.F90"
    3 #include "../dyn3d_common/control_mod.F90"
    4 #include "../dyn3d_common/infotrac.F90"
    5 #include "../dyn3d_common/disvert.F90"
     1!#ifdef CPP_1D
     2!#include "../dyn3d/mod_const_mpi.F90"
     3!#include "../dyn3d_common/control_mod.F90"
     4!#include "../dyn3d_common/infotrac.F90"
     5!#include "../dyn3d_common/disvert.F90"
    66
    77
     
    10521052#include "1Dconv.h"
    10531053
    1054 #endif
    1055 
     1054!#endif
     1055
  • LMDZ5/trunk/libf/phylmd/etat0_netcdf.F90

    r2227 r2239  
    55!
    66SUBROUTINE etat0_netcdf(ib, masque, phis, letat0)
     7#ifndef CPP_1D
    78!
    89!-------------------------------------------------------------------------------
     
    535536!#endif of #ifdef CPP_EARTH
    536537  RETURN
    537 
     538#endif
     539!#endif of ifndef CPP_1D
    538540END SUBROUTINE etat0_netcdf
    539541!
  • LMDZ5/trunk/libf/phylmd/init_phys_lmdz.F90

    r1907 r2239  
    33!
    44SUBROUTINE Init_Phys_lmdz(iim,jjp1,llm,nb_proc,distrib)
    5   USE mod_phys_lmdz_para
    6   USE mod_grid_phy_lmdz
     5  USE mod_phys_lmdz_para, ONLY: Init_phys_lmdz_para, klon_omp
     6  USE mod_grid_phy_lmdz, ONLY: Init_grid_phy_lmdz, nbp_lev
    77  USE dimphy, ONLY : Init_dimphy
    88  USE infotrac, ONLY : type_trac
  • LMDZ5/trunk/libf/phylmd/limit_netcdf.F90

    r2159 r2239  
    44!
    55SUBROUTINE limit_netcdf(interbar, extrap, oldice, masque)
     6#ifndef CPP_1D
    67!
    78!-------------------------------------------------------------------------------
     
    660661! of #ifdef CPP_EARTH
    661662
     663#endif
     664! of #ifndef CPP_1D
    662665END SUBROUTINE limit_netcdf
  • LMDZ5/trunk/makelmdz

    r2238 r2239  
    7777
    7878CPP_KEY=""
    79 INCLUDE='-I$(LIBF)/grid -I$(LIBF)/bibio -I$(LIBF)/filtrez -I. '
     79INCLUDE='-I$(LIBF)/grid -I$(LIBF)/misc -I$(LIBF)/filtrez -I. '
    8080LIB=""
    8181adjnt=""
     
    8585EXT_SRC=""
    8686#src_dirs: directories containing source files
    87 src_dirs="grid bibio"
     87src_dirs="grid misc"
    8888########################################################################
    8989# lecture des options
     
    288288   #We'll use some physics
    289289   src_dirs="$src_dirs phy$physique"
     290   LIBPHY='$(LIBO)/libphy'"$physique"'.a'
     291   lib_phy='-lphy'"$physique"
    290292   CPP_KEY="$CPP_KEY CPP_PHYS"
    291293   if [[ "${physique:0:3}" == "lmd" ]]
     
    417419then
    418420   CPP_KEY="$CPP_KEY CPP_COSP"
    419    COSP_PATH="$LIBFGCM/cosp"
     421   COSP_PATH="$LIBFGCM/phylmd/cosp"
    420422   src_dirs="$src_dirs cosp"
    421423#   LIB="${LIB} -l${LIBPREFIX}cosp"
     
    498500if (( $dimc == 3 )) ; then
    499501   src_dirs="$src_dirs $filtre dyn3d_common dyn3d${FLAG_PARA}"
     502   if [[ $physique != "nophys" ]] ; then
     503     src_dirs="$src_dirs dynlmdz_phy${physique}"
     504     libdyn_phy="-ldynlmdz_phy${physique}"
     505     LIBDYN_PHYS='$(LIBO)/libdynlmdz_phy'"${physique}"'.a'
     506     INCLUDE="$INCLUDE "'-I$(LIBF)/dynlmdz_phy'"${physique}"
     507   fi
    500508   cd $LIBFGCM/grid
    501509   \rm fxyprim.h
     
    504512   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn3d${FLAG_PARA} -I$(LIBF)/dyn3d_common '
    505513elif (( $dimc == 2 )) ; then
     514   src_dirs="$src_dirs dyn2d"
    506515   filtre="FILTRE= L_FILTRE= "
    507516   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn2d'
    508517elif (( $dimc == 1 )) ; then
    509    src_dirs="$src_dirs dyn3d dyn3d_common filtrez"
     518   #src_dirs="$src_dirs dyn3d dyn3d_common filtrez"
     519   src_dirs="$src_dirs phy${physique}/dyn1d"
    510520   CPP_KEY="$CPP_KEY CPP_1D"
    511    filtre="L_DYN= DYN= FILTRE= L_FILTRE= DIRMAIN=phy$physique "
    512    INCLUDE="$INCLUDE "'-I$(LIBF)/dyn3d -I$(LIBF)/dyn3d_common ' # Pas tres propre
     521   filtre="L_DYN= DYN= FILTRE= L_FILTRE= "
     522   #INCLUDE="$INCLUDE "'-I$(LIBF)/dyn3d -I$(LIBF)/dyn3d_common ' # Pas tres propre
     523   INCLUDE="$INCLUDE "' -I$(LIBF)/phy'"$physique"'/dyn1d'
    513524else
    514525   echo Dimension dimc=$dimc pas prevu ; exit
     
    590601
    591602source_code=${code}.F
     603dirmain=dyn${dimc}d${FLAG_PARA}
    592604if [[ -r $LMDGCM/libf/dyn${dimc}d${FLAG_PARA}/${code}.F90 ]]
    593605then
    594606  source_code=${code}.F90
    595607elif [[ -r $LMDGCM/libf/phy$physique/${code}.F90 ]] ; then
     608  dirmain=phy$physique
     609  source_code=${code}.F90
     610elif [[ -r $LMDGCM/libf/dynlmdz_phy$physique/${code}.F90 ]] ; then
     611  dirmain=dynlmdz_phy${physique}
     612  source_code=${code}.F90
     613elif [[ -r $LMDGCM/libf/phy$physique/dyn1d/${code}.F90 ]] ; then
     614  dirmain=phy$physique/dyn1d
    596615  source_code=${code}.F90
    597616fi
     
    647666LIBO=${LIBOGCM}/${nomlib} \
    648667"PHYS=$physique" \
     668LIBPHY=${LIBPHY} \
     669LIBDYN_PHYS=${LIBDYN_PHYS} \
    649670DIM=$dimc \
    650671FLAG_PARA=$FLAG_PARA \
     672L_PHY="$lib_phy" \
     673L_DYN_PHY="$libdyn_phy" \
    651674L_ADJNT=$adjnt \
    652675L_COSP="$lcosp" \
     
    661684MOD_SUFFIX="mod" \
    662685AR=$arcommand \
     686DIRMAIN=$dirmain \
    663687SOURCE=$source_code \
    664688PROG=$code
     
    673697LIBO=${LIBOGCM}/${nomlib} \
    674698"PHYS=$physique" \
     699LIBPHY=${LIBPHY} \
     700LIBDYN_PHYS=${LIBDYN_PHYS} \
    675701DIM=$dimc \
    676702FLAG_PARA=$FLAG_PARA \
     703L_PHY="$lib_phy" \
     704L_DYN_PHY="$libdyn_phy" \
    677705L_ADJNT=$adjnt \
    678706L_COSP="$lcosp" \
     
    687715MOD_SUFFIX="mod" \
    688716AR=$arcommand \
     717DIRMAIN=$dirmain \
    689718SOURCE=$source_code \
    690719PROG=$code
  • LMDZ5/trunk/makelmdz_fcm

    r2238 r2239  
    3838LIBOGCM=$LMDGCM/libo
    3939LIBFGCM=$LMDGCM/libf
     40DYN_COMMON_PATH=$LIBFGCM/dyn3d_common
    4041# path for optional packages, but default set to ".void_dir"
     42FILTRE_PATH=$LMDGCM/.void_dir
     43DYN_PHYS_PATH=$LMDGCM/.void_dir
    4144RRTM_PATH=$LMDGCM/.void_dir
    4245SISVAT_PATH=$LMDGCM/.void_dir
     
    231234   CPP_KEY="$CPP_KEY CPP_EARTH"
    232235   fi
     236   # set the dyn/phys interface path
     237   DYN_PHYS_PATH="${LIBFGCM}/dynlmdz_phy${physique}"
     238fi
     239
     240if [[ "$filtre" == "filtrez" ]]
     241then
     242   FILTRE_PATH=${LIBFGCM}/$filtre
    233243fi
    234244
     
    342352then
    343353   CPP_KEY="$CPP_KEY CPP_COSP"
    344    COSP_PATH="$LIBFGCM/cosp"
     354   COSP_PATH="$LIBFGCM/phylmd/cosp"
    345355#   LIB="${LIB} -l${LIBPREFIX}cosp"
    346356fi
     
    410420  \rm fxyprim.h
    411421  cp -p fxy_${grille}.h fxyprim.h
    412 else
    413   echo "Probleme dans les dimensions de la dynamique !!"
    414   echo "Non reactive pour l'instant !!!"
     422#else
     423#  echo "Probleme dans les dimensions de la dynamique !!"
     424#  echo "Non reactive pour l'instant !!!"
     425fi
     426
     427if (( $dimension == 1 ))
     428then
     429  CPP_KEY="$CPP_KEY CPP_1D"
     430##in 1D, add dyn3d to include path (because main prog is in physics)
     431  INCLUDE="$INCLUDE -Ilibf/dyn3d -Ilibf/dyn3d_common"
     432## no filtre in 1d:
     433  FILTRE_PATH=$LMDGCM/.void_dir
     434## no need to compile all routines in dyn3d_common either:
     435  DYN_COMMON_PATH=$LMDGCM/.void_dir
     436## no need to compile all routines in dynlmdz_phy... ;
     437## (because key ones are included in 1D main program)
     438  DYN_PHYS_PATH=$LMDGCM/.void_dir
    415439fi
    416440
     
    473497else
    474498  SUFF_NAME=${SUFF_NAME}_seq
    475   DYN=dyn${dimc}d
     499  if (( $dimension == 1 ))
     500  then
     501    # dynamics-related routines in"dyn1d" subdirectory of phy${physique}
     502    DYN=phy${physique}/dyn1d
     503  else
     504    DYN=dyn${dimc}d
     505  fi
    476506fi
    477507
     
    506536echo "%LIBO          $LIBOGCM"       >> $config_fcm
    507537echo "%DYN           $DYN"           >> $config_fcm
     538echo "%DYN_COMMON    $DYN_COMMON_PATH" >> $config_fcm
     539echo "%FILTRE        $FILTRE_PATH"   >> $config_fcm
    508540echo "%PHYS          phy${physique}" >> $config_fcm
     541echo "%DYN_PHYS      $DYN_PHYS_PATH" >> $config_fcm
    509542echo "%RRTM          $RRTM_PATH"     >> $config_fcm
    510543echo "%SISVAT        $SISVAT_PATH"   >> $config_fcm
Note: See TracChangeset for help on using the changeset viewer.