Changeset 1380 for LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar
- Timestamp:
- May 6, 2010, 2:24:59 PM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
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.