Changeset 845 for LMDZ4/branches/LMDZ4_V3_patches
- Timestamp:
- Sep 14, 2007, 4:01:10 PM (17 years ago)
- Location:
- LMDZ4/branches/LMDZ4_V3_patches
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4_V3_patches/bld.cfg
r808 r845 68 68 bld::excl_dep use::ioipsl 69 69 bld::excl_dep use::intersurf 70 bld::excl_dep use::mod_prism_proto 71 bld::excl_dep use::mod_prism_def_partition_proto 72 bld::excl_dep use::mod_prism_get_proto 73 bld::excl_dep use::mod_prism_put_proto 70 74 71 75 # Don't generate interface files -
LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/create_etat0_limit.F
r844 r845 28 28 #include "paramet.h" 29 29 #include "indicesol.h" 30 #include "advtrac.h" 30 31 cym#include "dimphy.h" 31 32 REAL :: masque(iip1,jjp1) 32 33 REAL :: pctsrf(iim*(jjm-1)+2, nbsrf) 34 35 c initialisation traceurs 36 hadv_flg(:) = 0. 37 vadv_flg(:) = 0. 38 conv_flg(:) = 0. 39 pbl_flg(:) = 0. 40 tracnam(:) = ' ' 41 nprath = 1 42 nbtrac = 0 43 mmt_adj(:,:,:,:) = 1 44 45 #ifdef INCA 46 call init_const_lmdz(nbtrac,anneeref,dayref,iphysiq,day_step,nday) 47 print *, 'nbtrac =' , nbtrac 48 #endif 33 49 34 50 CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2) -
LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/dynredem.F
r844 r845 530 530 531 531 REAL time 532 INTEGER nid, nvarid 533 INTEGER ierr 532 INTEGER nid, nvarid, nid_trac, nvarid_trac 533 REAL trac_tmp(ip1jmp1,llm) 534 INTEGER ierr, ierr_file 534 535 INTEGER iq 535 536 INTEGER length … … 622 623 #endif 623 624 625 #ifdef INCA 626 ! Ajout Anne pour lecture valeurs traceurs dans un fichier start_trac.nc 627 ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac) 628 IF (ierr_file .NE.NF_NOERR) THEN 629 write(6,*)' Pb d''ouverture du fichier start_trac.nc' 630 write(6,*)' ierr = ', ierr_file 631 ENDIF 632 #endif 633 624 634 IF(nq.GE.1) THEN 625 do iq=1,nq 635 do iq=1,nq 636 #ifdef INCA 637 ! lecture de la valeur du traceur dans start_trac.nc 638 if (ierr_file .ne. 2) then 639 ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac) 640 IF (ierr .NE. NF_NOERR) THEN 641 PRINT*, tname(iq),"est absent de start_trac.nc" 642 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 643 IF (ierr .NE. NF_NOERR) THEN 644 PRINT*, "Variable ", tname(iq)," n est pas definie" 645 CALL abort 646 ENDIF 647 #ifdef NC_DOUBLE 648 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq)) 649 #else 650 ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq)) 651 #endif 652 653 ELSE 654 PRINT*, tname(iq), "est present dans start_trac.nc" 655 #ifdef NC_DOUBLE 656 ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp) 657 #else 658 ierr = NF_GET_VAR_REAL(nid_trac, nvarid_trac, trac_tmp) 659 #endif 660 IF (ierr .NE. NF_NOERR) THEN 661 PRINT*, "Lecture echouee pour", tname(iq) 662 CALL abort 663 ENDIF 664 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 665 IF (ierr .NE. NF_NOERR) THEN 666 PRINT*, "Variable ", tname(iq)," n est pas definie" 667 CALL abort 668 ENDIF 669 #ifdef NC_DOUBLE 670 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,trac_tmp) 671 #else 672 ierr = NF_PUT_VAR_REAL (nid,nvarid,trac_tmp) 673 #endif 674 675 ENDIF 676 ! fin lecture du traceur 677 ELSE ! si il n'y a pas de fichier start_trac.nc 678 ! print *, 'il n y a pas de fichier start_trac' 679 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 680 IF (ierr .NE. NF_NOERR) THEN 681 PRINT*, "Variable tname(iq) n est pas definie" 682 CALL abort 683 ENDIF 684 #ifdef NC_DOUBLE 685 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq)) 686 #else 687 ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq)) 688 #endif 689 ENDIF 690 ! endif ifdef INCA 691 #endif 692 693 #ifndef INCA 626 694 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 627 695 IF (ierr .NE. NF_NOERR) THEN … … 634 702 ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq)) 635 703 #endif 704 ! endif ifndef INCA 705 #endif 636 706 ENDDO 637 707 ENDIF -
LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/leapfrog.F
r844 r845 185 185 PARAMETER (testita = 9) 186 186 187 integer itau_w ! pas de temps ecriture = itap + itau_phy 188 189 187 190 itaufin = nday*day_step 188 191 itaufinp1 = itaufin +1 -
LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3d/write_paramLMDZ_dyn.h
r844 r845 1 1 c 2 2 ndex2d = 0 3 itau_ dyn=itau_dyn+itau3 itau_w=itau_dyn+itau 4 4 c 5 5 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(prt_level) 6 CALL histwrite(nid_ctesGCM, "prt_level", itau_ dyn,6 CALL histwrite(nid_ctesGCM, "prt_level", itau_w, 7 7 . zx_tmp_2d,iip1*jjp1,ndex2d) 8 8 c 9 9 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(dayref) 10 CALL histwrite(nid_ctesGCM, "dayref", itau_ dyn,10 CALL histwrite(nid_ctesGCM, "dayref", itau_w, 11 11 . zx_tmp_2d,iip1*jjp1,ndex2d) 12 12 c 13 13 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(anneeref) 14 CALL histwrite(nid_ctesGCM, "anneeref", itau_ dyn,14 CALL histwrite(nid_ctesGCM, "anneeref", itau_w, 15 15 . zx_tmp_2d,iip1*jjp1,ndex2d) 16 16 c 17 17 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(raz_date) 18 CALL histwrite(nid_ctesGCM, "raz_date", itau_ dyn,18 CALL histwrite(nid_ctesGCM, "raz_date", itau_w, 19 19 . zx_tmp_2d,iip1*jjp1,ndex2d) 20 20 c 21 21 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nday) 22 CALL histwrite(nid_ctesGCM, "nday", itau_ dyn,22 CALL histwrite(nid_ctesGCM, "nday", itau_w, 23 23 . zx_tmp_2d,iip1*jjp1,ndex2d) 24 24 c 25 25 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(day_step) 26 CALL histwrite(nid_ctesGCM, "day_step", itau_ dyn,26 CALL histwrite(nid_ctesGCM, "day_step", itau_w, 27 27 . zx_tmp_2d,iip1*jjp1,ndex2d) 28 28 c 29 29 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iperiod) 30 CALL histwrite(nid_ctesGCM, "iperiod", itau_ dyn,30 CALL histwrite(nid_ctesGCM, "iperiod", itau_w, 31 31 . zx_tmp_2d,iip1*jjp1,ndex2d) 32 32 c 33 33 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iapp_tracvl) 34 CALL histwrite(nid_ctesGCM, "iapp_tracvl", itau_ dyn,34 CALL histwrite(nid_ctesGCM, "iapp_tracvl", itau_w, 35 35 . zx_tmp_2d,iip1*jjp1,ndex2d) 36 36 c 37 37 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iconser) 38 CALL histwrite(nid_ctesGCM, "iconser", itau_ dyn,38 CALL histwrite(nid_ctesGCM, "iconser", itau_w, 39 39 . zx_tmp_2d,iip1*jjp1,ndex2d) 40 40 c 41 41 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iecri) 42 CALL histwrite(nid_ctesGCM, "iecri", itau_ dyn,42 CALL histwrite(nid_ctesGCM, "iecri", itau_w, 43 43 . zx_tmp_2d,iip1*jjp1,ndex2d) 44 44 c 45 45 zx_tmp_2d(1:iip1,1:jjp1)=periodav 46 CALL histwrite(nid_ctesGCM, "periodav", itau_ dyn,46 CALL histwrite(nid_ctesGCM, "periodav", itau_w, 47 47 . zx_tmp_2d,iip1*jjp1,ndex2d) 48 48 c 49 49 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(idissip) 50 CALL histwrite(nid_ctesGCM, "idissip", itau_ dyn,50 CALL histwrite(nid_ctesGCM, "idissip", itau_w, 51 51 . zx_tmp_2d,iip1*jjp1,ndex2d) 52 52 c … … 56 56 zx_tmp_2d(1:iip1,1:jjp1)=0. 57 57 ENDIF 58 CALL histwrite(nid_ctesGCM, "lstardis", itau_ dyn,58 CALL histwrite(nid_ctesGCM, "lstardis", itau_w, 59 59 . zx_tmp_2d,iip1*jjp1,ndex2d) 60 60 c 61 61 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nitergdiv) 62 CALL histwrite(nid_ctesGCM, "nitergdiv", itau_ dyn,62 CALL histwrite(nid_ctesGCM, "nitergdiv", itau_w, 63 63 . zx_tmp_2d,iip1*jjp1,ndex2d) 64 64 c 65 65 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nitergrot) 66 CALL histwrite(nid_ctesGCM, "nitergrot", itau_ dyn,66 CALL histwrite(nid_ctesGCM, "nitergrot", itau_w, 67 67 . zx_tmp_2d,iip1*jjp1,ndex2d) 68 68 c 69 69 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(niterh) 70 CALL histwrite(nid_ctesGCM, "niterh", itau_ dyn,70 CALL histwrite(nid_ctesGCM, "niterh", itau_w, 71 71 . zx_tmp_2d,iip1*jjp1,ndex2d) 72 72 c 73 73 zx_tmp_2d(1:iip1,1:jjp1)=tetagdiv 74 CALL histwrite(nid_ctesGCM, "tetagdiv", itau_ dyn,74 CALL histwrite(nid_ctesGCM, "tetagdiv", itau_w, 75 75 . zx_tmp_2d,iip1*jjp1,ndex2d) 76 76 c 77 77 zx_tmp_2d(1:iip1,1:jjp1)=tetagrot 78 CALL histwrite(nid_ctesGCM, "tetagrot", itau_ dyn,78 CALL histwrite(nid_ctesGCM, "tetagrot", itau_w, 79 79 . zx_tmp_2d,iip1*jjp1,ndex2d) 80 80 c 81 81 zx_tmp_2d(1:iip1,1:jjp1)=tetatemp 82 CALL histwrite(nid_ctesGCM, "tetatemp", itau_ dyn,82 CALL histwrite(nid_ctesGCM, "tetatemp", itau_w, 83 83 . zx_tmp_2d,iip1*jjp1,ndex2d) 84 84 c 85 85 zx_tmp_2d(1:iip1,1:jjp1)=coefdis 86 CALL histwrite(nid_ctesGCM, "coefdis", itau_ dyn,86 CALL histwrite(nid_ctesGCM, "coefdis", itau_w, 87 87 . zx_tmp_2d,iip1*jjp1,ndex2d) 88 88 c … … 92 92 zx_tmp_2d(1:iip1,1:jjp1)=0. 93 93 ENDIF 94 CALL histwrite(nid_ctesGCM, "purmats", itau_ dyn,94 CALL histwrite(nid_ctesGCM, "purmats", itau_w, 95 95 . zx_tmp_2d,iip1*jjp1,ndex2d) 96 96 c … … 100 100 zx_tmp_2d(1:iip1,1:jjp1)=0. 101 101 ENDIF 102 CALL histwrite(nid_ctesGCM, "ok_guide", itau_ dyn,102 CALL histwrite(nid_ctesGCM, "ok_guide", itau_w, 103 103 . zx_tmp_2d,iip1*jjp1,ndex2d) 104 104 c … … 108 108 zx_tmp_2d(1:iip1,1:jjp1)=0. 109 109 ENDIF 110 CALL histwrite(nid_ctesGCM, "true_calendar", itau_ dyn,110 CALL histwrite(nid_ctesGCM, "true_calendar", itau_w, 111 111 . zx_tmp_2d,iip1*jjp1,ndex2d) 112 112 c 113 113 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iflag_phys) 114 CALL histwrite(nid_ctesGCM, "iflag_phys", itau_ dyn,114 CALL histwrite(nid_ctesGCM, "iflag_phys", itau_w, 115 115 . zx_tmp_2d,iip1*jjp1,ndex2d) 116 116 c 117 117 zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iphysiq) 118 CALL histwrite(nid_ctesGCM, "iphysiq", itau_ dyn,118 CALL histwrite(nid_ctesGCM, "iphysiq", itau_w, 119 119 . zx_tmp_2d,iip1*jjp1,ndex2d) 120 120 c 121 121 zx_tmp_2d(1:iip1,1:jjp1)=ecritphy 122 CALL histwrite(nid_ctesGCM, "ecritphy", itau_ dyn,122 CALL histwrite(nid_ctesGCM, "ecritphy", itau_w, 123 123 . zx_tmp_2d,iip1*jjp1,ndex2d) 124 124 c … … 128 128 zx_tmp_2d(1:iip1,1:jjp1)=0. 129 129 ENDIF 130 CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_ dyn,130 CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w, 131 131 . zx_tmp_2d,iip1*jjp1,ndex2d) 132 132 c … … 136 136 zx_tmp_2d(1:iip1,1:jjp1)=0. 137 137 ENDIF 138 CALL histwrite(nid_ctesGCM, "soil_model", itau_ dyn,138 CALL histwrite(nid_ctesGCM, "soil_model", itau_w, 139 139 . zx_tmp_2d,iip1*jjp1,ndex2d) 140 140 c … … 144 144 zx_tmp_2d(1:iip1,1:jjp1)=0. 145 145 ENDIF 146 CALL histwrite(nid_ctesGCM, "new_oliq", itau_ dyn,146 CALL histwrite(nid_ctesGCM, "new_oliq", itau_w, 147 147 . zx_tmp_2d,iip1*jjp1,ndex2d) 148 148 c … … 152 152 zx_tmp_2d(1:iip1,1:jjp1)=0. 153 153 ENDIF 154 CALL histwrite(nid_ctesGCM, "ok_orodr", itau_ dyn,154 CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w, 155 155 . zx_tmp_2d,iip1*jjp1,ndex2d) 156 156 c … … 160 160 zx_tmp_2d(1:iip1,1:jjp1)=0. 161 161 ENDIF 162 CALL histwrite(nid_ctesGCM, "ok_orolf", itau_ dyn,162 CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w, 163 163 . zx_tmp_2d,iip1*jjp1,ndex2d) 164 164 c … … 168 168 zx_tmp_2d(1:iip1,1:jjp1)=0. 169 169 ENDIF 170 CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_ dyn,170 CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w, 171 171 . zx_tmp_2d,iip1*jjp1,ndex2d) 172 172 c 173 173 zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad 174 CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_ dyn,174 CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w, 175 175 . zx_tmp_2d,iip1*jjp1,ndex2d) 176 176 c 177 177 zx_tmp_2d(1:iip1,1:jjp1)=iflag_con 178 CALL histwrite(nid_ctesGCM, "iflag_con", itau_ dyn,178 CALL histwrite(nid_ctesGCM, "iflag_con", itau_w, 179 179 . zx_tmp_2d,iip1*jjp1,ndex2d) 180 180 c 181 181 zx_tmp_2d(1:iip1,1:jjp1)=clon 182 CALL histwrite(nid_ctesGCM, "clon", itau_ dyn,182 CALL histwrite(nid_ctesGCM, "clon", itau_w, 183 183 . zx_tmp_2d,iip1*jjp1,ndex2d) 184 184 c 185 185 zx_tmp_2d(1:iip1,1:jjp1)=clat 186 CALL histwrite(nid_ctesGCM, "clat", itau_ dyn,186 CALL histwrite(nid_ctesGCM, "clat", itau_w, 187 187 . zx_tmp_2d,iip1*jjp1,ndex2d) 188 188 c 189 189 zx_tmp_2d(1:iip1,1:jjp1)=grossismx 190 CALL histwrite(nid_ctesGCM, "grossismx", itau_ dyn,190 CALL histwrite(nid_ctesGCM, "grossismx", itau_w, 191 191 . zx_tmp_2d,iip1*jjp1,ndex2d) 192 192 c 193 193 zx_tmp_2d(1:iip1,1:jjp1)=grossismy 194 CALL histwrite(nid_ctesGCM, "grossismy", itau_ dyn,194 CALL histwrite(nid_ctesGCM, "grossismy", itau_w, 195 195 . zx_tmp_2d,iip1*jjp1,ndex2d) 196 196 c … … 200 200 zx_tmp_2d(1:iip1,1:jjp1)=0. 201 201 ENDIF 202 CALL histwrite(nid_ctesGCM, "fxyhypb", itau_ dyn,202 CALL histwrite(nid_ctesGCM, "fxyhypb", itau_w, 203 203 . zx_tmp_2d,iip1*jjp1,ndex2d) 204 204 c 205 205 zx_tmp_2d(1:iip1,1:jjp1)=dzoomx 206 CALL histwrite(nid_ctesGCM, "dzoomx", itau_ dyn,206 CALL histwrite(nid_ctesGCM, "dzoomx", itau_w, 207 207 . zx_tmp_2d,iip1*jjp1,ndex2d) 208 208 c 209 209 zx_tmp_2d(1:iip1,1:jjp1)=dzoomy 210 CALL histwrite(nid_ctesGCM, "dzoomy", itau_ dyn,210 CALL histwrite(nid_ctesGCM, "dzoomy", itau_w, 211 211 . zx_tmp_2d,iip1*jjp1,ndex2d) 212 212 c 213 213 zx_tmp_2d(1:iip1,1:jjp1)=taux 214 CALL histwrite(nid_ctesGCM, "taux", itau_ dyn,214 CALL histwrite(nid_ctesGCM, "taux", itau_w, 215 215 . zx_tmp_2d,iip1*jjp1,ndex2d) 216 216 c 217 217 zx_tmp_2d(1:iip1,1:jjp1)=tauy 218 CALL histwrite(nid_ctesGCM, "tauy", itau_ dyn,218 CALL histwrite(nid_ctesGCM, "tauy", itau_w, 219 219 . zx_tmp_2d,iip1*jjp1,ndex2d) 220 220 c … … 224 224 zx_tmp_2d(1:iip1,1:jjp1)=0. 225 225 ENDIF 226 CALL histwrite(nid_ctesGCM, "ysinus", itau_ dyn,226 CALL histwrite(nid_ctesGCM, "ysinus", itau_w, 227 227 . zx_tmp_2d,iip1*jjp1,ndex2d) 228 228 c 229 229 zx_tmp_2d(1:iip1,1:jjp1)=ip_ebil_dyn 230 CALL histwrite(nid_ctesGCM, "ip_ebil_dyn", itau_ dyn,230 CALL histwrite(nid_ctesGCM, "ip_ebil_dyn", itau_w, 231 231 . zx_tmp_2d,iip1*jjp1,ndex2d) 232 232 c -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/albedo.F
r766 r845 21 21 cym#include "dimphy.h" 22 22 #include "YOMCST.h" 23 #include "clesphys.h" 23 24 c 24 REAL fmagic ! un facteur magique pour regler l'albedo 25 c fmagic -> clesphys.h/.inc 26 c REAL fmagic ! un facteur magique pour regler l'albedo 25 27 ccc PARAMETER (fmagic=0.7) 26 28 cccIM => a remplacer 27 29 c PARAMETER (fmagic=1.32) 28 30 c PARAMETER (fmagic=1.0) 29 31 c PARAMETER (fmagic=0.7) 30 32 INTEGER npts ! il controle la precision de l'integration … … 144 146 cym#include "dimensions.h" 145 147 cym#include "dimphy.h" 148 #include "clesphys.h" 146 149 REAL rmu0(klon), albedo(klon) 147 150 c 148 151 c REAL fmagic ! un facteur magique pour regler l'albedo 149 152 ccc PARAMETER (fmagic=0.7) 150 153 cccIM => a remplacer 151 154 c PARAMETER (fmagic=1.32) 152 155 c PARAMETER (fmagic=1.0) 153 156 c PARAMETER (fmagic=0.7) 154 157 c -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/calcul_simulISCCP.h
r766 r845 10 10 c 11 11 nbapp_isccp=30 !appel toutes les 15h 12 isccppas=NINT((itap*dtime)/3600.) !Nb. d'heures de la physique12 cIM 170107 isccppas=NINT((itap*dtime)/3600.) !Nb. d'heures de la physique 13 13 freqin_pdt(n)=ifreq_isccp(n) 14 14 c -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/clesphys.h
r793 r845 31 31 !IM ok_kzmin : clef calcul Kzmin dans la CL de surface cf FH 32 32 LOGICAL ok_kzmin 33 !IM fmagic : parametre pour regler l albedo sur ocean 34 REAL fmagic 33 35 !IM lev_histhf : niveau sorties 6h 34 36 !IM lev_histday : niveau sorties journalieres … … 40 42 REAL ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 41 43 REAL ecrit_mth, ecrit_tra, ecrit_reg 42 REAL freq in_isccp, freqout_isccp44 REAL freq_ISCCP, ecrit_ISCCP 43 45 INTEGER :: ip_ebil_phy 44 46 LOGICAL ok_slab_sicOBS … … 49 51 & , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 50 52 & , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter & 51 & , ok_kzmin, lev_histhf, lev_histday, lev_histmth&53 & , ok_kzmin, fmagic, lev_histhf, lev_histday, lev_histmth & 52 54 & , type_run, ok_isccp, ok_regdyn & 53 55 & , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins & 54 56 & , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day & 55 57 & , ecrit_mth, ecrit_tra, ecrit_reg & 56 & , freq in_isccp, freqout_isccp, ip_ebil_phy&58 & , freq_ISCCP, ecrit_ISCCP, ip_ebil_phy & 57 59 & , ok_slab_sicOBS, ok_lic_melt, cvl_corr 58 60 -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/conf_phys.F90
r793 r845 5 5 ! 6 6 7 subroutine conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, &7 subroutine conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, ok_hf, & 8 8 & fact_cldcon, facttemps,ok_newmicro,iflag_cldcon, & 9 9 !IM& ratqsbas,ratqshaut,ip_ebil_phy, & … … 19 19 include "fisrtilp.h" 20 20 include "nuage.h" 21 21 include "YOMCST.h" 22 22 !IM : on inclut/initialise les taux de CH4, N2O, CFC11 et CFC12 23 23 include "clesphys.h" … … 35 35 ! ok_veget: type de modele de vegetation 36 36 ! ok_journe: sorties journalieres 37 ! ok_hf: sorties haute frequence 37 38 ! ok_mensuel: sorties mensuelles 38 39 ! ok_instan: sorties instantanees … … 45 46 character (len = 6) :: ocean 46 47 logical :: ok_veget, ok_newmicro 47 logical :: ok_journe, ok_mensuel, ok_instan 48 logical :: ok_journe, ok_mensuel, ok_instan, ok_hf 48 49 LOGICAL :: ok_ade, ok_aie 49 50 REAL :: bl95_b0, bl95_b1 … … 53 54 character (len = 6),SAVE :: ocean_omp 54 55 logical,SAVE :: ok_veget_omp, ok_newmicro_omp 55 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp 56 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp 56 57 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp 57 58 REAL,SAVE :: bl95_b0_omp, bl95_b1_omp 59 REAL,SAVE :: freq_ISCCP_omp, ecrit_ISCCP_omp 58 60 real,SAVE :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp 59 61 real,SAVE :: ratqshaut_omp … … 80 82 REAL,SAVE :: cdmmax_omp,cdhmax_omp,ksta_omp,ksta_ter_omp 81 83 LOGICAL,SAVE :: ok_kzmin_omp 84 REAL, SAVE :: fmagic_omp 82 85 INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp 83 86 CHARACTER*4, SAVE :: type_run_omp … … 119 122 call getin('OK_journe', ok_journe_omp) 120 123 ! 124 !Config Key = ok_hf 125 !Config Desc = Pour des sorties haute frequence 126 !Config Def = .false. 127 !Config Help = Pour creer le fichier histhf contenant les sorties 128 ! haute frequence ( 3h ou 6h) 129 ! 130 ok_hf_omp = .false. 131 call getin('ok_hf', ok_hf_omp) 132 ! 121 133 !Config Key = OK_mensuel 122 134 !Config Desc = Pour des sorties mensuelles … … 171 183 call getin('bl95_b1', bl95_b1_omp) 172 184 173 ! 185 !Config Key = freq_ISCCP 186 !Config Desc = Frequence d'appel du simulateur ISCCP en secondes; 187 ! par defaut 10800, i.e. 3 heures 188 !Config Def = 10800. 189 !Config Help = Used in ini_histISCCP.h 190 ! 191 freq_ISCCP_omp = 10800. 192 call getin('freq_ISCCP', freq_ISCCP_omp) 193 ! 194 !Config Key = ecrit_ISCCP 195 !Config Desc = Frequence d'ecriture des resultats du simulateur ISCCP en nombre de jours; 196 ! par defaut 1., i.e. 1 jour 197 !Config Def = 1. 198 !Config Help = Used in ini_histISCCP.h 199 ! 200 ! 201 ecrit_ISCCP_omp = 1. 202 call getin('ecrit_ISCCP', ecrit_ISCCP_omp) 174 203 ! 175 204 !Config Key = ip_ebil_phy … … 562 591 call getin('ok_kzmin',ok_kzmin_omp) 563 592 593 ! 594 !Config Key = fmagic 595 !Config Desc = 596 !Config Def = 1. 597 !Config Help = Used in albedo.F 598 ! 599 fmagic_omp = 1. 600 call getin('fmagic',fmagic_omp) 601 564 602 !Config Key = ok_lic_melt 565 603 !Config Desc = Prise en compte de la fonte de la calotte dans le bilan d'eau … … 636 674 call getin('type_run',type_run_omp) 637 675 638 676 ! 639 677 !Config Key = ok_isccp 640 678 !Config Desc = … … 693 731 !Config Desc = 694 732 !Config Def = 1.0 !tous les jours 695 !Config Help = 733 !Config Help = nombre de jours pour ecriture fichier histday.nc 696 734 ! 697 735 ecrit_day_omp = 1.0 … … 773 811 ksta_ter = ksta_ter_omp 774 812 ok_kzmin = ok_kzmin_omp 813 fmagic = fmagic_omp 775 814 iflag_pbl = iflag_pbl_omp 776 815 lev_histhf = lev_histhf_omp … … 782 821 ok_newmicro = ok_newmicro_omp 783 822 ok_journe = ok_journe_omp 823 ok_hf = ok_hf_omp 784 824 ok_mensuel = ok_mensuel_omp 785 825 ok_instan = ok_instan_omp 826 freq_ISCCP = freq_ISCCP_omp 827 ecrit_ISCCP = ecrit_ISCCP_omp 786 828 ok_ade = ok_ade_omp 787 829 ok_aie = ok_aie_omp … … 818 860 write(numout,*)' Config veget = ', ok_veget 819 861 write(numout,*)' Sortie journaliere = ', ok_journe 862 write(numout,*)' Sortie haute frequence = ', ok_hf 820 863 write(numout,*)' Sortie mensuelle = ', ok_mensuel 821 864 write(numout,*)' Sortie instantanee = ', ok_instan 865 write(numout,*)' Frequence appel simulateur ISCCP, freq_ISCCP =', freq_ISCCP 866 write(numout,*)' Frequence appel simulateur ISCCP, ecrit_ISCCP =', ecrit_ISCCP 822 867 write(numout,*)' Sortie bilan d''energie, ip_ebil_phy =', ip_ebil_phy 823 868 write(numout,*)' Excentricite = ',R_ecc … … 858 903 write(numout,*)' ksta_ter = ',ksta_ter 859 904 write(numout,*)' ok_kzmin = ',ok_kzmin 905 write(numout,*)' fmagic = ',fmagic 860 906 write(numout,*)' ok_ade = ',ok_ade 861 907 write(numout,*)' ok_aie = ',ok_aie … … 871 917 write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',& 872 918 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 873 write(numout,*)' ecrit_ hf, day, mth, reg ',&874 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra 919 write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP',& 920 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP 875 921 876 922 !$OMP END MASTER -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cpl_mod.F90
r793 r845 17 17 ! Use statements 18 18 !************************************************************************************* 19 USE dimphy, ONLY : klon , zmasq19 USE dimphy, ONLY : klon 20 20 USE mod_phys_lmdz_para 21 21 USE ioipsl … … 71 71 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: pctsrf_sav 72 72 !$OMP THREADPRIVATE(pctsrf_sav) 73 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: zmasq2D74 !$OMP THREADPRIVATE(zmasq2D)75 73 INTEGER, ALLOCATABLE, DIMENSION(:), SAVE :: unity 76 74 !$OMP THREADPRIVATE(unity) … … 181 179 ALLOCATE(read_alb_sic(iim, jj_nb), stat = error) 182 180 sum_error = sum_error + error 183 ALLOCATE(zmasq2D(iim, jj_nb), stat = error)184 sum_error = sum_error + error185 186 181 187 182 IF (sum_error /= 0) THEN … … 202 197 cpl_taux = 0. ; cpl_tauy = 0. ; cpl_rriv2D = 0. ; cpl_rcoa2D = 0. 203 198 cpl_rlic2D = 0. ; cpl_windsp = 0. 204 205 !*************************************************************************************206 ! Transform the land-ocean mask into 2D grid.207 ! Colorize zmasq2D with 99 so that after gath2cpl points not valid can be recognized.208 !209 !*************************************************************************************210 zmasq2D(:,:) = 99.211 CALL gath2cpl(zmasq, zmasq2D, klon, unity)212 199 213 200 !************************************************************************************* … … 936 923 INTEGER, DIMENSION(iim*(jjm+1)) :: ndexct 937 924 REAL :: Up, Down 938 REAL, DIMENSION(iim, jj_nb) :: tmp_lon, tmp_lat939 REAL, DIMENSION(iim, jj_nb, 4) :: pctsrf2D940 REAL, DIMENSION(iim, jj_nb) :: deno925 REAL, DIMENSION(iim, jj_nb) :: tmp_lon, tmp_lat 926 REAL, DIMENSION(iim, jj_nb, 4) :: pctsrf2D 927 REAL, DIMENSION(iim, jj_nb) :: deno 941 928 CHARACTER(len = 20) :: modname = 'cpl_send_all' 942 929 CHARACTER(len = 80) :: abort_message 943 930 944 931 ! Variables with fields to coupler 945 REAL, DIMENSION(iim, jj_nb) :: tmp_taux946 REAL, DIMENSION(iim, jj_nb) :: tmp_tauy947 REAL, DIMENSION(iim, jj_nb) :: tmp_calv932 REAL, DIMENSION(iim, jj_nb) :: tmp_taux 933 REAL, DIMENSION(iim, jj_nb) :: tmp_tauy 934 REAL, DIMENSION(iim, jj_nb) :: tmp_calv 948 935 ! Table with all fields to send to coupler 949 REAL, DIMENSION(iim, jj_nb, jpflda2o1+jpflda2o2) :: tab_flds936 REAL, DIMENSION(iim, jj_nb, jpflda2o1+jpflda2o2) :: tab_flds 950 937 #ifdef CPP_PARA 951 938 INCLUDE 'mpif.h' … … 1036 1023 tmp_tauy(:,:) = 0.0 1037 1024 1038 ! For all valid grid cells not entier land 1039 WHERE (zmasq2D /= 1. .AND. zmasq2D /=99. ) 1040 deno = pctsrf2D(:,:,is_oce) + pctsrf2D(:,:,is_sic) ! fraction oce+seaice 1025 1026 ! fraction oce+seaice 1027 deno = pctsrf2D(:,:,is_oce) + pctsrf2D(:,:,is_sic) 1028 ! For all valid grid cells containing some fraction of ocean or sea-ice 1029 WHERE ( deno(:,:) /= 0 ) 1030 tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1031 cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1032 tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1033 cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1041 1034 1042 tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1043 cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1044 tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1045 cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1046 1047 tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1048 cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1049 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1050 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1035 tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1036 cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1037 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1038 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1051 1039 ENDWHERE 1052 1040 -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cv3_routines.F
r776 r845 1075 1075 endif 1076 1076 506 continue 1077 buoy(icb(i),k)=buoybase(i) 1077 cIM cf. CRio/JYG 270807 buoy(icb(i),k)=buoybase(i) 1078 buoy(i,icb(i))=buoybase(i) 1078 1079 505 continue 1079 1080 … … 1204 1205 enddo 1205 1206 enddo 1206 1207 1207 1208 do 600 k=minorig+1,nl 1208 1209 do 590 i=1,ncum -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_histISCCP.h
r776 r845 15 15 cIM 300505 zstophy = dtime 16 16 c appel du simulateur toutes les 3heures 17 zcals(1) = dtime *6. !toutes les 3h (en s) 17 !IM on lit la frequence d'appel dans physiq.def 18 ! zcals(1) = dtime *6. !toutes les 3h (en s) 19 zcals(1) = freq_ISCCP !toutes les freq_ISCCP secondes 18 20 DO n=1, napisccp 19 21 zcalh(n) = zcals(n)/3600. !stoutes les Xh (en heures) … … 29 31 c IF(freqout_isccp.EQ.1.) THEN 30 32 c ecriture jounaliere 31 zout_isccp(1) = ecrit_day !(en s) 33 !IM on ecrit les resultats du simulateur ISCCP toutes les 34 ! ecrit_ISCCP secondes zout_isccp(1) = ecrit_day !(en s) 35 zout_isccp(1) = ecrit_ISCCP !(en s) 32 36 c ecriture mensuelle 33 37 c zout = dtime * ecrit_mth !(en s) … … 37 41 c le nombre de sous-colonnes ncol : ncol=(100.*zcalh)/zoutd 38 42 ncol(n)=NINT((100.*zcalh(n))/zoutj(n)) 39 PRINT*,'n ncol',n,ncol(n) 43 IF(ncol(n).GT.ncolmx) THEN 44 PRINT*,'Warning: Augmenter le nombre colonnes du simulateur' 45 PRINT*,' ISCCP ncol=', ncol,' ncolmx=',ncolmx 46 c PRINT*,'n ncol',n,ncol(n) 47 CALL abort 48 ENDIF 40 49 c 41 50 DO l=1, ncol(n) … … 80 89 cym enddo 81 90 c 82 print*,'On stoke le fichier histISCCP instantannesur ',91 print*,'On stoke le fichier histISCCP sur ', 83 92 s imin_ins,imax_ins,jmin_ins,jmax_ins 84 93 cym print*,'On stoke le fichier histISCCP instantanne sur ', … … 94 103 CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime, 95 104 . nhori, nid_isccp) 96 97 105 ENDIF !(1.EQ.0) THEN 98 106 c … … 106 114 CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime, 107 115 . nhori, nid_isccp) 108 109 116 c 110 117 IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN … … 128 135 c 129 136 DO k=1, kmaxm1 130 CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)// typinout(n),137 CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)//verticaxe(n), 131 138 . "LMDZ ISCCP cld", "%", 132 139 . iim, jj_nb,nhori,lmaxm1,1,lmaxm1,nvert,32, … … 134 141 ENDDO 135 142 c 136 CALL histdef(nid_isccp, "nsunlit"// typinout(n),143 CALL histdef(nid_isccp, "nsunlit"//verticaxe(n), 137 144 . "Nb of calls with sunlit ", "%", 138 145 . iim, jj_nb,nhori,1,1,1,-99,32, … … 150 157 DO l=1, lmaxm1 151 158 c 152 CALL histdef(nid_isccp, pclev(l)//taulev(k)// typinout(n),159 CALL histdef(nid_isccp, pclev(l)//taulev(k)//verticaxe(n), 153 160 . "LMDZ ISCCP cld "//cnameisccp(l,k), "%", 154 161 . iim, jj_nb,nhori,1,1,1,-99,32, … … 159 166 c 160 167 c print*,'n=',n,' avant histdef(..Nb of calls sunlit' 161 CALL histdef(nid_isccp, "nsunlit"// typinout(n),168 CALL histdef(nid_isccp, "nsunlit"//verticaxe(n), 162 169 . "Nb of calls with sunlit ", "%", 163 170 . iim, jj_nb,nhori,1,1,1,-99,32, -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_histmth.h
r776 r845 833 833 C 834 834 if (nqmax.GE.3) THEN 835 DO iq=1,nqmax-2 836 IF (iq.LE.99) THEN 837 WRITE(str2,'(i2.2)') iq 838 CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-", 839 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 840 . "ave(X)", zstophy,zout) 841 ELSE 842 PRINT*, "Trop de traceurs" 843 CALL abort 844 ENDIF 845 ENDDO 835 DO iq=3,nqmax 836 iiq=niadv(iq) 837 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-", 838 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 839 . "ave(X)", zstophy,zout) 840 ENDDO 846 841 ENDIF 847 842 c … … 1745 1740 C 1746 1741 if (nqmax.GE.3) THEN 1747 DO iq=3,nqmax1748 iiq=niadv(iq)1749 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-",1750 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 1751 . "ave(X)", zstophy,zout) 1752 ENDDO1753 ENDIF1742 DO iq=3,nqmax 1743 iiq=niadv(iq) 1744 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-", 1745 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 1746 . "ave(X)", zstophy,zout) 1747 ENDDO 1748 ENDIF 1754 1749 1755 1750 ENDIF !lev_histmth.GE.4 -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_paramLMDZ_phy.h
r776 r845 347 347 . "once", zstophy,zout) 348 348 c 349 CALL histdef(nid_ctesGCM, "freq in_isccp",350 . "freq in_isccp", "-",351 . iim,jjmp1,nhori, 1,1,1, -99, 32, 352 . "once", zstophy,zout) 353 c 354 CALL histdef(nid_ctesGCM, " freqout_isccp",355 . " freqout_isccp", "-",349 CALL histdef(nid_ctesGCM, "freq_ISCCP", 350 . "freq_ISCCP", "-", 351 . iim,jjmp1,nhori, 1,1,1, -99, 32, 352 . "once", zstophy,zout) 353 c 354 CALL histdef(nid_ctesGCM, "ecrit_ISCCP", 355 . "ecrit_ISCCP", "-", 356 356 . iim,jjmp1,nhori, 1,1,1, -99, 32, 357 357 . "once", zstophy,zout) -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/physiq.F
r800 r845 385 385 INTEGER jmin_debut, nbptj 386 386 cIM parametres ISCCP BEG 387 INTEGER nbapp_isccp,isccppas 387 INTEGER nbapp_isccp 388 ! INTEGER nbapp_isccp,isccppas 389 ! PARAMETER(isccppas=6) !appel du simulateurs tous les 6pas de temps de la physique 390 ! !i.e. toutes les 3 heures 388 391 INTEGER n, napisccp 389 392 c PARAMETER(napisccp=3) … … 419 422 INTEGER ncolmx, seed(klon,napisccp) 420 423 REAL nbsunlit(nregISCtot,klon,napisccp) !nbsunlit : moyenne de sunlit 421 PARAMETER(ncolmx=350) 424 c PARAMETER(ncolmx=1500) 425 PARAMETER(ncolmx=300) 422 426 c 423 427 cIM verif boxptop BEG … … 495 499 c$OMP THREADPRIVATE(nid_isccp) 496 500 497 c data ok_isccp,ecrit_isccp/.true.,0.125/498 c data ok_isccp,ecrit_isccp/.true.,1./499 cIM 190504 data ok_isccp/.true./500 cIM 190504 #else501 cIM 190504 data ok_isccp/.false./502 cIM 190504 #endif503 504 501 REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax) 505 502 DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./ 506 503 SAVE zx_tau 507 cIM bad 151205 DATA zx_pc/50., 180., 310., 440., 560., 680., 800./508 504 DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./ 509 505 SAVE zx_pc … … 600 596 c QUESTION : noms de variables ? 601 597 602 #ifdef histhf603 data ok_hf/.true./604 #else605 data ok_hf/.false./606 #endif598 c#ifdef histhf 599 c data ok_hf/.true./ 600 c#else 601 c data ok_hf/.false./ 602 c#endif 607 603 INTEGER longcles 608 604 PARAMETER ( longcles = 20 ) … … 1167 1163 REAL tabcntr0( length ) 1168 1164 c 1169 1170 1165 INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev) 1171 1166 cIM … … 1526 1521 c 1527 1522 call conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, 1528 . ok_instan, fact_cldcon, facttemps,ok_newmicro, 1523 . ok_instan, ok_hf, 1524 . fact_cldcon, facttemps,ok_newmicro, 1529 1525 cIM . iflag_cldcon,ratqsbas,ratqshaut, if_ebil, 1530 1526 . iflag_cldcon,ratqsbas,ratqshaut, … … 1696 1692 cIM on passe les frequences de jours en secondes : ecrit_ins, ecrit_hf, ecrit_day, ecrit_mth, ecrit_tra, ecrit_reg 1697 1693 ecrit_hf = ecrit_hf * un_jour 1698 ecrit_day = ecrit_day * un_jour 1694 !IM 1695 IF(ecrit_day.LE.1.) THEN 1696 ecrit_day = ecrit_day * un_jour !en secondes 1697 ENDIF 1698 !IM 1699 1699 ecrit_mth = ecrit_mth * un_jour 1700 1700 ecrit_reg = ecrit_reg * un_jour 1701 1701 ecrit_tra = ecrit_tra * un_jour 1702 ecrit_ISCCP = ecrit_ISCCP * un_jour 1703 c 1704 PRINT*,'physiq ecrit_ hf day mth reg tra ISCCP',ecrit_hf, 1705 . ecrit_day,ecrit_mth,ecrit_reg,ecrit_tra,ecrit_ISCCP 1702 1706 cIM 030306 END 1703 1707 … … 1744 1748 #endif 1745 1749 1746 c#include "ini_histday_seri.h"1747 1750 #include "ini_histday_seri.h" 1748 1751 … … 2532 2535 cIM calcul nuages par le simulateur ISCCP 2533 2536 c 2537 #ifdef histISCCP 2534 2538 IF (ok_isccp) THEN 2539 cIM appel simulateur toutes les NINT(freq_ISCCP/dtime) heures 2540 IF (MOD(itap,NINT(freq_ISCCP/dtime)).EQ.0) THEN 2535 2541 #include "calcul_simulISCCP.h" 2542 ENDIF !(MOD(itap,NINT(freq_ISCCP/dtime)) 2536 2543 ENDIF !ok_isccp 2544 #endif 2537 2545 2538 2546 c On prend la somme des fractions nuageuses et des contenus en eau -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/surf_land_orchidee_mod.F90
r812 r845 371 371 #endif 372 372 #ifdef ORC_PREPAR 373 ! Interface for version 1.8 or earlier of ORCHIDEE373 ! Interface for ORCHIDEE version 1.9 or earlier compiled in sequential mode(without preprocessing flag CPP_PARA) 374 374 CALL intersurf_main (itime+itau_phy-1, iim, jjm+1, knon, ktindex, dtime, & 375 375 lrestart_read, lrestart_write, lalo, & … … 383 383 384 384 #else 385 ! Interface for ORCHIDEE version 1.9 compiled in parallel mode(with preprocessing flag CPP_PARA) 385 386 CALL intersurf_main (itime+itau_phy-1, iim, jjm+1, offset, knon, ktindex, & 386 387 orch_comm, dtime, lrestart_read, lrestart_write, lalo, & … … 406 407 407 408 #ifdef ORC_PREPAR 408 ! Interface for version 1.8 or earlier of ORCHIDEE409 CALL intersurf_main (itime+itau_phy -1, iim, jjm+1, knon, ktindex, dtime, &409 ! Interface for ORCHIDEE version 1.9 or earlier compiled in sequential mode(without preprocessing flag CPP_PARA) 410 CALL intersurf_main (itime+itau_phy, iim, jjm+1, knon, ktindex, dtime, & 410 411 lrestart_read, lrestart_write, lalo, & 411 412 contfrac, neighbours, resolution, date0, & 412 413 zlev, u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, & 413 414 cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, & 414 precip_rain, precip_snow, lwdown, swnet, swdown , ps, &415 precip_rain, precip_snow, lwdown, swnet, swdown_vrai, ps, & 415 416 evap, fluxsens, fluxlat, coastalflow, riverflow, & 416 417 tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, & … … 418 419 419 420 #else 420 421 ! Interface for ORCHIDEE version 1.9 compiled in parallel mode(with preprocessing flag CPP_PARA) 421 422 CALL intersurf_main (itime+itau_phy, iim, jjm+1,offset, knon, ktindex, & 422 423 orch_comm,dtime, lrestart_read, lrestart_write, lalo, & -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/write_histISCCP.h
r776 r845 20 20 cIM: champ 3d : (lon,lat,pres) pour un tau fixe 21 21 c 22 CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)// typinout(n),22 CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)//verticaxe(n), 23 23 . itau_w,zx_tmp_fi3d) 24 24 ENDDO !k 25 25 c 26 26 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d) 27 CALL histwrite_phy(nid_isccp,"nsunlit"// typinout(n),itau_w,27 CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n),itau_w, 28 28 . nbsunlit(1,:,n)) 29 29 c … … 55 55 cIM: champ 2d : (lon,lat) pour un tau et une pc fixes 56 56 c 57 CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)// typinout(n),58 . itau_w,fq_is_true(:, :,l,n))57 CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)//verticaxe(n), 58 . itau_w,fq_is_true(:,k,l,n)) 59 59 ENDDO !l 60 60 ENDDO !k … … 62 62 c print*,'n=',n,' write_ISCCP avant nbsunlit' 63 63 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d) 64 CALL histwrite_phy(nid_isccp,"nsunlit"// typinout(n),64 CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n), 65 65 . itau_w,nbsunlit(1,:,n)) 66 66 c -
LMDZ4/branches/LMDZ4_V3_patches/machine/arch-IA64_PLATINE.fcm
r810 r845 6 6 %FPP_FLAGS -P -traditional 7 7 %FPP_DEF NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM 8 %LD_FLAGS -i4 -r8 -automatic 8 %LD_FLAGS -i4 -r8 -automatic -L/applications/intel/ict/3.0/cmkl/9.0/lib/64 -lmkl_ipf -lguide -
LMDZ4/branches/LMDZ4_V3_patches/machine/arch-IA64_PLATINE.path
r810 r845 1 1 set NETCDF_LIBDIR=/applications/netcdf/lib 2 2 set NETCDF_INCDIR=/applications/netcdf/include 3 set IOIPSL_INCDIR=$WORKDIR/IOIPSL_MPP/src 4 set IOIPSL_LIBDIR=$WORKDIR/IOIPSL_MPP/src 5 set ORCH_INCDIR=$WORKDIR/ORCHIDEE/lib 6 set ORCH_LIBDIR=$WORKDIR/ORCHIDEE/lib 3 set IOIPSL_INCDIR=$LMDGCM/../../lib 4 set IOIPSL_LIBDIR=$LMDGCM/../../lib 5 set ORCH_INCDIR=$LMDGCM/../../lib 6 set ORCH_LIBDIR=$LMDGCM/../../lib 7 set OASIS_INCDIR=$LMDGCM/../../prism/IA64/build/lib/psmile.$couple 8 set OASIS_LIBDIR=$LMDGCM/../../prism/IA64/lib 9 set INCA_LIBDIR=$LMDGCM/../INCA3/config/lib 10 set INCA_INCDIR=$LMDGCM/../INCA3/config/lib 11 -
LMDZ4/branches/LMDZ4_V3_patches/machine/arch-SX8_MERCURE.path
r783 r845 1 set ARCH=SX62 1 set NETCDF_LIBDIR=/usr/local/SX8/soft/netcdf/lib 3 2 set NETCDF_INCDIR=/usr/local/SX8/soft/netcdf/include 4 set IOIPSL_INCDIR=$WORKDIR/IOIPSL_MPP/src 5 set IOIPSL_LIBDIR=$WORKDIR/IOIPSL_MPP/src 6 set ORCH_INCDIR=$WORKDIR/ORCHIDEE/lib 7 set ORCH_LIBDIR=$WORKDIR/ORCHIDEE/lib 3 set IOIPSL_INCDIR=$LMDGCM/../../lib 4 set IOIPSL_LIBDIR=$LMDGCM/../../lib 5 set ORCH_INCDIR=$LMDGCM/../../lib 6 set ORCH_LIBDIR=$LMDGCM/../../lib 7 set OASIS_INCDIR=$LMDGCM/../../prism/SX/build/lib/psmile.$couple 8 set OASIS_LIBDIR=$LMDGCM/../../prism/SX/lib 9 set INCA_LIBDIR=$LMDGCM/../INCA3/config/lib 10 set INCA_INCDIR=$LMDGCM/../INCA3/config/lib -
LMDZ4/branches/LMDZ4_V3_patches/makegcm
r792 r845 291 291 set optdbl='-dw -Wf\"-A dbl4\"' 292 292 # set optim90='-P stack -Wf,-pvctl res=whole,-A dbl4,-init stack=nan,-init heap=nan,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 fullmsg noassume" -I/SX/usr/include' 293 set optim90='-P stack -Wf,-pvctl res=whole,-A dbl4,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 fullmsgnoassume" -I/SX/usr/include'293 set optim90='-P stack -Wf,-pvctl res=whole,-A dbl4,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 noassume" -I/SX/usr/include' 294 294 # set optim90='-C vsafe -P stack -Wf,-pvctl res=whole,-A dbl4,-ptr byte -EP -R5 -float0 -dw -Wf,"-pvctl loopcnt=999999 fullmsg noassume" -I/SX/usr/include' 295 295 set optimtru90="$optim90" … … 541 541 if ( "$veget" == 'true' ) then 542 542 set cppflags="$cppflags -DCPP_VEGET" 543 set link_veget=" -lsechiba -lparameters -lstomate -l parallel -lorglob"543 set link_veget=" -lsechiba -lparameters -lstomate -lorglob -lparallel" 544 544 if ( $XNEC || $X8BRODIE || $X6NEC) then 545 set link_veget=" -lsxsechiba -lsxparameters -lsxstomate -lsx parallel -lsxorglob"545 set link_veget=" -lsxsechiba -lsxparameters -lsxstomate -lsxorglob -lsxparallel" 546 546 endif 547 547 endif … … 646 646 endif 647 647 if ( $NEC || $XNEC || $X6NEC || $X8BRODIE ) then 648 set nomlib=F90_${dim_}_t${ntrac} ${FLAG_PARA}648 set nomlib=F90_${dim_}_t${ntrac}_'phy'${physique}${FLAG_PARA} 649 649 endif 650 650 echo calcul de la dimension -
LMDZ4/branches/LMDZ4_V3_patches/makegcm_fcm
r783 r845 24 24 set veget=false 25 25 set chimie=false 26 set psmile=false27 26 set parallel=false 28 27 set io=ioipsl 29 28 30 set LMDGCM= $PWD29 set LMDGCM=`/bin/pwd` 31 30 set LIBOGCM=$LMDGCM/libo 32 31 set LIBFGCM=$LMDGCM/libf … … 60 59 [-p PHYS] : compilation avec la physique libf/phyPHYS, (def: lmd) 61 60 [-debug] : compile avec options debug. 62 [-c false/ true] : couplé océan : mpi1/mpi2/false (def: false)61 [-c false/MPI1/MPI2] : couplé océan : MPI1/MPI2/false (def: false) 63 62 [-v false/true] : avec ou sans végétation (def: false) 64 63 [-chimie SCHEMA/false] : nom du schéma chimique ou false (def) … … 155 154 156 155 157 if ( "$chimie" == 'true' ) then 156 if ( "$chimie" == 'AER' ) then 157 set CPP_KEY="$CPP_KEY INCA INCA_AER" 158 set INCLUDE="$INCLUDE -I${INCA_INCDIR}" 159 set LIB="$LIB -L${INCA_LIBDIR} -lchimie" 160 else if ( "$chimie" == 'CH4' ) then 161 set CPP_KEY="$CPP_KEY INCA INCA_CH4" 162 set INCLUDE="$INCLUDE -I${INCA_INCDIR}" 163 set LIB="$LIB -L${INCA_LIBDIR} -lchimie" 164 else if ( "$chimie" == 'CH4_AER' ) then 165 set CPP_KEY="$CPP_KEY INCA INCA_AER INCA_CH4" 166 set INCLUDE="$INCLUDE -I${INCA_INCDIR}" 167 set LIB="$LIB -L${INCA_LIBDIR} -lchimie" 168 else if ( "$chimie" == 'NMHC' ) then 169 set CPP_KEY="$CPP_KEY INCA INCA_NMHC" 170 set INCLUDE="$INCLUDE -I${INCA_INCDIR}" 171 set LIB="$LIB -L${INCA_LIBDIR} -lchimie" 172 else if ( "$chimie" == 'NMHC_AER' ) then 173 set CPP_KEY="$CPP_KEY INCA INCA_AER INCA_NMHC" 174 set INCLUDE="$INCLUDE -I${INCA_INCDIR}" 175 set LIB="$LIB -L${INCA_LIBDIR} -lchimie" 176 else if ( "$chimie" == 'GES' ) then 158 177 set CPP_KEY="$CPP_KEY INCA" 159 178 set INCLUDE="$INCLUDE -I${INCA_INCDIR}" … … 163 182 if ( "$couple" != 'false' ) then 164 183 set CPP_KEY="$CPP_KEY CPP_COUPLE" 165 set CPP_KEY="$CPP_KEY CPP_PSMILE" 166 set INCLUDE="$INCLUDE -I${OASIS_INCDIR}.$couple" 167 set LIB="$LIB -L${OASIS_LIBDIR} -loasis.$couple" 184 set INCLUDE="$INCLUDE -I${OASIS_INCDIR}" 185 set LIB="$LIB -L${OASIS_LIBDIR} -lpsmile.${couple} -lmpp_io" 168 186 endif 169 187 … … 175 193 set CPP_KEY="$CPP_KEY CPP_VEGET" 176 194 set INCLUDE="${INCLUDE} -I${ORCH_INCDIR}" 177 set LIB="${LIB} -L${ORCH_LIBDIR} -lsechiba -lparameters -lstomate -lparallel "195 set LIB="${LIB} -L${ORCH_LIBDIR} -lsechiba -lparameters -lstomate -lparallel -lorglob" 178 196 endif 179 197 … … 290 308 291 309 set SUFF_NAME=_${dim_full} 292 set SUFF_NAME=${SUFF_NAME}_t${ntrac} 310 set SUFF_NAME=${SUFF_NAME}_t${ntrac}_phy${physique} 293 311 294 312 if ( "$parallel" == 'true' ) then … … 311 329 set SUFF_NAME=${SUFF_NAME}_inca 312 330 endif 313 314 #########################################################315 # On adapte certains include à F90 (mener a disparaitre)316 #########################################################317 #sed -e 's/^c/\!/' $libf/grid/dimensions.h >! $libf/grid/dimensions90.tmp318 #if ( ! -f $libf/grid/dimensions90.h || `diff $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h | wc -w` ) then319 # \mv $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h320 #endif321 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ s/) {if (NR > 1) print p0," &"; sub (" s"," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/dyn3d/paramet.h >! $libf/dyn3d/paramet90.tmp322 #if ( ! -f $libf/dyn3d/paramet90.h || `diff $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h | wc -w` ) then323 # \mv $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h324 #endif325 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ \./) {if (NR > 1) print p0," &"; sub (" \."," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/dyn3d/control.h >! $libf/dyn3d/control.tmp326 #if ( ! -f $libf/dyn3d/control.inc || `diff $libf/dyn3d/control.tmp $libf/dyn3d/control.inc | wc -w` ) then327 # \mv $libf/dyn3d/control.tmp $libf/dyn3d/control.inc328 #endif329 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ S/) {if (NR > 1) print p0," &"; sub (" S"," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/phylmd/YOMCST.h >! $libf/phylmd/YOMCST.tmp330 #if ( ! -f $libf/phylmd/YOMCST.inc || `diff $libf/phylmd/YOMCST.tmp $libf/phylmd/YOMCST.inc | wc -w` ) then331 # \mv $libf/phylmd/YOMCST.tmp $libf/phylmd/YOMCST.inc332 #endif333 #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ S/) {if (NR > 1) print p0," &"; sub (" S"," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/phylmd/clesphys.h >! $libf/phylmd/clesphys.tmp334 #if ( ! -f $libf/phylmd/clesphys.inc || `diff $libf/phylmd/clesphys.tmp $libf/phylmd/clesphys.inc | wc -w` ) then335 # \mv $libf/phylmd/clesphys.tmp $libf/phylmd/clesphys.inc336 #endif337 338 #########################################################339 331 340 332 cd $LMDGCM
Note: See TracChangeset
for help on using the changeset viewer.