Changeset 104
- Timestamp:
- Mar 25, 2011, 4:58:38 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/arch/arch-GNOME.fcm
r59 r104 9 9 %DEV_FFLAGS -O2 10 10 %DEBUG_FFLAGS -O2 11 %C_COMPILER gcc 12 %C_OPTIM -O3 11 13 %MPI_FFLAGS -I/opt/intel/impi/3.2.1.009/include64 12 14 %OMP_FFLAGS -
trunk/arch/arch-SX8_BRODIE.fcm
r1 r104 9 9 %DEV_FFLAGS -C vsafe -gv -Wf,-init stack=nan,-init heap=nan 10 10 %DEBUG_FFLAGS -C debug -eR -Wf,-init stack=nan,-init heap=nan 11 %C_COMPILER sxcc 12 %C_OPTIM -O 11 13 %MPI_FFLAGS 12 14 %OMP_FFLAGS -P openmp -
trunk/arch/arch-g95.fcm
r1 r104 9 9 %DEV_FFLAGS -O 10 10 %DEBUG_FFLAGS -fbounds-check -freal=nan -ftrace=full -g -O0 -Wall 11 %C_COMPILER gcc 12 %C_OPTIM -O3 11 13 %MPI_FFLAGS 12 14 %OMP_FFLAGS -
trunk/arch/arch-linux-64bit.fcm
r37 r104 9 9 %DEV_FFLAGS -g -O1 10 10 %DEBUG_FFLAGS -g -O0 -Kieee -Ktrap=fp -Mbounds 11 %C_COMPILER gcc 12 %C_OPTIM -O3 11 13 %MPI_FFLAGS 12 14 %OMP_FFLAGS -
trunk/chantiers/commit_importants.log
r103 r104 722 722 - sponge layer 723 723 724 ********************* 725 **** commit_v104 **** 726 ********************* 727 728 SLebonnois: modification de makelmdz et create_make_gcm pour pouvoir 729 compiler la chimie titan. Pas de raison que ca gene les autres. 730 Dans cette version, les compilations de Venus et Titan fonctionnent. 731 732 Phytitan: modifications pour pouvoir compiler correctement. 733 Il ne manque plus que physiq.F a faire. 734 -
trunk/create_make_gcm
r66 r104 82 82 echo 83 83 echo 84 echo '#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 85 echo '# Option de compilation C' 86 echo '#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 87 echo 88 echo 'COMPILEC = $(CCC) $(OPTIMC) $(INCLUDEC) -c' 89 echo 90 echo 84 91 echo "#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" 85 92 echo "# Creation des differents executables" … … 110 117 echo 'cosp : $(LIBO)/libcosp.a' 111 118 echo 119 echo 'chimtitan : $(LIBO)/libchimtitan.a' 120 echo 112 121 echo '$(FILTRE)3d : $(LIBO)/lib$(FILTRE).a' 113 122 echo … … 229 238 # 230 239 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 ############################## 232 307 fi 233 308 fi -
trunk/libf/chimtitan/tractitan.c
r3 r104 2 2 /* GCCM */ 3 3 4 #include "t rac.h"4 #include "titan.h" 5 5 6 6 void tractitan_( double *RB, char CORPS[][10], double Y[][NLEV], -
trunk/libf/phytitan/calchim.F
r102 r104 35 35 REAL cplev(jjm+1,klev) ! pression intercouches (Pa) 36 36 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 38 38 39 39 c Local variables : … … 67 67 REAL botCH4 68 68 DATA botCH4/0.05/ 69 REAL krpd(15,ND+1,klev,jjm+1),krate(klev,NR)69 REAL,save,allocatable :: krpd(:,:,:,:),krate(:,:) 70 70 integer reactif(5,NR),nom_prod(NC),nom_perte(NC) 71 71 integer prod(200,NC),perte(2,200,NC) 72 72 SAVE mass,tablefluxtop,botCH4 73 SAVE krpd,krate74 73 SAVE reactif,nom_prod,nom_perte,prod,perte 75 74 … … 90 89 c pour les routines de la chimie. 91 90 c ************************************ 91 92 allocate(krpd(15,ND+1,klev,jjm+1),krate(klev,NR)) 92 93 93 94 c Verification dimension verticale: coherence titan_for.h et klev -
trunk/libf/phytitan/clesphys.h
r97 r104 7 7 !..include cles_phys.h 8 8 ! 9 LOGICAL cycle_diurne,soil_model ,ok_orodr,ok_orolf9 LOGICAL cycle_diurne,soil_model 10 10 LOGICAL ok_orodr,ok_orolf,ok_gw_nonoro 11 11 INTEGER nbapp_rad, nbapp_chim, iflag_con, iflag_ajs -
trunk/libf/phytitan/cooling.F
r102 r104 59 59 PARAMETER (NSPECI=46,NSPC1I=47) 60 60 61 c ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX 62 INTEGER ngrid 63 PARAMETER (ngrid=(jjm-1)*iim+2) ! = klon 64 c 61 65 c Arguments: 62 66 c ---------- … … 73 77 74 78 C DTAU IS PASSED EN-MASS, SO ITS DEMENSIONS ARE CRITICAL 75 COMMON /IRTAUS/ DTAUI( klon,NLAYER,NSPECI)79 COMMON /IRTAUS/ DTAUI(ngrid,NLAYER,NSPECI) 76 80 REAL dtaui 77 81 … … 80 84 81 85 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) 84 88 REAL DW,WAVEN,TJ,BSURF,QOUT,QIN,eff_g,COLDEN 85 89 -
trunk/libf/phytitan/heating.F
r102 r104 36 36 PARAMETER (NSPECV=24) 37 37 c 38 c ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX 39 INTEGER ngrid 40 PARAMETER (ngrid=(jjm-1)*iim+2) ! = klon 41 c 38 42 39 43 c Arguments: … … 57 61 REAL CH4(NLEVEL),XN2(NLEVEL),H2(NLEVEL),AR(NLEVEL) 58 62 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) 61 65 REAL CSUBP,RSFI,RSFV,F0PI 62 66 -
trunk/libf/phytitan/optci.F
r102 r104 1 SUBROUTINE OPTCI(ykim, nmicro,IPRINT)1 SUBROUTINE OPTCI(ykim,qaer,nmicro,IPRINT) 2 2 use dimphy 3 3 #include "dimensions.h" … … 9 9 c --------- 10 10 REAL ykim(klon,klev,nqtot) 11 real qaer(klon,nlayer,nqtot) 11 12 integer nmicro 12 13 c --------- 13 14 15 c ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX 16 INTEGER ngrid 17 PARAMETER (ngrid=(jjm-1)*iim+2) ! = klon 18 c 14 19 PARAMETER(NLAYER=llm,NLEVEL=NLAYER+1) 15 20 PARAMETER (NSPECI=46,NSPC1I=47,NSPECV=24,NSPC1V=25) … … 29 34 & , RCLDI(NSPECI), XICLDI(NSPECI), RCLDV(NSPECV), XICLDV(NSPECV) 30 35 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) 46 51 47 52 COMMON /SPECTI/ BWNI(NSPC1I), WNOI(NSPECI), … … 51 56 COMMON /ADJUST/ RHCH4,FH2,FHAZE,FHVIS,FHIR,TAUFAC,RCLOUD,FARGON 52 57 COMMON /CONST/RGAS,RHOP,PI,SIGMA 53 COMMON /traceurs/qaer54 58 COMMON /part/v,rayon,vrat,dr,dv 55 59 56 60 DIMENSION PROD(NLEVEL) 57 61 * nrad dans microtab.h 58 real qaer(klon,nlayer,nqtot)59 62 real v(nrad),rayon(nrad),vrat,dr(nrad),dv(nrad) 60 63 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) 2 2 3 3 … … 9 9 c Argument: 10 10 c --------- 11 REAL qaer(klon,nlayer,nqtot) 11 12 integer nmicro 12 13 c --------- 13 14 15 c ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX 16 INTEGER ngrid 17 PARAMETER (ngrid=(jjm-1)*iim+2) ! = klon 18 c 14 19 PARAMETER(NLAYER=llm,NLEVEL=NLAYER+1) 15 20 PARAMETER (NSPECI=46,NSPC1I=47,NSPECV=24,NSPC1V=25) … … 30 35 & , RCLDV(NSPECV), XICLDV(NSPECV) 31 36 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) 46 51 47 52 COMMON /SPECTV/ BWNV(NSPC1V),WNOV(NSPECV) … … 51 56 COMMON /ADJUST/ RHCH4,FH2,FHAZE,FHVIS,FHIR,TAUFAC,RCLOUD,FARGON 52 57 COMMON /CONST/ RGAS,RHOP,PI,SIGMA 53 COMMON /traceurs/qaer(klon,nlayer,nqtot)54 58 COMMON /part/ v(nrad),rayon(nrad),vrat,dr(nrad),dv(nrad) 55 59 -
trunk/libf/phytitan/pg2.F
r102 r104 51 51 52 52 53 parameter (NG=jjm+1 ,NL=klev) ! NG: on travaille en moyenne zonale53 parameter (NG=jjm+1) ! NG: on travaille en moyenne zonale 54 54 55 55 c************************************* … … 68 68 real mu0(ng),fract(ng) 69 69 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) 76 76 & ,qcumul(NG,0:200,nq) 77 77 -
trunk/libf/phytitan/physiq.F
r102 r104 253 253 REAL yv1(klon) ! vents dans la premiere couche V 254 254 character*8 nom 255 * common relatifs aux aerosols256 255 REAL qaer(klon,klev,nqmax) 257 common/traceurs/qaer258 256 259 257 REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee … … 1055 1053 1056 1054 c 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 sorties1055 c on recupere aussi qaer pour le mettre dans les sorties 1058 1056 c si microfi=1, sortie de qaer(1:nmicro) 1059 1057 c si nmicro != nqmax et si chimi, sortie de tr_seri(nmicro+1:nqmax) … … 1077 1075 . nqmax,nmicro,dtime,appel_chim,dtimechim, 1078 1076 . 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) 1080 1078 1081 1079 if (microfi.eq.1) then … … 1122 1120 e (dist, rmu0, fract, dtimerad, zzlev, 1123 1121 e paprs, pplay,ftsol, t_seri, nqmax, nmicro, 1124 c tr_seri, 1122 c tr_seri, qaer, 1125 1123 s heat,cool,radsol, 1126 1124 s topsw,toplw,solsw,sollw, … … 1438 1436 ENDDO 1439 1437 c 1438 c 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 1440 1449 c============================================================= 1441 1450 c Ecriture des sorties -
trunk/libf/phytitan/phytrac.F
r102 r104 2 2 . nqmax,nmicro,ptimestep,appkim,dtkim, 3 3 . 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) 5 5 6 6 c====================================================================== … … 45 45 REAL pmu0(klon), pfract(klon), pdecli, lonsol 46 46 REAL tr_seri(klon,klev,nqmax) 47 REAL qaer(klon,klev,nqmax) 47 48 REAL d_tr_mph(klon,klev,nqmax),d_tr_kim(klon,klev,nqmax) 48 49 49 50 c====================================================================== 50 51 c Local variables 51 52 * common relatifs aux aerosols53 REAL qaer(klon,klev,nqtot)54 common/traceurs/qaer55 52 56 53 c grandeurs en moyennes zonales … … 62 59 REAL pdqmfi(jjm+1,klev,nqmax) 63 60 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,ig068 69 61 c La saturation n est calculee qu une seule fois: sauvegarde qysat 70 62 c La chimie n est pas calculee tous les pas, il faut donc 71 63 c 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 69 c====================================================================== 70 c====================================================================== 71 72 if (firstcall) then 73 allocate(qysat(klev,nqmax-nmicro),pdyfi(jjm+1,klev,nqmax-nmicro)) 74 endif 77 75 78 76 c----------------------------------------------------------------------- … … 349 347 DO l=1,llm 350 348 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)*ptimestep353 349 c Traceurs microphysiques: passage en intensif: n/m^2 --> n/kg 354 350 d_tr_mph(i,l,iq) = d_tr_mph(i,l,iq)*RG/delp(i,l) -
trunk/libf/phytitan/radlwsw.F
r102 r104 1 1 SUBROUTINE radlwsw(dist, rmu0, fract, dtimerad, zzlev, 2 2 . paprs, pplay,tsol, pt, nq, nmicro, pq, 3 . qaer, 3 4 . heat,cool,radsol, 4 5 . topsw,toplw,solsw,sollw, … … 53 54 real pt(klon,klev) 54 55 real pq(klon,klev,nq) 56 REAL qaer(klon,klev,nq) 55 57 real heat(klon,klev), cool(klon,klev) 56 58 real radsol(klon), topsw(klon), toplw(klon) … … 66 68 REAL zswnet(klon,kflev+1),zlwnet(klon,kflev+1) 67 69 68 * common relatifs aux aerosols69 REAL qaer(klon,klev,nqtot)70 common/traceurs/qaer71 72 70 73 71 c ======================================= … … 117 115 print*,'On calcule les opacites' 118 116 119 CALL radtitan(zp,nq,nmicro,zq )117 CALL radtitan(zp,nq,nmicro,zq,qaer) 120 118 121 119 c ======================================= -
trunk/libf/phytitan/radtitan.F
r102 r104 1 SUBROUTINE RADTITAN(p,nq,nmicro,ycomp )1 SUBROUTINE RADTITAN(p,nq,nmicro,ycomp,qaer) 2 2 3 3 c======================================================================= … … 49 49 PARAMETER (NSPECI=46,NSPC1I=47,NSPECV=24,NSPC1V=25) 50 50 PARAMETER (NSPV=21) ! LDO POUR CALCUL ALBEDO 51 52 c 53 c ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX 54 INTEGER ngrid 55 PARAMETER (ngrid=(jjm-1)*iim+2) ! = klon 51 56 c 52 57 … … 58 63 REAL p(klon,nlevel) 59 64 REAL ycomp(klon,nlayer,nq) 65 REAL qaer(klon,klev,nq) 60 66 61 67 c Local: … … 68 74 data notfirstcall/.false./ 69 75 70 REAL emu,somcoslat,coslat( klon)76 REAL emu,somcoslat,coslat(ngrid) 71 77 72 78 REAL PCH4, effg,FH2L,RHCH4L,SSUM ! effg est une fonction(z) … … 75 81 c --------------------------------------------- 76 82 77 REAL DTAUP( klon,NLAYER,NSPECI)83 REAL DTAUP(ngrid,NLAYER,NSPECI) 78 84 REAL UBARI,UBARV,UBAR0 79 85 REAL DZED(NLAYER) … … 90 96 REAL RADCLD(NLAYER), XNCLD(NLAYER),RCLDI(NSPECI), XICLDI(NSPECI) 91 97 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) 102 c 103 REAL DTAUI(ngrid,NLAYER,NSPECI) 104 REAL TAUI(ngrid,NLEVEL,NSPECI) 105 REAL WBARI(ngrid,NLAYER,NSPECI) 106 REAL COSBI(ngrid,NLAYER,NSPECI) 101 107 REAL BWNI(NSPC1I),WNOI(NSPECI) 102 108 REAL WLNI(NSPECI),DWNI(NSPECI) 103 109 c 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) 108 114 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) 111 117 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) 114 120 REAL CSUBP,RSFI,RSFV,F0PI 115 121 REAL RHCH4,FH2,FHAZE,FHVIS,FHIR,TAUFAC,RCLOUD,FARGON … … 195 201 COMMON /IO/ TIDAL 196 202 197 * common relatifs aux aerosols198 203 * nrad dans microtab.h 199 REAL qaer(klon,nlayer,nqtot),volume(nrad),rayon(nrad),vrat,204 REAL volume(nrad),rayon(nrad),vrat, 200 205 & drayon(nrad),dvolume(nrad) 201 206 202 common/traceurs/qaer203 207 common/part/volume,rayon,vrat, 204 208 & drayon,dvolume … … 359 363 print*,'aerosol/gas/cloud properties' 360 364 361 CALL OPTCI(ycomp, nmicro,IPRINT) ! #1365 CALL OPTCI(ycomp,qaer,nmicro,IPRINT) ! #1 362 366 print*,'On sort de optci' 363 367 … … 374 378 C INFRARED. AND THEN IN THE VISIBLE. 375 379 376 CALL OPTCV( nmicro,IPRINT) ! #2380 CALL OPTCV(qaer,nmicro,IPRINT) ! #2 377 381 378 382 do j=1,NLAYER … … 394 398 IF(notfirstcall) THEN !F au 1er appel T aux autres appels!! 395 399 print*,'aerosol/gas/cloud properties' 396 CALL OPTCI(ycomp, nmicro,IPRINT) ! #1400 CALL OPTCI(ycomp,qaer,nmicro,IPRINT) ! #1 397 401 DO IG=1,klon 398 402 DO J=1,NLAYER … … 410 414 IF(notfirstcall) THEN !F au 1er appel T aux autres appels!! 411 415 print*,'aerosol/gas/cloud properties' 412 CALL OPTCV( nmicro,IPRINT) ! #2416 CALL OPTCV(qaer,nmicro,IPRINT) ! #2 413 417 ENDIF 414 418 ENDIF -
trunk/libf/phytitan/sfluxv.F
r102 r104 6 6 #include "comorbit.h" 7 7 8 c ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX 9 INTEGER ngrid 10 PARAMETER (ngrid=(jjm-1)*iim+2) ! = klon 11 c 8 12 INTEGER NLAYER,NLEVEL,NSPECV,NSPC1V 9 13 PARAMETER (NLAYER=llm,NLEVEL=NLAYER+1) … … 16 20 REAL ATERM(4,NSPECV),BTERM(4,NSPECV) 17 21 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) 22 26 REAL BWNV(NSPC1V),WNOV(NSPECV) 23 27 & ,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), 28 32 & FMUPV(NLEVEL),FMDV(NLEVEL) 29 33 REAL CSUBP,RSFI,RSFV,F0PI -
trunk/makelmdz
r101 r104 88 88 PARA_LD="" 89 89 EXT_SRC="" 90 ccompiler="" 91 OPTIMC="" 92 INCLUDEC="" 90 93 91 94 ######################################################################## … … 106 109 [-c false/MPI1/MPI2] : couple ocean : MPI1/MPI2/false (def: false) 107 110 [-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) 109 112 [-parallel none/mpi/omp/mpi_omp] : parallelisation (default: none) : mpi, openmp ou mixte mpi_openmp 110 113 [-g GRI] : conf. grille dans dyn3d/GRI_xy.h (def: reg inclue un zoom) … … 282 285 fi 283 286 287 ######### CAS PARTICULIER CHIMIE TITAN 288 if [[ "$physique" == "titan" ]] 289 then 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.' 300 fi 301 ######### 302 284 303 if [[ "$chimie" == "INCA" ]] 285 304 then … … 479 498 find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print > tmp90 480 499 find libf -name '*.[Fh90]' -print >> tmp90 500 ######### CAS PARTICULIER CHIMIE TITAN 501 if [[ "$physique" == "titan" ]] 502 then 503 find libf -name '*.[ch]' -print > tmpC 504 fi 505 ######### 481 506 482 507 if [[ ! ( -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 ]] … … 488 513 \cp -f tmp77 liste_des_sources_f77 489 514 \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 ######### 490 522 echo "on recree le makefile" 491 523 ./create_make_gcm > tmp 492 524 \mv -f tmp makefile 493 525 echo "Nouveau makefile cree" 526 ######### CAS PARTICULIER CHIMIE TITAN 527 else 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 ######### 494 540 fi 495 541 496 542 ################################################################# 497 # Preparation de l'execution de la com ande make543 # Preparation de l'execution de la commande make 498 544 ################################################################# 499 545 … … 558 604 OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \ 559 605 OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \ 606 OPTIMC="$optimc" \ 560 607 INCLUDE="$INCLUDE" \ 608 INCLUDEC="$includec" \ 561 609 $filtre \ 562 610 LIBO=${LIBOGCM}/${nomlib} \ … … 570 618 F77="$fcompiler" \ 571 619 F90="$fcompiler" \ 620 CCC="$ccompiler" \ 572 621 OPLINK="$LIB" \ 573 622 LINK="$linker" \ … … 584 633 OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \ 585 634 OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \ 635 OPTIMC="$optimc" \ 586 636 INCLUDE="$INCLUDE" \ 637 INCLUDEC="$includec" \ 587 638 $filtre \ 588 639 LIBO=${LIBOGCM}/${nomlib} \ … … 596 647 F77="$fcompiler" \ 597 648 F90="$fcompiler" \ 649 CCC="$ccompiler" \ 598 650 OPLINK="$LIB" \ 599 651 LINK="$linker" \
Note: See TracChangeset
for help on using the changeset viewer.