Changeset 1380
- Timestamp:
- May 6, 2010, 2:24:59 PM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4V5.0-dev/libf
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/dynetat0.F
r1146 r1380 1 1 ! 2 ! $ Header$2 ! $Id $ 3 3 ! 4 4 SUBROUTINE dynetat0(fichnom,vcov,ucov, … … 34 34 #include "serre.h" 35 35 #include "logic.h" 36 #include "iniprint.h" 36 37 37 38 c Arguments: … … 58 59 ierr = NF_OPEN (fichnom, NF_NOWRITE,nid) 59 60 IF (ierr.NE.NF_NOERR) THEN 60 write( 6,*)'Pb d''ouverture du fichier start.nc'61 write( 6,*)' ierr = ', ierr61 write(lunout,*)'dynetat0: Pb d''ouverture du fichier start.nc' 62 write(lunout,*)' ierr = ', ierr 62 63 CALL ABORT 63 64 ENDIF … … 66 67 ierr = NF_INQ_VARID (nid, "controle", nvarid) 67 68 IF (ierr .NE. NF_NOERR) THEN 68 PRINT*,"dynetat0: Le champ <controle> est absent"69 write(lunout,*)"dynetat0: Le champ <controle> est absent" 69 70 CALL abort 70 71 ENDIF … … 75 76 #endif 76 77 IF (ierr .NE. NF_NOERR) THEN 77 PRINT*,"dynetat0: Lecture echoue pour <controle>"78 write(lunout,*)"dynetat0: Lecture echoue pour <controle>" 78 79 CALL abort 79 80 ENDIF … … 121 122 c 122 123 c 123 PRINT*,'rad,omeg,g,cpp,kappa',rad,omeg,g,cpp,kappa 124 write(lunout,*)'dynetat0: rad,omeg,g,cpp,kappa', 125 & rad,omeg,g,cpp,kappa 124 126 125 127 IF( im.ne.iim ) THEN … … 136 138 ierr = NF_INQ_VARID (nid, "rlonu", nvarid) 137 139 IF (ierr .NE. NF_NOERR) THEN 138 PRINT*,"dynetat0: Le champ <rlonu> est absent"140 write(lunout,*)"dynetat0: Le champ <rlonu> est absent" 139 141 CALL abort 140 142 ENDIF … … 145 147 #endif 146 148 IF (ierr .NE. NF_NOERR) THEN 147 PRINT*,"dynetat0: Lecture echouee pour <rlonu>"149 write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>" 148 150 CALL abort 149 151 ENDIF … … 151 153 ierr = NF_INQ_VARID (nid, "rlatu", nvarid) 152 154 IF (ierr .NE. NF_NOERR) THEN 153 PRINT*,"dynetat0: Le champ <rlatu> est absent"155 write(lunout,*)"dynetat0: Le champ <rlatu> est absent" 154 156 CALL abort 155 157 ENDIF … … 160 162 #endif 161 163 IF (ierr .NE. NF_NOERR) THEN 162 PRINT*,"dynetat0: Lecture echouee pour <rlatu>"164 write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>" 163 165 CALL abort 164 166 ENDIF … … 166 168 ierr = NF_INQ_VARID (nid, "rlonv", nvarid) 167 169 IF (ierr .NE. NF_NOERR) THEN 168 PRINT*,"dynetat0: Le champ <rlonv> est absent"170 write(lunout,*)"dynetat0: Le champ <rlonv> est absent" 169 171 CALL abort 170 172 ENDIF … … 175 177 #endif 176 178 IF (ierr .NE. NF_NOERR) THEN 177 PRINT*,"dynetat0: Lecture echouee pour <rlonv>"179 write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>" 178 180 CALL abort 179 181 ENDIF … … 181 183 ierr = NF_INQ_VARID (nid, "rlatv", nvarid) 182 184 IF (ierr .NE. NF_NOERR) THEN 183 PRINT*,"dynetat0: Le champ <rlatv> est absent"185 write(lunout,*)"dynetat0: Le champ <rlatv> est absent" 184 186 CALL abort 185 187 ENDIF … … 190 192 #endif 191 193 IF (ierr .NE. NF_NOERR) THEN 192 PRINT*,"dynetat0: Lecture echouee pour rlatv"194 write(lunout,*)"dynetat0: Lecture echouee pour rlatv" 193 195 CALL abort 194 196 ENDIF … … 196 198 ierr = NF_INQ_VARID (nid, "cu", nvarid) 197 199 IF (ierr .NE. NF_NOERR) THEN 198 PRINT*,"dynetat0: Le champ <cu> est absent"200 write(lunout,*)"dynetat0: Le champ <cu> est absent" 199 201 CALL abort 200 202 ENDIF … … 205 207 #endif 206 208 IF (ierr .NE. NF_NOERR) THEN 207 PRINT*,"dynetat0: Lecture echouee pour <cu>"209 write(lunout,*)"dynetat0: Lecture echouee pour <cu>" 208 210 CALL abort 209 211 ENDIF … … 211 213 ierr = NF_INQ_VARID (nid, "cv", nvarid) 212 214 IF (ierr .NE. NF_NOERR) THEN 213 PRINT*,"dynetat0: Le champ <cv> est absent"215 write(lunout,*)"dynetat0: Le champ <cv> est absent" 214 216 CALL abort 215 217 ENDIF … … 220 222 #endif 221 223 IF (ierr .NE. NF_NOERR) THEN 222 PRINT*,"dynetat0: Lecture echouee pour <cv>"224 write(lunout,*)"dynetat0: Lecture echouee pour <cv>" 223 225 CALL abort 224 226 ENDIF … … 226 228 ierr = NF_INQ_VARID (nid, "aire", nvarid) 227 229 IF (ierr .NE. NF_NOERR) THEN 228 PRINT*,"dynetat0: Le champ <aire> est absent"230 write(lunout,*)"dynetat0: Le champ <aire> est absent" 229 231 CALL abort 230 232 ENDIF … … 235 237 #endif 236 238 IF (ierr .NE. NF_NOERR) THEN 237 PRINT*,"dynetat0: Lecture echouee pour <aire>"239 write(lunout,*)"dynetat0: Lecture echouee pour <aire>" 238 240 CALL abort 239 241 ENDIF … … 241 243 ierr = NF_INQ_VARID (nid, "phisinit", nvarid) 242 244 IF (ierr .NE. NF_NOERR) THEN 243 PRINT*,"dynetat0: Le champ <phisinit> est absent"245 write(lunout,*)"dynetat0: Le champ <phisinit> est absent" 244 246 CALL abort 245 247 ENDIF … … 250 252 #endif 251 253 IF (ierr .NE. NF_NOERR) THEN 252 PRINT*,"dynetat0: Lecture echouee pour <phisinit>"254 write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>" 253 255 CALL abort 254 256 ENDIF … … 256 258 ierr = NF_INQ_VARID (nid, "temps", nvarid) 257 259 IF (ierr .NE. NF_NOERR) THEN 258 PRINT*,"dynetat0: Le champ <temps> est absent"260 write(lunout,*)"dynetat0: Le champ <temps> est absent" 259 261 CALL abort 260 262 ENDIF … … 265 267 #endif 266 268 IF (ierr .NE. NF_NOERR) THEN 267 PRINT*,"dynetat0: Lecture echouee <temps>"269 write(lunout,*)"dynetat0: Lecture echouee <temps>" 268 270 CALL abort 269 271 ENDIF … … 271 273 ierr = NF_INQ_VARID (nid, "ucov", nvarid) 272 274 IF (ierr .NE. NF_NOERR) THEN 273 PRINT*,"dynetat0: Le champ <ucov> est absent"275 write(lunout,*)"dynetat0: Le champ <ucov> est absent" 274 276 CALL abort 275 277 ENDIF … … 280 282 #endif 281 283 IF (ierr .NE. NF_NOERR) THEN 282 PRINT*,"dynetat0: Lecture echouee pour <ucov>"284 write(lunout,*)"dynetat0: Lecture echouee pour <ucov>" 283 285 CALL abort 284 286 ENDIF … … 286 288 ierr = NF_INQ_VARID (nid, "vcov", nvarid) 287 289 IF (ierr .NE. NF_NOERR) THEN 288 PRINT*,"dynetat0: Le champ <vcov> est absent"290 write(lunout,*)"dynetat0: Le champ <vcov> est absent" 289 291 CALL abort 290 292 ENDIF … … 295 297 #endif 296 298 IF (ierr .NE. NF_NOERR) THEN 297 PRINT*,"dynetat0: Lecture echouee pour <vcov>"299 write(lunout,*)"dynetat0: Lecture echouee pour <vcov>" 298 300 CALL abort 299 301 ENDIF … … 301 303 ierr = NF_INQ_VARID (nid, "teta", nvarid) 302 304 IF (ierr .NE. NF_NOERR) THEN 303 PRINT*,"dynetat0: Le champ <teta> est absent"305 write(lunout,*)"dynetat0: Le champ <teta> est absent" 304 306 CALL abort 305 307 ENDIF … … 310 312 #endif 311 313 IF (ierr .NE. NF_NOERR) THEN 312 PRINT*,"dynetat0: Lecture echouee pour <teta>"314 write(lunout,*)"dynetat0: Lecture echouee pour <teta>" 313 315 CALL abort 314 316 ENDIF … … 319 321 ierr = NF_INQ_VARID (nid, tname(iq), nvarid) 320 322 IF (ierr .NE. NF_NOERR) THEN 321 PRINT*, "dynetat0: Le champ <"//tname(iq)//"> est absent" 322 PRINT*, " Il est donc initialise a zero" 323 write(lunout,*)"dynetat0: Le champ <"//tname(iq)// 324 & "> est absent" 325 write(lunout,*)" Il est donc initialise a zero" 323 326 q(:,:,iq)=0. 324 327 ELSE … … 329 332 #endif 330 333 IF (ierr .NE. NF_NOERR) THEN 331 PRINT*,"dynetat0: Lecture echouee pour "//tname(iq)332 334 write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq) 335 CALL abort 333 336 ENDIF 334 337 ENDIF … … 338 341 ierr = NF_INQ_VARID (nid, "masse", nvarid) 339 342 IF (ierr .NE. NF_NOERR) THEN 340 PRINT*,"dynetat0: Le champ <masse> est absent"343 write(lunout,*)"dynetat0: Le champ <masse> est absent" 341 344 CALL abort 342 345 ENDIF … … 347 350 #endif 348 351 IF (ierr .NE. NF_NOERR) THEN 349 PRINT*,"dynetat0: Lecture echouee pour <masse>"352 write(lunout,*)"dynetat0: Lecture echouee pour <masse>" 350 353 CALL abort 351 354 ENDIF … … 353 356 ierr = NF_INQ_VARID (nid, "ps", nvarid) 354 357 IF (ierr .NE. NF_NOERR) THEN 355 PRINT*,"dynetat0: Le champ <ps> est absent"358 write(lunout,*)"dynetat0: Le champ <ps> est absent" 356 359 CALL abort 357 360 ENDIF … … 362 365 #endif 363 366 IF (ierr .NE. NF_NOERR) THEN 364 PRINT*,"dynetat0: Lecture echouee pour <ps>"367 write(lunout,*)"dynetat0: Lecture echouee pour <ps>" 365 368 CALL abort 366 369 ENDIF -
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/dynredem.F
r1299 r1380 26 26 #include "description.h" 27 27 #include "serre.h" 28 #include "iniprint.h" 28 29 29 30 c Arguments: … … 126 127 ierr = NF_CREATE(fichnom, NF_CLOBBER, nid) 127 128 IF (ierr.NE.NF_NOERR) THEN 128 WRITE(6,*)" Pb d ouverture du fichier "//fichnom 129 WRITE(6,*)' ierr = ', ierr 129 write(lunout,*)"dynredem0: Pb d ouverture du fichier " 130 & //trim(fichnom) 131 write(lunout,*)' ierr = ', ierr 130 132 CALL ABORT 131 133 ENDIF … … 509 511 ierr = NF_CLOSE(nid) ! fermer le fichier 510 512 511 PRINT*,'iim,jjm,llm,iday_end',iim,jjm,llm,iday_end 512 PRINT*,'rad,omeg,g,cpp,kappa', 513 , rad,omeg,g,cpp,kappa 513 write(lunout,*)'dynredem0: iim,jjm,llm,iday_end', 514 & iim,jjm,llm,iday_end 515 write(lunout,*)'dynredem0: rad,omeg,g,cpp,kappa', 516 & rad,omeg,g,cpp,kappa 514 517 515 518 RETURN … … 531 534 #include "comgeom.h" 532 535 #include "temps.h" 536 #include "iniprint.h" 537 533 538 534 539 INTEGER l … … 557 562 ierr = NF_OPEN(fichnom, NF_WRITE, nid) 558 563 IF (ierr .NE. NF_NOERR) THEN 559 PRINT*, "Pb. d ouverture "//fichnom564 write(lunout,*)"dynredem1: Pb. d ouverture "//trim(fichnom) 560 565 CALL abort 561 566 ENDIF … … 566 571 ierr = NF_INQ_VARID(nid, "temps", nvarid) 567 572 IF (ierr .NE. NF_NOERR) THEN 568 print *,NF_STRERROR(ierr)573 write(lunout,*) NF_STRERROR(ierr) 569 574 abort_message='Variable temps n est pas definie' 570 575 CALL abort_gcm(modname,abort_message,ierr) … … 575 580 ierr = NF_PUT_VAR1_REAL (nid,nvarid,nb,time) 576 581 #endif 577 PRINT*, "Enregistrement pour ", nb, time582 write(lunout,*) "dynredem1: Enregistrement pour ", nb, time 578 583 579 584 c … … 602 607 ierr = NF_INQ_VARID(nid, "ucov", nvarid) 603 608 IF (ierr .NE. NF_NOERR) THEN 604 PRINT*, "Variable ucov n est pas definie" 605 CALL abort 609 abort_message="Variable ucov n est pas definie" 610 ierr=1 611 CALL abort_gcm(modname,abort_message,ierr) 606 612 ENDIF 607 613 #ifdef NC_DOUBLE … … 613 619 ierr = NF_INQ_VARID(nid, "vcov", nvarid) 614 620 IF (ierr .NE. NF_NOERR) THEN 615 PRINT*, "Variable vcov n est pas definie" 616 CALL abort 621 abort_message="Variable vcov n est pas definie" 622 ierr=1 623 CALL abort_gcm(modname,abort_message,ierr) 617 624 ENDIF 618 625 #ifdef NC_DOUBLE … … 624 631 ierr = NF_INQ_VARID(nid, "teta", nvarid) 625 632 IF (ierr .NE. NF_NOERR) THEN 626 PRINT*, "Variable teta n est pas definie" 627 CALL abort 633 abort_message="Variable teta n est pas definie" 634 ierr=1 635 CALL abort_gcm(modname,abort_message,ierr) 628 636 ENDIF 629 637 #ifdef NC_DOUBLE … … 637 645 ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac) 638 646 IF (ierr_file .NE.NF_NOERR) THEN 639 write(6,*)' Pb d''ouverture du fichier start_trac.nc' 640 write(6,*)' ierr = ', ierr_file 647 write(lunout,*)'dynredem1: Pb d''ouverture du fichier', 648 & ' start_trac.nc' 649 write(lunout,*)' ierr = ', ierr_file 641 650 ENDIF 642 651 END IF … … 648 657 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 649 658 IF (ierr .NE. NF_NOERR) THEN 650 PRINT*, "Variable tname(iq) n est pas definie" 651 CALL abort 659 abort_message="Variable tname(iq) n est pas definie" 660 ierr=1 661 CALL abort_gcm(modname,abort_message,ierr) 652 662 ENDIF 653 663 #ifdef NC_DOUBLE … … 661 671 ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac) 662 672 IF (ierr .NE. NF_NOERR) THEN 663 PRINT*, tname(iq),"est absent de start_trac.nc" 673 write(lunout,*) "dynredem1: ",trim(tname(iq)), 674 & " est absent de start_trac.nc" 664 675 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 665 676 IF (ierr .NE. NF_NOERR) THEN 666 PRINT*, "Variable ", tname(iq)," n est pas definie" 667 CALL abort 677 abort_message="dynredem1: Variable "// 678 & trim(tname(iq))//" n est pas definie" 679 ierr=1 680 CALL abort_gcm(modname,abort_message,ierr) 668 681 ENDIF 669 682 #ifdef NC_DOUBLE … … 674 687 675 688 ELSE 676 PRINT*, tname(iq), "est present dans start_trac.nc" 689 write(lunout,*) "dynredem1: ",trim(tname(iq)), 690 & " est present dans start_trac.nc" 677 691 #ifdef NC_DOUBLE 678 692 ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp) … … 681 695 #endif 682 696 IF (ierr .NE. NF_NOERR) THEN 683 PRINT*, "Lecture echouee pour", tname(iq) 684 CALL abort 697 abort_message="dynredem1: Lecture echouee pour"// 698 & trim(tname(iq)) 699 ierr=1 700 CALL abort_gcm(modname,abort_message,ierr) 685 701 ENDIF 686 702 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 687 703 IF (ierr .NE. NF_NOERR) THEN 688 PRINT*, "Variable ", tname(iq)," n est pas definie" 689 CALL abort 704 abort_message="dynredem1: Variable "// 705 & trim(tname(iq))//" n est pas definie" 706 ierr=1 707 CALL abort_gcm(modname,abort_message,ierr) 690 708 ENDIF 691 709 #ifdef NC_DOUBLE … … 701 719 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 702 720 IF (ierr .NE. NF_NOERR) THEN 703 PRINT*, "Variable tname(iq) n est pas definie" 704 CALL abort 721 abort_message="dynredem1: Variable "// 722 & trim(tname(iq))//" n est pas definie" 723 ierr=1 724 CALL abort_gcm(modname,abort_message,ierr) 705 725 ENDIF 706 726 #ifdef NC_DOUBLE … … 717 737 ierr = NF_INQ_VARID(nid, "masse", nvarid) 718 738 IF (ierr .NE. NF_NOERR) THEN 719 PRINT*, "Variable masse n est pas definie" 720 CALL abort 739 abort_message="dynredem1: Variable masse n est pas definie" 740 ierr=1 741 CALL abort_gcm(modname,abort_message,ierr) 721 742 ENDIF 722 743 #ifdef NC_DOUBLE … … 728 749 ierr = NF_INQ_VARID(nid, "ps", nvarid) 729 750 IF (ierr .NE. NF_NOERR) THEN 730 PRINT*, "Variable ps n est pas definie" 731 CALL abort 751 abort_message="dynredem1: Variable ps n est pas definie" 752 ierr=1 753 CALL abort_gcm(modname,abort_message,ierr) 732 754 ENDIF 733 755 #ifdef NC_DOUBLE -
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/gcm.F
r1357 r1380 248 248 CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0) 249 249 endif 250 !#ifdef CPP_IOIPSL 250 251 251 if (planet_type.eq."earth") then 252 252 #ifdef CPP_EARTH 253 253 ! Load an Earth-format start file 254 254 CALL dynetat0("start.nc",vcov,ucov, 255 . teta,q,masse,ps,phis, time_0) 256 #endif 255 & teta,q,masse,ps,phis, time_0) 256 #endif 257 ! SW model also has Earth-format start files 258 ! (but can be used without the CPP_EARTH directive) 259 if (iflag_phys.eq.0) then 260 CALL dynetat0("start.nc",vcov,ucov, 261 & teta,q,masse,ps,phis, time_0) 262 endif 263 257 264 endif ! of if (planet_type.eq."earth") 265 258 266 c write(73,*) 'ucov',ucov 259 267 c write(74,*) 'vcov',vcov -
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniconst.F
r1299 r1380 19 19 #include "temps.h" 20 20 #include "comvert.h" 21 #include "iniprint.h" 21 22 22 23 … … 48 49 r = cpp * kappa 49 50 50 PRINT*,'R CP Kappa ', r , cpp, kappa51 write(lunout,*)'iniconst: R CP Kappa ', r , cpp, kappa 51 52 c 52 53 c----------------------------------------------------------------------- -
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynetat0.F
r1146 r1380 1 1 ! 2 ! $ Header$2 ! $Id $ 3 3 ! 4 4 SUBROUTINE dynetat0(fichnom,vcov,ucov, 5 5 . teta,q,masse,ps,phis,time) 6 6 7 USE infotrac 7 8 IMPLICIT NONE … … 33 34 #include "serre.h" 34 35 #include "logic.h" 36 #include "iniprint.h" 35 37 36 38 c Arguments: … … 52 54 53 55 c----------------------------------------------------------------------- 56 54 57 c Ouverture NetCDF du fichier etat initial 55 58 56 59 ierr = NF_OPEN (fichnom, NF_NOWRITE,nid) 57 60 IF (ierr.NE.NF_NOERR) THEN 58 write( 6,*)'Pb d''ouverture du fichier start.nc'59 write( 6,*)' ierr = ', ierr61 write(lunout,*)'dynetat0: Pb d''ouverture du fichier start.nc' 62 write(lunout,*)' ierr = ', ierr 60 63 CALL ABORT 61 64 ENDIF … … 64 67 ierr = NF_INQ_VARID (nid, "controle", nvarid) 65 68 IF (ierr .NE. NF_NOERR) THEN 66 PRINT*,"dynetat0: Le champ <controle> est absent"69 write(lunout,*)"dynetat0: Le champ <controle> est absent" 67 70 CALL abort 68 71 ENDIF … … 73 76 #endif 74 77 IF (ierr .NE. NF_NOERR) THEN 75 PRINT*,"dynetat0: Lecture echoue pour <controle>"78 write(lunout,*)"dynetat0: Lecture echoue pour <controle>" 76 79 CALL abort 77 80 ENDIF … … 119 122 c 120 123 c 121 PRINT*,'rad,omeg,g,cpp,kappa',rad,omeg,g,cpp,kappa 124 write(lunout,*)'dynetat0: rad,omeg,g,cpp,kappa', 125 & rad,omeg,g,cpp,kappa 122 126 123 127 IF( im.ne.iim ) THEN … … 134 138 ierr = NF_INQ_VARID (nid, "rlonu", nvarid) 135 139 IF (ierr .NE. NF_NOERR) THEN 136 PRINT*,"dynetat0: Le champ <rlonu> est absent"140 write(lunout,*)"dynetat0: Le champ <rlonu> est absent" 137 141 CALL abort 138 142 ENDIF … … 143 147 #endif 144 148 IF (ierr .NE. NF_NOERR) THEN 145 PRINT*,"dynetat0: Lecture echouee pour <rlonu>"149 write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>" 146 150 CALL abort 147 151 ENDIF … … 149 153 ierr = NF_INQ_VARID (nid, "rlatu", nvarid) 150 154 IF (ierr .NE. NF_NOERR) THEN 151 PRINT*,"dynetat0: Le champ <rlatu> est absent"155 write(lunout,*)"dynetat0: Le champ <rlatu> est absent" 152 156 CALL abort 153 157 ENDIF … … 158 162 #endif 159 163 IF (ierr .NE. NF_NOERR) THEN 160 PRINT*,"dynetat0: Lecture echouee pour <rlatu>"164 write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>" 161 165 CALL abort 162 166 ENDIF … … 164 168 ierr = NF_INQ_VARID (nid, "rlonv", nvarid) 165 169 IF (ierr .NE. NF_NOERR) THEN 166 PRINT*,"dynetat0: Le champ <rlonv> est absent"170 write(lunout,*)"dynetat0: Le champ <rlonv> est absent" 167 171 CALL abort 168 172 ENDIF … … 173 177 #endif 174 178 IF (ierr .NE. NF_NOERR) THEN 175 PRINT*,"dynetat0: Lecture echouee pour <rlonv>"179 write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>" 176 180 CALL abort 177 181 ENDIF … … 179 183 ierr = NF_INQ_VARID (nid, "rlatv", nvarid) 180 184 IF (ierr .NE. NF_NOERR) THEN 181 PRINT*,"dynetat0: Le champ <rlatv> est absent"185 write(lunout,*)"dynetat0: Le champ <rlatv> est absent" 182 186 CALL abort 183 187 ENDIF … … 188 192 #endif 189 193 IF (ierr .NE. NF_NOERR) THEN 190 PRINT*,"dynetat0: Lecture echouee pour rlatv"194 write(lunout,*)"dynetat0: Lecture echouee pour rlatv" 191 195 CALL abort 192 196 ENDIF … … 194 198 ierr = NF_INQ_VARID (nid, "cu", nvarid) 195 199 IF (ierr .NE. NF_NOERR) THEN 196 PRINT*,"dynetat0: Le champ <cu> est absent"200 write(lunout,*)"dynetat0: Le champ <cu> est absent" 197 201 CALL abort 198 202 ENDIF … … 203 207 #endif 204 208 IF (ierr .NE. NF_NOERR) THEN 205 PRINT*,"dynetat0: Lecture echouee pour <cu>"209 write(lunout,*)"dynetat0: Lecture echouee pour <cu>" 206 210 CALL abort 207 211 ENDIF … … 209 213 ierr = NF_INQ_VARID (nid, "cv", nvarid) 210 214 IF (ierr .NE. NF_NOERR) THEN 211 PRINT*,"dynetat0: Le champ <cv> est absent"215 write(lunout,*)"dynetat0: Le champ <cv> est absent" 212 216 CALL abort 213 217 ENDIF … … 218 222 #endif 219 223 IF (ierr .NE. NF_NOERR) THEN 220 PRINT*,"dynetat0: Lecture echouee pour <cv>"224 write(lunout,*)"dynetat0: Lecture echouee pour <cv>" 221 225 CALL abort 222 226 ENDIF … … 224 228 ierr = NF_INQ_VARID (nid, "aire", nvarid) 225 229 IF (ierr .NE. NF_NOERR) THEN 226 PRINT*,"dynetat0: Le champ <aire> est absent"230 write(lunout,*)"dynetat0: Le champ <aire> est absent" 227 231 CALL abort 228 232 ENDIF … … 233 237 #endif 234 238 IF (ierr .NE. NF_NOERR) THEN 235 PRINT*,"dynetat0: Lecture echouee pour <aire>"239 write(lunout,*)"dynetat0: Lecture echouee pour <aire>" 236 240 CALL abort 237 241 ENDIF … … 239 243 ierr = NF_INQ_VARID (nid, "phisinit", nvarid) 240 244 IF (ierr .NE. NF_NOERR) THEN 241 PRINT*,"dynetat0: Le champ <phisinit> est absent"245 write(lunout,*)"dynetat0: Le champ <phisinit> est absent" 242 246 CALL abort 243 247 ENDIF … … 248 252 #endif 249 253 IF (ierr .NE. NF_NOERR) THEN 250 PRINT*,"dynetat0: Lecture echouee pour <phisinit>"254 write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>" 251 255 CALL abort 252 256 ENDIF … … 254 258 ierr = NF_INQ_VARID (nid, "temps", nvarid) 255 259 IF (ierr .NE. NF_NOERR) THEN 256 PRINT*,"dynetat0: Le champ <temps> est absent"260 write(lunout,*)"dynetat0: Le champ <temps> est absent" 257 261 CALL abort 258 262 ENDIF … … 263 267 #endif 264 268 IF (ierr .NE. NF_NOERR) THEN 265 PRINT*,"dynetat0: Lecture echouee <temps>"269 write(lunout,*)"dynetat0: Lecture echouee <temps>" 266 270 CALL abort 267 271 ENDIF … … 269 273 ierr = NF_INQ_VARID (nid, "ucov", nvarid) 270 274 IF (ierr .NE. NF_NOERR) THEN 271 PRINT*,"dynetat0: Le champ <ucov> est absent"275 write(lunout,*)"dynetat0: Le champ <ucov> est absent" 272 276 CALL abort 273 277 ENDIF … … 278 282 #endif 279 283 IF (ierr .NE. NF_NOERR) THEN 280 PRINT*,"dynetat0: Lecture echouee pour <ucov>"284 write(lunout,*)"dynetat0: Lecture echouee pour <ucov>" 281 285 CALL abort 282 286 ENDIF … … 284 288 ierr = NF_INQ_VARID (nid, "vcov", nvarid) 285 289 IF (ierr .NE. NF_NOERR) THEN 286 PRINT*,"dynetat0: Le champ <vcov> est absent"290 write(lunout,*)"dynetat0: Le champ <vcov> est absent" 287 291 CALL abort 288 292 ENDIF … … 293 297 #endif 294 298 IF (ierr .NE. NF_NOERR) THEN 295 PRINT*,"dynetat0: Lecture echouee pour <vcov>"299 write(lunout,*)"dynetat0: Lecture echouee pour <vcov>" 296 300 CALL abort 297 301 ENDIF … … 299 303 ierr = NF_INQ_VARID (nid, "teta", nvarid) 300 304 IF (ierr .NE. NF_NOERR) THEN 301 PRINT*,"dynetat0: Le champ <teta> est absent"305 write(lunout,*)"dynetat0: Le champ <teta> est absent" 302 306 CALL abort 303 307 ENDIF … … 308 312 #endif 309 313 IF (ierr .NE. NF_NOERR) THEN 310 PRINT*, "dynetat0: Lecture echouee pour <teta>" 311 CALL abort 312 ENDIF 313 314 314 write(lunout,*)"dynetat0: Lecture echouee pour <teta>" 315 CALL abort 316 ENDIF 317 318 319 IF(nqtot.GE.1) THEN 315 320 DO iq=1,nqtot 316 321 ierr = NF_INQ_VARID (nid, tname(iq), nvarid) 317 322 IF (ierr .NE. NF_NOERR) THEN 318 PRINT*, "dynetat0: Le champ <"//tname(iq)//"> est absent" 319 PRINT*, " Il est donc initialise a zero" 323 write(lunout,*)"dynetat0: Le champ <"//tname(iq)// 324 & "> est absent" 325 write(lunout,*)" Il est donc initialise a zero" 320 326 q(:,:,iq)=0. 321 327 ELSE … … 326 332 #endif 327 333 IF (ierr .NE. NF_NOERR) THEN 328 PRINT*,"dynetat0: Lecture echouee pour "//tname(iq)329 334 write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq) 335 CALL abort 330 336 ENDIF 331 337 ENDIF 332 338 ENDDO 339 ENDIF 333 340 334 341 ierr = NF_INQ_VARID (nid, "masse", nvarid) 335 342 IF (ierr .NE. NF_NOERR) THEN 336 PRINT*,"dynetat0: Le champ <masse> est absent"343 write(lunout,*)"dynetat0: Le champ <masse> est absent" 337 344 CALL abort 338 345 ENDIF … … 343 350 #endif 344 351 IF (ierr .NE. NF_NOERR) THEN 345 PRINT*,"dynetat0: Lecture echouee pour <masse>"352 write(lunout,*)"dynetat0: Lecture echouee pour <masse>" 346 353 CALL abort 347 354 ENDIF … … 349 356 ierr = NF_INQ_VARID (nid, "ps", nvarid) 350 357 IF (ierr .NE. NF_NOERR) THEN 351 PRINT*,"dynetat0: Le champ <ps> est absent"358 write(lunout,*)"dynetat0: Le champ <ps> est absent" 352 359 CALL abort 353 360 ENDIF … … 358 365 #endif 359 366 IF (ierr .NE. NF_NOERR) THEN 360 PRINT*,"dynetat0: Lecture echouee pour <ps>"367 write(lunout,*)"dynetat0: Lecture echouee pour <ps>" 361 368 CALL abort 362 369 ENDIF -
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem.F
r1299 r1380 8 8 #endif 9 9 USE infotrac 10 10 11 IMPLICIT NONE 11 12 c======================================================================= … … 25 26 #include "description.h" 26 27 #include "serre.h" 28 #include "iniprint.h" 27 29 28 30 c Arguments: … … 72 74 tab_cntrl(l) = 0. 73 75 ENDDO 74 tab_cntrl(1) = 75 tab_cntrl(2) = 76 tab_cntrl(3) = 77 tab_cntrl(4) = 78 tab_cntrl(5) = 76 tab_cntrl(1) = REAL(iim) 77 tab_cntrl(2) = REAL(jjm) 78 tab_cntrl(3) = REAL(llm) 79 tab_cntrl(4) = REAL(day_ref) 80 tab_cntrl(5) = REAL(annee_ref) 79 81 tab_cntrl(6) = rad 80 82 tab_cntrl(7) = omeg … … 116 118 ENDIF 117 119 118 tab_cntrl(30) = 119 tab_cntrl(31) = 120 tab_cntrl(30) = REAL(iday_end) 121 tab_cntrl(31) = REAL(itau_dyn + itaufin) 120 122 c 121 123 c ......................................................... … … 125 127 ierr = NF_CREATE(fichnom, NF_CLOBBER, nid) 126 128 IF (ierr.NE.NF_NOERR) THEN 127 WRITE(6,*)" Pb d ouverture du fichier "//fichnom 128 WRITE(6,*)' ierr = ', ierr 129 write(lunout,*)"dynredem0: Pb d ouverture du fichier " 130 & //trim(fichnom) 131 write(lunout,*)' ierr = ', ierr 129 132 CALL ABORT 130 133 ENDIF … … 508 511 ierr = NF_CLOSE(nid) ! fermer le fichier 509 512 510 PRINT*,'iim,jjm,llm,iday_end',iim,jjm,llm,iday_end 511 PRINT*,'rad,omeg,g,cpp,kappa', 512 , rad,omeg,g,cpp,kappa 513 write(lunout,*)'dynredem0: iim,jjm,llm,iday_end', 514 & iim,jjm,llm,iday_end 515 write(lunout,*)'dynredem0: rad,omeg,g,cpp,kappa', 516 & rad,omeg,g,cpp,kappa 513 517 514 518 RETURN … … 518 522 USE infotrac 519 523 USE control_mod 524 520 525 IMPLICIT NONE 521 526 c================================================================= … … 529 534 #include "comgeom.h" 530 535 #include "temps.h" 536 #include "iniprint.h" 537 531 538 532 539 INTEGER l … … 555 562 ierr = NF_OPEN(fichnom, NF_WRITE, nid) 556 563 IF (ierr .NE. NF_NOERR) THEN 557 PRINT*, "Pb. d ouverture "//fichnom564 write(lunout,*)"dynredem1: Pb. d ouverture "//trim(fichnom) 558 565 CALL abort 559 566 ENDIF … … 564 571 ierr = NF_INQ_VARID(nid, "temps", nvarid) 565 572 IF (ierr .NE. NF_NOERR) THEN 566 print *,NF_STRERROR(ierr)573 write(lunout,*) NF_STRERROR(ierr) 567 574 abort_message='Variable temps n est pas definie' 568 575 CALL abort_gcm(modname,abort_message,ierr) … … 573 580 ierr = NF_PUT_VAR1_REAL (nid,nvarid,nb,time) 574 581 #endif 575 PRINT*, "Enregistrement pour ", nb, time582 write(lunout,*) "dynredem1: Enregistrement pour ", nb, time 576 583 577 584 c … … 589 596 ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl) 590 597 #endif 591 tab_cntrl(31) = 598 tab_cntrl(31) = REAL(itau_dyn + itaufin) 592 599 #ifdef NC_DOUBLE 593 600 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl) … … 600 607 ierr = NF_INQ_VARID(nid, "ucov", nvarid) 601 608 IF (ierr .NE. NF_NOERR) THEN 602 PRINT*, "Variable ucov n est pas definie" 603 CALL abort 609 abort_message="Variable ucov n est pas definie" 610 ierr=1 611 CALL abort_gcm(modname,abort_message,ierr) 604 612 ENDIF 605 613 #ifdef NC_DOUBLE … … 611 619 ierr = NF_INQ_VARID(nid, "vcov", nvarid) 612 620 IF (ierr .NE. NF_NOERR) THEN 613 PRINT*, "Variable vcov n est pas definie" 614 CALL abort 621 abort_message="Variable vcov n est pas definie" 622 ierr=1 623 CALL abort_gcm(modname,abort_message,ierr) 615 624 ENDIF 616 625 #ifdef NC_DOUBLE … … 622 631 ierr = NF_INQ_VARID(nid, "teta", nvarid) 623 632 IF (ierr .NE. NF_NOERR) THEN 624 PRINT*, "Variable teta n est pas definie" 625 CALL abort 633 abort_message="Variable teta n est pas definie" 634 ierr=1 635 CALL abort_gcm(modname,abort_message,ierr) 626 636 ENDIF 627 637 #ifdef NC_DOUBLE … … 635 645 ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac) 636 646 IF (ierr_file .NE.NF_NOERR) THEN 637 write(6,*)' Pb d''ouverture du fichier start_trac.nc' 638 write(6,*)' ierr = ', ierr_file 647 write(lunout,*)'dynredem1: Pb d''ouverture du fichier', 648 & ' start_trac.nc' 649 write(lunout,*)' ierr = ', ierr_file 639 650 ENDIF 640 651 END IF … … 646 657 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 647 658 IF (ierr .NE. NF_NOERR) THEN 648 PRINT*, "Variable tname(iq) n est pas definie" 649 CALL abort 659 abort_message="Variable tname(iq) n est pas definie" 660 ierr=1 661 CALL abort_gcm(modname,abort_message,ierr) 650 662 ENDIF 651 663 #ifdef NC_DOUBLE … … 659 671 ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac) 660 672 IF (ierr .NE. NF_NOERR) THEN 661 PRINT*, tname(iq),"est absent de start_trac.nc" 673 write(lunout,*) "dynredem1: ",trim(tname(iq)), 674 & " est absent de start_trac.nc" 662 675 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 663 676 IF (ierr .NE. NF_NOERR) THEN 664 PRINT*, "Variable ", tname(iq)," n est pas definie" 665 CALL abort 677 abort_message="dynredem1: Variable "// 678 & trim(tname(iq))//" n est pas definie" 679 ierr=1 680 CALL abort_gcm(modname,abort_message,ierr) 666 681 ENDIF 667 682 #ifdef NC_DOUBLE … … 672 687 673 688 ELSE 674 PRINT*, tname(iq), "est present dans start_trac.nc" 689 write(lunout,*) "dynredem1: ",trim(tname(iq)), 690 & " est present dans start_trac.nc" 675 691 #ifdef NC_DOUBLE 676 692 ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp) … … 679 695 #endif 680 696 IF (ierr .NE. NF_NOERR) THEN 681 PRINT*, "Lecture echouee pour", tname(iq) 682 CALL abort 697 abort_message="dynredem1: Lecture echouee pour"// 698 & trim(tname(iq)) 699 ierr=1 700 CALL abort_gcm(modname,abort_message,ierr) 683 701 ENDIF 684 702 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 685 703 IF (ierr .NE. NF_NOERR) THEN 686 PRINT*, "Variable ", tname(iq)," n est pas definie" 687 CALL abort 704 abort_message="dynredem1: Variable "// 705 & trim(tname(iq))//" n est pas definie" 706 ierr=1 707 CALL abort_gcm(modname,abort_message,ierr) 688 708 ENDIF 689 709 #ifdef NC_DOUBLE … … 699 719 ierr = NF_INQ_VARID(nid, tname(iq), nvarid) 700 720 IF (ierr .NE. NF_NOERR) THEN 701 PRINT*, "Variable tname(iq) n est pas definie" 702 CALL abort 721 abort_message="dynredem1: Variable "// 722 & trim(tname(iq))//" n est pas definie" 723 ierr=1 724 CALL abort_gcm(modname,abort_message,ierr) 703 725 ENDIF 704 726 #ifdef NC_DOUBLE … … 715 737 ierr = NF_INQ_VARID(nid, "masse", nvarid) 716 738 IF (ierr .NE. NF_NOERR) THEN 717 PRINT*, "Variable masse n est pas definie" 718 CALL abort 739 abort_message="dynredem1: Variable masse n est pas definie" 740 ierr=1 741 CALL abort_gcm(modname,abort_message,ierr) 719 742 ENDIF 720 743 #ifdef NC_DOUBLE … … 726 749 ierr = NF_INQ_VARID(nid, "ps", nvarid) 727 750 IF (ierr .NE. NF_NOERR) THEN 728 PRINT*, "Variable ps n est pas definie" 729 CALL abort 751 abort_message="dynredem1: Variable ps n est pas definie" 752 ierr=1 753 CALL abort_gcm(modname,abort_message,ierr) 730 754 ENDIF 731 755 #ifdef NC_DOUBLE -
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/gcm.F
r1357 r1380 274 274 CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0) 275 275 endif 276 !#ifdef CPP_IOIPSL 276 277 277 if (planet_type.eq."earth") then 278 278 #ifdef CPP_EARTH 279 279 ! Load an Earth-format start file 280 280 CALL dynetat0("start.nc",vcov,ucov, 281 . teta,q,masse,ps,phis, time_0) 282 #endif 281 & teta,q,masse,ps,phis, time_0) 282 #endif 283 ! SW model also has Earth-format start files 284 ! (but can be used without the CPP_EARTH directive) 285 if (iflag_phys.eq.0) then 286 CALL dynetat0("start.nc",vcov,ucov, 287 & teta,q,masse,ps,phis, time_0) 288 endif 289 283 290 endif ! of if (planet_type.eq."earth") 291 284 292 c write(73,*) 'ucov',ucov 285 293 c write(74,*) 'vcov',vcov -
LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniconst.F
r1299 r1380 5 5 6 6 USE control_mod 7 7 8 IMPLICIT NONE 8 9 c … … 18 19 #include "temps.h" 19 20 #include "comvert.h" 21 #include "iniprint.h" 20 22 21 23 … … 47 49 r = cpp * kappa 48 50 49 PRINT*,'R CP Kappa ', r , cpp, kappa51 write(lunout,*)'iniconst: R CP Kappa ', r , cpp, kappa 50 52 c 51 53 c-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.