Changeset 104


Ignore:
Timestamp:
Mar 25, 2011, 4:58:38 PM (14 years ago)
Author:
slebonnois
Message:

SLebonnois: modification de makelmdz et create_make_gcm pour pouvoir
compiler la chimie titan. Pas de raison que ca gene les autres.
Dans cette version, les compilations de Venus et Titan fonctionnent.

Phytitan: modifications pour pouvoir compiler correctement.
Il ne manque plus que physiq.F a faire.

Location:
trunk
Files:
1 deleted
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/arch/arch-GNOME.fcm

    r59 r104  
    99%DEV_FFLAGS          -O2
    1010%DEBUG_FFLAGS        -O2
     11%C_COMPILER          gcc
     12%C_OPTIM             -O3
    1113%MPI_FFLAGS          -I/opt/intel/impi/3.2.1.009/include64
    1214%OMP_FFLAGS         
  • trunk/arch/arch-SX8_BRODIE.fcm

    r1 r104  
    99%DEV_FFLAGS          -C vsafe -gv -Wf,-init stack=nan,-init heap=nan
    1010%DEBUG_FFLAGS        -C debug -eR -Wf,-init stack=nan,-init heap=nan
     11%C_COMPILER          sxcc
     12%C_OPTIM             -O
    1113%MPI_FFLAGS
    1214%OMP_FFLAGS          -P openmp
  • trunk/arch/arch-g95.fcm

    r1 r104  
    99%DEV_FFLAGS          -O
    1010%DEBUG_FFLAGS        -fbounds-check -freal=nan -ftrace=full -g -O0 -Wall
     11%C_COMPILER          gcc
     12%C_OPTIM             -O3
    1113%MPI_FFLAGS
    1214%OMP_FFLAGS         
  • trunk/arch/arch-linux-64bit.fcm

    r37 r104  
    99%DEV_FFLAGS          -g -O1
    1010%DEBUG_FFLAGS        -g -O0 -Kieee -Ktrap=fp -Mbounds
     11%C_COMPILER          gcc
     12%C_OPTIM             -O3
    1113%MPI_FFLAGS
    1214%OMP_FFLAGS         
  • trunk/chantiers/commit_importants.log

    r103 r104  
    722722- sponge layer
    723723
     724*********************
     725**** commit_v104 ****
     726*********************
     727
     728SLebonnois: modification de makelmdz et create_make_gcm pour pouvoir
     729compiler la chimie titan. Pas de raison que ca gene les autres.
     730Dans cette version, les compilations de Venus et Titan fonctionnent.
     731
     732Phytitan: modifications pour pouvoir compiler correctement.
     733Il ne manque plus que physiq.F a faire.
     734
  • trunk/create_make_gcm

    r66 r104  
    8282echo
    8383echo
     84echo '#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
     85echo '# Option de compilation C'
     86echo '#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
     87echo
     88echo 'COMPILEC = $(CCC) $(OPTIMC) $(INCLUDEC) -c'
     89echo
     90echo
    8491echo "#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
    8592echo "# Creation des differents executables"
     
    110117echo 'cosp : $(LIBO)/libcosp.a'
    111118echo
     119echo 'chimtitan : $(LIBO)/libchimtitan.a'
     120echo
    112121echo '$(FILTRE)3d : $(LIBO)/lib$(FILTRE).a'
    113122echo
     
    229238#       
    230239      echo
    231    cd $libf
     240      cd $libf
     241##############################
     242## CAS DES FICHIERS EN C
     243######
     244   elif [ "`ls $diri/*.c`" != "" ] ; then
     245      cd $diri >/dev/null 2>&1
     246      echo
     247      listlib=""
     248      for i in `ls *.c`
     249      do
     250         fili=`basename $i .c`
     251         test=` (  head $i | grep '      PROGRAM' ) `
     252         if [ "$test" = "" ] ; then
     253            listlib=$listlib" "$fili
     254         fi
     255      done
     256#
     257      echo
     258      echo
     259      echo '#======================================================================='
     260      echo '# Contenu de la bibliotheque correspondant au Directory '$diri
     261      echo '#======================================================================='
     262      echo
     263      for fili in $listlib
     264      do
     265         echo '$(LIBO)/lib'$diri".a : " '$(LIBO)/lib'$diri".a("$fili".o)"
     266         echo
     267      done
     268      echo '.PRECIOUS   : $(LIBO)/lib'$diri'.a'
     269      echo
     270      echo
     271      echo '# Compilation des membres de la bibliotheque lib'$diri'.a'
     272      echo
     273      for fili in $listlib
     274      do
     275         str1='$(LIBO)/lib'$diri'.a('$fili'.o) : $(LIBF)/'$diri/$fili.c
     276         for stri in ` ( sed -n "/\#include/s/\#include//p" $fili.c  | sed 's/\"//g' ) `
     277         do
     278            if [ -f $stri ] ; then
     279               echo $str1 \\
     280               str1='$(LIBF)/'$diri'/'$stri
     281            else
     282               for dirinc in dyn3d grid bibio
     283               do
     284                  if [ -f ../$dirinc/$stri ] ; then
     285                     echo $str1 \\
     286                     str1='$(LIBF)/'`cd .. ; ls */$stri | head -1`
     287                  fi
     288               done
     289            fi
     290         done
     291         echo $str1
     292         # Compile in LIBO directory; and before compiling, remove
     293         # object from library
     294         echo ' cd $(LIBO); \'
     295         echo ' $(AR) d $(LIBO)/lib'$diri'.a '$fili'.o ; \'
     296         ## C
     297         echo ' $(COMPILEC) $(LIBF)/'$diri'/'$fili'.c; \'
     298         # Put generated object in library
     299         echo ' $(AR) r $(LIBO)/lib'$diri'.a '$fili'.o ; $(RM) '$fili'.o ; \'
     300         echo ' cd $(GCM)'
     301         echo
     302      done
     303#       
     304      echo
     305      cd $libf
     306##############################
    232307   fi
    233308   fi
  • trunk/libf/chimtitan/tractitan.c

    r3 r104  
    22/* GCCM */
    33
    4 #include "trac.h"
     4#include "titan.h"
    55
    66void tractitan_( double *RB, char CORPS[][10], double Y[][NLEV],
  • trunk/libf/phytitan/calchim.F

    r102 r104  
    3535      REAL         cplev(jjm+1,klev)      ! pression intercouches (Pa)
    3636     
    37       REAL         dqyc(jjm+1,klev,nqtot)  ! Tendances especes chimiques (nqtot, mais en fait NC...)
     37      REAL         dqyc(jjm+1,klev,NC)    ! Tendances especes chimiques
    3838     
    3939c    Local variables :
     
    6767      REAL  botCH4
    6868      DATA  botCH4/0.05/
    69       REAL  krpd(15,ND+1,klev,jjm+1),krate(klev,NR)
     69      REAL,save,allocatable :: krpd(:,:,:,:),krate(:,:)
    7070      integer reactif(5,NR),nom_prod(NC),nom_perte(NC)
    7171      integer prod(200,NC),perte(2,200,NC)
    7272      SAVE    mass,tablefluxtop,botCH4
    73       SAVE    krpd,krate
    7473      SAVE    reactif,nom_prod,nom_perte,prod,perte
    7574     
     
    9089c pour les routines de la chimie.
    9190c ************************************
     91
     92        allocate(krpd(15,ND+1,klev,jjm+1),krate(klev,NR))
    9293
    9394c Verification dimension verticale: coherence titan_for.h et klev
  • trunk/libf/phytitan/clesphys.h

    r97 r104  
    77!..include cles_phys.h
    88!
    9        LOGICAL cycle_diurne,soil_model,ok_orodr,ok_orolf
     9       LOGICAL cycle_diurne,soil_model
    1010       LOGICAL ok_orodr,ok_orolf,ok_gw_nonoro
    1111       INTEGER nbapp_rad, nbapp_chim, iflag_con, iflag_ajs
  • trunk/libf/phytitan/cooling.F

    r102 r104  
    5959      PARAMETER (NSPECI=46,NSPC1I=47)
    6060
     61c  ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX
     62      INTEGER   ngrid
     63      PARAMETER (ngrid=(jjm-1)*iim+2)  ! = klon
     64c
    6165c   Arguments:
    6266c   ----------
     
    7377
    7478C DTAU IS PASSED EN-MASS, SO ITS DEMENSIONS ARE CRITICAL
    75       COMMON /IRTAUS/ DTAUI(klon,NLAYER,NSPECI)
     79      COMMON /IRTAUS/ DTAUI(ngrid,NLAYER,NSPECI)
    7680      REAL dtaui
    7781
     
    8084
    8185      REAL WNOI(NSPECI),DWNI(NSPECI)   ! SPECTAL INTERVALS
    82       REAL B0(klon,llm+1)
    83       REAL EM(klon,llm+1)
     86      REAL B0(ngrid,llm+1)
     87      REAL EM(ngrid,llm+1)
    8488      REAL DW,WAVEN,TJ,BSURF,QOUT,QIN,eff_g,COLDEN
    8589
  • trunk/libf/phytitan/heating.F

    r102 r104  
    3636      PARAMETER (NSPECV=24)
    3737c
     38c  ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX
     39      INTEGER   ngrid
     40      PARAMETER (ngrid=(jjm-1)*iim+2)  ! = klon
     41c
    3842
    3943c   Arguments:
     
    5761      REAL  CH4(NLEVEL),XN2(NLEVEL),H2(NLEVEL),AR(NLEVEL)
    5862      REAL  XMU(NLEVEL),GAS1(NLAYER),COLDEN(NLAYER)
    59       REAL FNETV(klon,NLEVEL),FUPV(klon,NLEVEL,NSPECV) 
    60       REAL FDV(klon,NLEVEL,NSPECV),FMNETV(klon,NLEVEL)
     63      REAL FNETV(ngrid,NLEVEL),FUPV(ngrid,NLEVEL,NSPECV) 
     64      REAL FDV(ngrid,NLEVEL,NSPECV),FMNETV(ngrid,NLEVEL)
    6165      REAL CSUBP,RSFI,RSFV,F0PI
    6266
  • trunk/libf/phytitan/optci.F

    r102 r104  
    1       SUBROUTINE OPTCI(ykim,nmicro,IPRINT)
     1      SUBROUTINE OPTCI(ykim,qaer,nmicro,IPRINT)
    22      use dimphy
    33#include "dimensions.h"
     
    99c   ---------
    1010      REAL    ykim(klon,klev,nqtot)
     11      real    qaer(klon,nlayer,nqtot)
    1112      integer nmicro
    1213c   ---------
    1314
     15c  ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX
     16      INTEGER   ngrid
     17      PARAMETER (ngrid=(jjm-1)*iim+2)  ! = klon
     18c
    1419      PARAMETER(NLAYER=llm,NLEVEL=NLAYER+1)
    1520      PARAMETER (NSPECI=46,NSPC1I=47,NSPECV=24,NSPC1V=25)
     
    2934     & , RCLDI(NSPECI), XICLDI(NSPECI), RCLDV(NSPECV), XICLDV(NSPECV)
    3035
    31       COMMON /TAUS/   TAUHI(klon,NSPECI),TAUCI(klon,NSPECI),
    32      &                TAUGI(klon,NSPECI),TAURV(klon,NSPECV),
    33      &                TAUHV(klon,NSPECV),TAUCV(klon,NSPECV),
    34      &                TAUGV(klon,NSPECV)
    35 
    36       COMMON /TAUD/   TAUHID(klon,NLAYER,NSPECI)
    37      &               ,TAUGID(klon,NLAYER,NSPECI)
    38      &               ,TAUHVD(klon,NLAYER,NSPECV)
    39      &               ,TAUGVD(klon,NLAYER,NSPECV)
    40 
    41 
    42       COMMON /OPTICI/ DTAUI(klon,NLAYER,NSPECI)
    43      &               ,TAUI (klon,NLEVEL,NSPECI)
    44      &               ,WBARI(klon,NLAYER,NSPECI)
    45      &               ,COSBI(klon,NLAYER,NSPECI)
     36      COMMON /TAUS/   TAUHI(ngrid,NSPECI),TAUCI(ngrid,NSPECI),
     37     &                TAUGI(ngrid,NSPECI),TAURV(ngrid,NSPECV),
     38     &                TAUHV(ngrid,NSPECV),TAUCV(ngrid,NSPECV),
     39     &                TAUGV(ngrid,NSPECV)
     40
     41      COMMON /TAUD/   TAUHID(ngrid,NLAYER,NSPECI)
     42     &               ,TAUGID(ngrid,NLAYER,NSPECI)
     43     &               ,TAUHVD(ngrid,NLAYER,NSPECV)
     44     &               ,TAUGVD(ngrid,NLAYER,NSPECV)
     45
     46
     47      COMMON /OPTICI/ DTAUI(ngrid,NLAYER,NSPECI)
     48     &               ,TAUI (ngrid,NLEVEL,NSPECI)
     49     &               ,WBARI(ngrid,NLAYER,NSPECI)
     50     &               ,COSBI(ngrid,NLAYER,NSPECI)
    4651
    4752      COMMON /SPECTI/ BWNI(NSPC1I), WNOI(NSPECI),
     
    5156      COMMON /ADJUST/ RHCH4,FH2,FHAZE,FHVIS,FHIR,TAUFAC,RCLOUD,FARGON
    5257      COMMON /CONST/RGAS,RHOP,PI,SIGMA
    53       COMMON /traceurs/qaer
    5458      COMMON /part/v,rayon,vrat,dr,dv
    5559
    5660      DIMENSION PROD(NLEVEL)
    5761* nrad dans microtab.h
    58       real qaer(klon,nlayer,nqtot)
    5962      real v(nrad),rayon(nrad),vrat,dr(nrad),dv(nrad)
    6063      real xv1(klev,nspeci),xv2(klev,nspeci)
  • trunk/libf/phytitan/optcv.F

    r102 r104  
    1       SUBROUTINE OPTCV(nmicro,IPRINT)
     1      SUBROUTINE OPTCV(qaer,nmicro,IPRINT)
    22
    33
     
    99c   Argument:
    1010c   ---------
     11      REAL    qaer(klon,nlayer,nqtot)
    1112      integer nmicro
    1213c   ---------
    1314
     15c  ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX
     16      INTEGER   ngrid
     17      PARAMETER (ngrid=(jjm-1)*iim+2)  ! = klon
     18c
    1419      PARAMETER(NLAYER=llm,NLEVEL=NLAYER+1)
    1520      PARAMETER (NSPECI=46,NSPC1I=47,NSPECV=24,NSPC1V=25)
     
    3035     &             , RCLDV(NSPECV), XICLDV(NSPECV)
    3136
    32       COMMON /TAUS/   TAUHI(klon,NSPECI), TAUCI(klon,NSPECI)
    33      &               ,TAUGI(klon,NSPECI), TAURV(klon,NSPECV)
    34      &               ,TAUHV(klon,NSPECV) ,TAUCV(klon,NSPECV)
    35      &               ,TAUGV(klon,NSPECV)
    36 
    37       COMMON /TAUD/   TAUHID(klon,NLAYER,NSPECI)
    38      &               ,TAUGID(klon,NLAYER,NSPECI)
    39      &               ,TAUHVD(klon,NLAYER,NSPECV)
    40      &               ,TAUGVD(klon,NLAYER,NSPECV)
    41 
    42       COMMON /OPTICV/ DTAUV(klon,NLAYER,NSPECV,4)
    43      &               ,TAUV(klon,NLEVEL,NSPECV,4)
    44      &               ,WBARV(klon,NLAYER,NSPECV,4)
    45      &               ,COSBV(klon,NLAYER,NSPECV,4)
     37      COMMON /TAUS/   TAUHI(ngrid,NSPECI), TAUCI(ngrid,NSPECI)
     38     &               ,TAUGI(ngrid,NSPECI), TAURV(ngrid,NSPECV)
     39     &               ,TAUHV(ngrid,NSPECV) ,TAUCV(ngrid,NSPECV)
     40     &               ,TAUGV(ngrid,NSPECV)
     41
     42      COMMON /TAUD/   TAUHID(ngrid,NLAYER,NSPECI)
     43     &               ,TAUGID(ngrid,NLAYER,NSPECI)
     44     &               ,TAUHVD(ngrid,NLAYER,NSPECV)
     45     &               ,TAUGVD(ngrid,NLAYER,NSPECV)
     46
     47      COMMON /OPTICV/ DTAUV(ngrid,NLAYER,NSPECV,4)
     48     &               ,TAUV(ngrid,NLEVEL,NSPECV,4)
     49     &               ,WBARV(ngrid,NLAYER,NSPECV,4)
     50     &               ,COSBV(ngrid,NLAYER,NSPECV,4)
    4651
    4752      COMMON /SPECTV/ BWNV(NSPC1V),WNOV(NSPECV)
     
    5156      COMMON /ADJUST/ RHCH4,FH2,FHAZE,FHVIS,FHIR,TAUFAC,RCLOUD,FARGON
    5257      COMMON /CONST/ RGAS,RHOP,PI,SIGMA
    53       COMMON /traceurs/qaer(klon,nlayer,nqtot)
    5458      COMMON /part/ v(nrad),rayon(nrad),vrat,dr(nrad),dv(nrad)
    5559
  • trunk/libf/phytitan/pg2.F

    r102 r104  
    5151
    5252     
    53         parameter (NG=jjm+1,NL=klev)   ! NG: on travaille en moyenne zonale
     53        parameter (NG=jjm+1)   ! NG: on travaille en moyenne zonale
    5454 
    5555c*************************************
     
    6868        real   mu0(ng),fract(ng)
    6969
    70         real    zzlev(NG,NL+1)
    71      &         ,pplev(NG,NL+1)
    72      &         ,zzlay(NG,NL)
    73      &         ,pt(NG,NL)
    74      &         ,q(NG,NL,nq)
    75      &         ,qdel(NG,NL,nq)
     70        real    zzlev(NG,klev+1)
     71     &         ,pplev(NG,klev+1)
     72     &         ,zzlay(NG,klev)
     73     &         ,pt(NG,klev)
     74     &         ,q(NG,klev,nq)
     75     &         ,qdel(NG,klev,nq)
    7676     &         ,qcumul(NG,0:200,nq)
    7777
  • trunk/libf/phytitan/physiq.F

    r102 r104  
    253253      REAL yv1(klon)            ! vents dans la premiere couche V
    254254      character*8 nom
    255 * common relatifs aux aerosols
    256255      REAL qaer(klon,klev,nqmax)
    257       common/traceurs/qaer
    258256
    259257      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee
     
    10551053     
    10561054c on recupere tr_seri inchange, d_tr_micro, d_tr_chim, tous les trois sur nqmax
    1057 c on recupere aussi qaer (avec le common) pour le mettre dans les sorties
     1055c on recupere aussi qaer pour le mettre dans les sorties
    10581056c  si microfi=1, sortie de qaer(1:nmicro)
    10591057c  si nmicro != nqmax et si chimi, sortie de tr_seri(nmicro+1:nqmax)
     
    10771075     .                   nqmax,nmicro,dtime,appel_chim,dtimechim,
    10781076     .                   paprs,pplay,delp,t,rmu0,fract,pdecli,zls,
    1079      .                   tr_seri,d_tr_mph,d_tr_kim)
     1077     .                   tr_seri,qaer,d_tr_mph,d_tr_kim)
    10801078
    10811079        if (microfi.eq.1) then
     
    11221120     e            (dist, rmu0, fract, dtimerad, zzlev,
    11231121     e             paprs, pplay,ftsol, t_seri, nqmax, nmicro,
    1124      c             tr_seri,
     1122     c             tr_seri, qaer,
    11251123     s             heat,cool,radsol,
    11261124     s             topsw,toplw,solsw,sollw,
     
    14381436      ENDDO
    14391437c
     1438c incrementation de la tendance (repassee en extensif) sur qaer pour sorties
     1439      if (microfi.eq.1) then
     1440      do iq=1,nmicro
     1441         DO l=1,llm
     1442          DO i = 1, klon
     1443            qaer(i,l,iq) = qaer(i,l,iq) +
     1444     .                (d_tr_mph(i,l,iq)*delp(i,l)/RG)*ptimestep
     1445          ENDDO
     1446         ENDDO
     1447      enddo
     1448      endif   ! microfi
    14401449c=============================================================
    14411450c   Ecriture des sorties
  • trunk/libf/phytitan/phytrac.F

    r102 r104  
    22     .                   nqmax,nmicro,ptimestep,appkim,dtkim,
    33     .                   pplev,pplay,delp,ptemp,pmu0,pfract,pdecli,
    4      .                   lonsol,tr_seri,d_tr_mph,d_tr_kim)
     4     .                   lonsol,tr_seri,qaer,d_tr_mph,d_tr_kim)
    55
    66c======================================================================
     
    4545      REAL pmu0(klon), pfract(klon), pdecli, lonsol
    4646      REAL tr_seri(klon,klev,nqmax)
     47      REAL qaer(klon,klev,nqmax)
    4748      REAL d_tr_mph(klon,klev,nqmax),d_tr_kim(klon,klev,nqmax)
    4849
    4950c======================================================================
    5051c Local variables
    51 
    52 * common relatifs aux aerosols
    53       REAL qaer(klon,klev,nqtot)
    54       common/traceurs/qaer
    5552
    5653c grandeurs en moyennes zonales
     
    6259      REAL pdqmfi(jjm+1,klev,nqmax)
    6360      REAL ychim(jjm+1,klev,nqmax-nmicro)
    64       REAL qysat(klev,nqtot)        ! dim nqtot, mais en fait nqmax-nmicro (save...)
    65       REAL pdyfi(jjm+1,klev,nqtot)  ! dim nqtot, mais en fait nqmax-nmicro (save...)
    66       character*10 nomqy(nqmax-nmicro+1)
    67       integer      i,j,l,iq,ig0
    68 
    6961c La saturation n est calculee qu une seule fois: sauvegarde qysat
    7062c La chimie n est pas calculee tous les pas, il faut donc
    7163c                      sauvegarder les sorties de la chimie
    72 
    73       SAVE pdyfi,qysat 
    74      
    75 c======================================================================
    76 c======================================================================
     64      REAL,save,allocatable :: qysat(:,:),pdyfi(:,:,:)
     65     
     66      character*10 nomqy(nqmax-nmicro+1)
     67      integer      i,j,l,iq,ig0
     68     
     69c======================================================================
     70c======================================================================
     71
     72      if (firstcall) then
     73       allocate(qysat(klev,nqmax-nmicro),pdyfi(jjm+1,klev,nqmax-nmicro))
     74      endif
    7775
    7876c-----------------------------------------------------------------------
     
    349347         DO l=1,llm
    350348          DO i = 1, klon
    351 c incrementation de la tendance sur qaer (pour sorties dans physiq.F)
    352             qaer(i,l,iq) = qaer(i,l,iq) + d_tr_mph(i,l,iq)*ptimestep
    353349c  Traceurs microphysiques: passage en intensif: n/m^2 --> n/kg
    354350            d_tr_mph(i,l,iq) = d_tr_mph(i,l,iq)*RG/delp(i,l)
  • trunk/libf/phytitan/radlwsw.F

    r102 r104  
    11      SUBROUTINE radlwsw(dist, rmu0, fract, dtimerad, zzlev,
    22     .                  paprs, pplay,tsol, pt, nq, nmicro, pq,
     3     .                  qaer,
    34     .                  heat,cool,radsol,
    45     .                  topsw,toplw,solsw,sollw,
     
    5354      real pt(klon,klev)
    5455      real pq(klon,klev,nq)
     56      REAL qaer(klon,klev,nq)
    5557      real heat(klon,klev), cool(klon,klev)
    5658      real radsol(klon), topsw(klon), toplw(klon)
     
    6668      REAL zswnet(klon,kflev+1),zlwnet(klon,kflev+1)
    6769     
    68 * common relatifs aux aerosols
    69       REAL qaer(klon,klev,nqtot)
    70       common/traceurs/qaer
    71      
    7270
    7371c =======================================
     
    117115      print*,'On calcule les opacites'
    118116
    119          CALL radtitan(zp,nq,nmicro,zq)
     117         CALL radtitan(zp,nq,nmicro,zq,qaer)
    120118
    121119c =======================================
  • trunk/libf/phytitan/radtitan.F

    r102 r104  
    1        SUBROUTINE RADTITAN(p,nq,nmicro,ycomp)
     1       SUBROUTINE RADTITAN(p,nq,nmicro,ycomp,qaer)
    22
    33c=======================================================================
     
    4949      PARAMETER (NSPECI=46,NSPC1I=47,NSPECV=24,NSPC1V=25)
    5050      PARAMETER (NSPV=21)  ! LDO POUR CALCUL ALBEDO
     51
     52c
     53c  ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX
     54      INTEGER   ngrid
     55      PARAMETER (ngrid=(jjm-1)*iim+2)  ! = klon
    5156c
    5257
     
    5863      REAL p(klon,nlevel)
    5964      REAL ycomp(klon,nlayer,nq)
     65      REAL qaer(klon,klev,nq)
    6066
    6167c   Local:
     
    6874      data notfirstcall/.false./
    6975
    70       REAL emu,somcoslat,coslat(klon)
     76      REAL emu,somcoslat,coslat(ngrid)
    7177 
    7278      REAL PCH4, effg,FH2L,RHCH4L,SSUM    ! effg est une fonction(z)
     
    7581c   ---------------------------------------------
    7682
    77       REAL DTAUP(klon,NLAYER,NSPECI)
     83      REAL DTAUP(ngrid,NLAYER,NSPECI)
    7884      REAL UBARI,UBARV,UBAR0
    7985      REAL DZED(NLAYER)
     
    9096      REAL  RADCLD(NLAYER), XNCLD(NLAYER),RCLDI(NSPECI),  XICLDI(NSPECI)
    9197      REAL  RCLDV(NSPECV),  XICLDV(NSPECV)
    92       REAL  TAUHI(klon,NSPECI),TAUCI(klon,NSPECI)
    93       REAL  TAUGI(klon,NSPECI), TAUGV(klon,NSPECV)
    94       REAL  TAURV(klon,NSPECV),TAUHV(klon,NSPECV)
    95       REAL  TAUCV(klon,NSPECV)
    96 c
    97       REAL  DTAUI(klon,NLAYER,NSPECI)
    98       REAL  TAUI(klon,NLEVEL,NSPECI)
    99       REAL  WBARI(klon,NLAYER,NSPECI)
    100       REAL  COSBI(klon,NLAYER,NSPECI)
     98      REAL  TAUHI(ngrid,NSPECI),TAUCI(ngrid,NSPECI)
     99      REAL  TAUGI(ngrid,NSPECI), TAUGV(ngrid,NSPECV)
     100      REAL  TAURV(ngrid,NSPECV),TAUHV(ngrid,NSPECV)
     101      REAL  TAUCV(ngrid,NSPECV)
     102c
     103      REAL  DTAUI(ngrid,NLAYER,NSPECI)
     104      REAL  TAUI(ngrid,NLEVEL,NSPECI)
     105      REAL  WBARI(ngrid,NLAYER,NSPECI)
     106      REAL  COSBI(ngrid,NLAYER,NSPECI)
    101107      REAL  BWNI(NSPC1I),WNOI(NSPECI)
    102108      REAL  WLNI(NSPECI),DWNI(NSPECI)
    103109c
    104       REAL DTAUV(klon,NLAYER,NSPECV,4)
    105       REAL TAUV(klon,NLEVEL,NSPECV,4)
    106       REAL WBARV(klon,NLAYER,NSPECV,4)
    107       REAL COSBV(klon,NLAYER,NSPECV,4)
     110      REAL DTAUV(ngrid,NLAYER,NSPECV,4)
     111      REAL TAUV(ngrid,NLEVEL,NSPECV,4)
     112      REAL WBARV(ngrid,NLAYER,NSPECV,4)
     113      REAL COSBV(ngrid,NLAYER,NSPECV,4)
    108114      REAL BWNV(NSPC1V), WNOV(NSPECV),DWNV(NSPECV), WLNV(NSPECV)
    109       REAL FNETV(klon,NLEVEL),FUPV(klon,NLEVEL,NSPECV) 
    110       REAL FDV(klon,NLEVEL,NSPECV),FMNETV(klon,NLEVEL)
     115      REAL FNETV(ngrid,NLEVEL),FUPV(ngrid,NLEVEL,NSPECV) 
     116      REAL FDV(ngrid,NLEVEL,NSPECV),FMNETV(ngrid,NLEVEL)
    111117      REAL FMUPV(NLEVEL),FMDV(NLEVEL)
    112       REAL FNET(klon,NLEVEL),FMNET(klon,NLEVEL)
    113       REAL THEAT(klon,NLAYER)
     118      REAL FNET(ngrid,NLEVEL),FMNET(ngrid,NLEVEL)
     119      REAL THEAT(ngrid,NLAYER)
    114120      REAL CSUBP,RSFI,RSFV,F0PI
    115121      REAL  RHCH4,FH2,FHAZE,FHVIS,FHIR,TAUFAC,RCLOUD,FARGON
     
    195201      COMMON /IO/ TIDAL
    196202
    197 * common relatifs aux aerosols 
    198203* nrad dans microtab.h
    199       REAL qaer(klon,nlayer,nqtot),volume(nrad),rayon(nrad),vrat,
     204      REAL volume(nrad),rayon(nrad),vrat,
    200205     &      drayon(nrad),dvolume(nrad)
    201206
    202       common/traceurs/qaer
    203207      common/part/volume,rayon,vrat,
    204208     &      drayon,dvolume
     
    359363      print*,'aerosol/gas/cloud properties'
    360364
    361       CALL OPTCI(ycomp,nmicro,IPRINT)        ! #1
     365      CALL OPTCI(ycomp,qaer,nmicro,IPRINT)        ! #1
    362366      print*,'On sort de optci'
    363367
     
    374378C  INFRARED. AND THEN IN THE VISIBLE.
    375379
    376         CALL OPTCV(nmicro,IPRINT)        ! #2
     380        CALL OPTCV(qaer,nmicro,IPRINT)        ! #2
    377381
    378382        do j=1,NLAYER
     
    394398      IF(notfirstcall)    THEN  !F au 1er appel   T aux autres appels!!
    395399       print*,'aerosol/gas/cloud properties'
    396        CALL OPTCI(ycomp,nmicro,IPRINT)        ! #1
     400       CALL OPTCI(ycomp,qaer,nmicro,IPRINT)        ! #1
    397401        DO  IG=1,klon
    398402         DO  J=1,NLAYER
     
    410414      IF(notfirstcall)    THEN  !F au 1er appel   T aux autres appels!!
    411415       print*,'aerosol/gas/cloud properties'
    412        CALL OPTCV(nmicro,IPRINT)        ! #2
     416       CALL OPTCV(qaer,nmicro,IPRINT)        ! #2
    413417      ENDIF
    414418      ENDIF
  • trunk/libf/phytitan/sfluxv.F

    r102 r104  
    66#include "comorbit.h"
    77
     8c  ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX
     9      INTEGER   ngrid
     10      PARAMETER (ngrid=(jjm-1)*iim+2)  ! = klon
     11c
    812      INTEGER NLAYER,NLEVEL,NSPECV,NSPC1V
    913      PARAMETER (NLAYER=llm,NLEVEL=NLAYER+1)
     
    1620      REAL ATERM(4,NSPECV),BTERM(4,NSPECV)
    1721      REAL PEXPON(NSPECV), SOLARF(NSPECV)
    18       REAL  DTAUV(klon,NLAYER,NSPECV,4)
    19      &     ,TAUV (klon,NLEVEL,NSPECV,4)
    20      &     ,WBARV(klon,NLAYER,NSPECV,4)
    21      &     ,COSBV(klon,NLAYER,NSPECV,4)
     22      REAL  DTAUV(ngrid,NLAYER,NSPECV,4)
     23     &     ,TAUV (ngrid,NLEVEL,NSPECV,4)
     24     &     ,WBARV(ngrid,NLAYER,NSPECV,4)
     25     &     ,COSBV(ngrid,NLAYER,NSPECV,4)
    2226      REAL BWNV(NSPC1V),WNOV(NSPECV)
    2327     &     ,DWNV(NSPECV),WLNV(NSPECV)
    24       REAL  FNETV(klon,NLEVEL),     
    25      &      FUPV(klon,NLEVEL,NSPECV),
    26      &      FDV(klon,NLEVEL,NSPECV),
    27      &      FMNETV(klon,NLEVEL),
     28      REAL  FNETV(ngrid,NLEVEL),     
     29     &      FUPV(ngrid,NLEVEL,NSPECV),
     30     &      FDV(ngrid,NLEVEL,NSPECV),
     31     &      FMNETV(ngrid,NLEVEL),
    2832     &      FMUPV(NLEVEL),FMDV(NLEVEL)
    2933      REAL CSUBP,RSFI,RSFV,F0PI
  • trunk/makelmdz

    r101 r104  
    8888PARA_LD=""
    8989EXT_SRC=""
     90ccompiler=""
     91OPTIMC=""
     92INCLUDEC=""
    9093
    9194########################################################################
     
    106109[-c false/MPI1/MPI2]       : couple ocean : MPI1/MPI2/false (def: false)
    107110[-v false/true]            : avec ou sans vegetation (def: false)
    108 [-chimie INCA/false]       : avec ou sans model de chimie INCA (def: false)
     111[-chimie INCA/false]       : avec ou sans modele de chimie INCA (def: false)
    109112[-parallel none/mpi/omp/mpi_omp] : parallelisation (default: none) : mpi, openmp ou mixte mpi_openmp
    110113[-g GRI]                   : conf. grille dans dyn3d/GRI_xy.h  (def: reg inclue un zoom)
     
    282285fi
    283286
     287######### CAS PARTICULIER CHIMIE TITAN
     288if [[ "$physique" == "titan" ]]
     289then
     290   INCLUDE="$INCLUDE"' -I$(LIBF)/chim'"$physique"
     291   LIB="$LIB -l${LIBPREFIX}chim$physique"
     292   opt_dep="$opt_dep chim$physique"
     293# get C compiler name and optim from arch.fcm file
     294   archfileline=$( grep -i '^%C_COMPILER' arch.fcm )
     295   ccompiler=$( echo ${archfileline##%C_COMPILER} )
     296   archfileline=$( grep -i '^%C_OPTIM' arch.fcm )
     297   coptim=$( echo ${archfileline##%C_OPTIM} )
     298   OPTIMC="$OPTIMC  ${coptim}"
     299   INCLUDEC='-I$(LIBF)/grid -I.'
     300fi
     301#########
     302
    284303if [[ "$chimie" == "INCA" ]]
    285304then
     
    479498find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print > tmp90
    480499find libf -name '*.[Fh90]' -print >> tmp90
     500######### CAS PARTICULIER CHIMIE TITAN
     501if [[ "$physique" == "titan" ]]
     502then
     503  find libf -name '*.[ch]' -print > tmpC
     504fi
     505#########
    481506
    482507if [[ ! ( -r makefile ) || ! ( -r liste_des_sources_f90 ) || ! ( -r liste_des_sources_f77 ) || ` diff tmp77 liste_des_sources_f77 | wc -w ` -ne 0 || ` diff tmp90 liste_des_sources_f90 | wc -w ` -ne 0 ]]
     
    488513  \cp -f tmp77 liste_des_sources_f77
    489514  \cp -f tmp90 liste_des_sources_f90
     515######### CAS PARTICULIER CHIMIE TITAN
     516  if [[ "$physique" == "titan" ]]
     517  then
     518  diff liste_des_sources_C tmpC
     519  \cp -f tmpC liste_des_sources_C
     520  fi
     521#########
    490522  echo "on recree le makefile"
    491523  ./create_make_gcm > tmp
    492524  \mv -f tmp makefile
    493525  echo "Nouveau makefile cree"
     526######### CAS PARTICULIER CHIMIE TITAN
     527else if [[ "$physique" == "titan" ]]
     528 then
     529   if [[ ! ( -r liste_des_sources_C ) || ` diff tmpC liste_des_sources_C | wc -w ` -ne 0 ]]
     530   then
     531     diff liste_des_sources_C tmpC
     532     \cp -f tmpC liste_des_sources_C
     533     echo "on recree le makefile"
     534     ./create_make_gcm > tmp
     535     \mv -f tmp makefile
     536     echo "Nouveau makefile cree"
     537   fi
     538 fi
     539#########
    494540fi
    495541
    496542#################################################################
    497 # Preparation de l'execution de la comande make
     543# Preparation de l'execution de la commande make
    498544#################################################################
    499545
     
    558604OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
    559605OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
     606OPTIMC="$optimc" \
    560607INCLUDE="$INCLUDE" \
     608INCLUDEC="$includec" \
    561609$filtre \
    562610LIBO=${LIBOGCM}/${nomlib} \
     
    570618F77="$fcompiler" \
    571619F90="$fcompiler" \
     620CCC="$ccompiler" \
    572621OPLINK="$LIB" \
    573622LINK="$linker" \
     
    584633OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
    585634OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
     635OPTIMC="$optimc" \
    586636INCLUDE="$INCLUDE" \
     637INCLUDEC="$includec" \
    587638$filtre \
    588639LIBO=${LIBOGCM}/${nomlib} \
     
    596647F77="$fcompiler" \
    597648F90="$fcompiler" \
     649CCC="$ccompiler" \
    598650OPLINK="$LIB" \
    599651LINK="$linker" \
Note: See TracChangeset for help on using the changeset viewer.