- Timestamp:
- 12/02/14 19:21:00 (10 years ago)
- Location:
- codes/icosagcm/branches/SATURN_DYNAMICO
- Files:
-
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/caldyn_gcm.f90
r260 r298 33 33 USE exner_mod 34 34 USE mpipara 35 USE omp_para, ONLY: omp_master 35 36 IMPLICIT NONE 36 37 CHARACTER(len=255) :: def … … 50 51 STOP 51 52 END SELECT 52 IF (is_mpi_root ) PRINT *, 'caldyn_conserv=',def53 IF (is_mpi_root .AND. omp_master) PRINT *, 'caldyn_conserv=',def 53 54 54 55 CALL allocate_caldyn … … 294 295 IF (write_out) THEN 295 296 296 IF (is_mpi_root) PRINT *,'CALL write_output_fields'297 ! IF (is_mpi_root) PRINT *,'CALL write_output_fields' 297 298 298 299 ! ---> for openMP test to fix later … … 892 893 USE icosa 893 894 USE mpipara 895 USE omp_para, ONLY: omp_master 894 896 IMPLICIT NONE 895 897 TYPE(t_field),POINTER :: f_ps(:) … … 924 926 925 927 ENDDO 926 IF (is_mpi_root ) PRINT*, "mass_tot ", mass_tot," dmass_tot ",dmass_tot928 IF (is_mpi_root .AND. omp_master) PRINT*, "mass_tot ", mass_tot," dmass_tot ",dmass_tot 927 929 928 930 END SUBROUTINE check_mass_conservation -
codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/check_conserve.f90
r262 r298 88 88 WRITE(134,*)mtot,rmsdpdt,etot,ztot,stot,rmsv,ang 89 89 WRITE(134,*)"==================================================" 90 WRITE(*,4000)mtot,rmsdpdt,etot,ztot,stot,rmsv,ang90 ! WRITE(*,4000)mtot,rmsdpdt,etot,ztot,stot,rmsv,ang 91 91 92 92 4000 FORMAT(10x,'masse',5x,'rmsdpdt',5x,'energie',5x,'enstrophie' & -
codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/dissip_gcm.f90
r267 r298 68 68 USE mpi_mod 69 69 USE mpipara 70 USE omp_para, ONLY: omp_master 70 71 USE transfert_mod 71 72 USE time_mod … … 100 101 CASE('none') 101 102 rayleigh_friction_type=0 102 IF (is_mpi_root ) PRINT *, 'No Rayleigh friction'103 IF (is_mpi_root .AND. omp_master) PRINT *, 'No Rayleigh friction' 103 104 CASE('dcmip2_schaer_noshear') 104 105 rayleigh_friction_type=1 105 106 rayleigh_shear=0 106 IF (is_mpi_root ) PRINT *, 'Rayleigh friction : Schaer-like mountain without shear DCMIP2.1'107 IF (is_mpi_root .AND. omp_master) PRINT *, 'Rayleigh friction : Schaer-like mountain without shear DCMIP2.1' 107 108 CASE('dcmip2_schaer_shear') 108 109 rayleigh_shear=1 109 110 rayleigh_friction_type=2 110 IF (is_mpi_root ) PRINT *, 'Rayleigh friction : Schaer-like mountain with shear DCMIP2.2'111 IF (is_mpi_root .AND. omp_master) PRINT *, 'Rayleigh friction : Schaer-like mountain with shear DCMIP2.2' 111 112 CASE DEFAULT 112 IF (is_mpi_root ) PRINT *, 'Bad selector : rayleigh_friction_type =', TRIM(rayleigh_friction_key), ' in dissip_gcm.f90/init_dissip'113 IF (is_mpi_root .AND. omp_master) PRINT *, 'Bad selector : rayleigh_friction_type =', TRIM(rayleigh_friction_key), ' in dissip_gcm.f90/init_dissip' 113 114 STOP 114 115 END SELECT … … 119 120 rayleigh_tau = rayleigh_tau / scale_factor 120 121 IF(rayleigh_tau<=0) THEN 121 IF (is_mpi_root ) PRINT *, 'Forbidden : negative value for rayleigh_friction_tau =',rayleigh_tau122 IF (is_mpi_root .AND. omp_master) PRINT *, 'Forbidden : negative value for rayleigh_friction_tau =',rayleigh_tau 122 123 STOP 123 124 END IF … … 232 233 u=du/dumax 233 234 ENDDO 234 IF (is_mpi_root ) PRINT *,"gradiv : it :",it ,": dumax",dumax235 IF (is_mpi_root .AND. omp_master) PRINT *,"gradiv : it :",it ,": dumax",dumax 235 236 236 237 ENDDO 237 IF (is_mpi_root ) PRINT *,"gradiv : dumax",dumax238 IF (is_mpi_root ) PRINT *, 'mean T-cell edge size (km)', 1.45*radius/iim_glo/1000., &238 IF (is_mpi_root .AND. omp_master) PRINT *,"gradiv : dumax",dumax 239 IF (is_mpi_root .AND. omp_master) PRINT *, 'mean T-cell edge size (km)', 1.45*radius/iim_glo/1000., & 239 240 'effective T-cell half-edge size (km)', dumax**(-.5/nitergdiv)/1000 240 IF (is_mpi_root ) PRINT *, 'Max. time step assuming c=340 m/s and Courant number=2.8 :', &241 IF (is_mpi_root .AND. omp_master) PRINT *, 'Max. time step assuming c=340 m/s and Courant number=2.8 :', & 241 242 2.8/340.*dumax**(-.5/nitergdiv) 242 243 243 244 cgraddiv=dumax**(-1./nitergdiv) 244 IF (is_mpi_root ) PRINT *,"cgraddiv : ",cgraddiv245 IF (is_mpi_root .AND. omp_master) PRINT *,"cgraddiv : ",cgraddiv 245 246 246 247 DO ind=1,ndomain … … 320 321 ENDDO 321 322 322 IF (is_mpi_root ) PRINT *,"gradrot : it :",it ,": dumax",dumax323 IF (is_mpi_root .AND. omp_master) PRINT *,"gradrot : it :",it ,": dumax",dumax 323 324 324 325 ENDDO 325 IF (is_mpi_root ) PRINT *,"gradrot : dumax",dumax326 IF (is_mpi_root .AND. omp_master) PRINT *,"gradrot : dumax",dumax 326 327 327 328 cgradrot=dumax**(-1./nitergrot) 328 IF (is_mpi_root ) PRINT *,"cgradrot : ",cgradrot329 IF (is_mpi_root .AND. omp_master) PRINT *,"cgradrot : ",cgradrot 329 330 330 331 … … 389 390 ENDIF 390 391 391 IF (is_mpi_root ) PRINT *,"divgrad : it :",it ,": dthetamax",dthetamax392 IF (is_mpi_root .AND. omp_master) PRINT *,"divgrad : it :",it ,": dthetamax",dthetamax 392 393 393 394 DO ind=1,ndomain … … 401 402 ENDDO 402 403 403 IF (is_mpi_root ) PRINT *,"divgrad : divgrad",dthetamax404 IF (is_mpi_root .AND. omp_master) PRINT *,"divgrad : divgrad",dthetamax 404 405 405 406 cdivgrad=dthetamax**(-1./niterdivgrad) 406 IF (is_mpi_root ) PRINT *,"cdivgrad : ",cdivgrad407 IF (is_mpi_root .AND. omp_master) PRINT *,"cdivgrad : ",cdivgrad 407 408 408 409 … … 431 432 dtdissip=itau_dissip*dt 432 433 ELSE 433 IF (is_mpi_root ) PRINT *,"No dissipation time set, setting itau_dissip to 1000000000"434 IF (is_mpi_root .AND. omp_master) PRINT *,"No dissipation time set, setting itau_dissip to 1000000000" 434 435 itau_dissip=100000000 435 436 END IF 436 437 itau_dissip=MAX(1,itau_dissip) 437 IF (is_mpi_root ) PRINT *,"mintau ",mintau,"itau_dissip",itau_dissip," dtdissip ",dtdissip438 IF (is_mpi_root .AND. omp_master) PRINT *,"mintau ",mintau,"itau_dissip",itau_dissip," dtdissip ",dtdissip 438 439 439 440 END SUBROUTINE init_dissip -
codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/sponge.f90
r291 r298 29 29 tau_sponge = 1.e-4 30 30 CALL getin("tau_sponge",tau_sponge) 31 PRINT*,'tau_sponge = ',tau_sponge31 IF (is_mpi_master .AND. omp_master) PRINT*,'tau_sponge = ',tau_sponge 32 32 33 33 iflag_sponge = 0 34 34 CALL getin("iflag_sponge",iflag_sponge) 35 PRINT*,'iflag_sponge = ',iflag_sponge35 IF (is_mpi_master .AND. omp_master) PRINT*,'iflag_sponge = ',iflag_sponge 36 36 37 37 mode_sponge = 1 38 38 CALL getin("mode_sponge",mode_sponge) 39 PRINT*,'mode_sponge = ',mode_sponge39 IF (is_mpi_master .AND. omp_master) PRINT*,'mode_sponge = ',mode_sponge 40 40 41 41 IF (iflag_sponge == 0) THEN 42 PRINT*,'init_sponge: no sponge'42 IF (is_mpi_master .AND. omp_master) PRINT*,'init_sponge: no sponge' 43 43 RETURN 44 44 ENDIF -
codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/time.f90
r267 r298 51 51 USE getin_mod 52 52 USE mpipara 53 USE omp_para, ONLY: omp_master 53 54 IMPLICIT NONE 54 55 REAL(rstd) :: run_length … … 74 75 write_period=write_period/scale_factor 75 76 itau_out=FLOOR(.5+write_period/dt) 76 IF (is_mpi_root ) PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out77 IF (is_mpi_root .AND. omp_master) PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out 77 78 ENDIF 78 79 … … 86 87 CALL getin('itau_physics',itau_physics) 87 88 88 IF (is_mpi_root ) THEN89 IF (is_mpi_root .AND. omp_master) THEN 89 90 PRINT *, 'itaumax=',itaumax 90 91 PRINT *, 'itau_adv=',itau_adv, 'itau_dissip=',itau_dissip, 'itau_physics=',itau_physics -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/dyn3d_common/disvert_noterre.F
r222 r298 12 12 use ioipsl_getincom 13 13 #endif 14 use mod_phys_lmdz_para, only : is_master 14 15 15 16 IMPLICIT NONE … … 59 60 hybrid=.true. ! default value for hybrid (ie: use hybrid coordinates) 60 61 CALL getin('hybrid',hybrid) 61 write(lunout,*) trim(modname),': hybrid=',hybrid62 if (is_master) write(lunout,*) trim(modname),': hybrid=',hybrid 62 63 63 64 ! Ouverture possible de fichiers typiquement E.T. … … 82 83 c <-> energie cinetique, d'apres la note de Frederic Hourdin... 83 84 84 write(lunout,*)'*****************************'85 write(lunout,*)'WARNING reading esasig.def'86 write(lunout,*)'*****************************'85 if (is_master) write(lunout,*)'*****************************' 86 if (is_master) write(lunout,*)'WARNING reading esasig.def' 87 if (is_master) write(lunout,*)'*****************************' 87 88 READ(99,*) scaleheight 88 89 READ(99,*) dz0 … … 131 132 132 133 ELSE IF(ierr4.eq.0) then 133 write(lunout,*)'****************************'134 write(lunout,*)'Reading z2sig.def'135 write(lunout,*)'****************************'134 if (is_master) write(lunout,*)'****************************' 135 if (is_master) write(lunout,*)'Reading z2sig.def' 136 if (is_master) write(lunout,*)'****************************' 136 137 137 138 READ(99,*) scaleheight … … 174 175 175 176 if (hybrid) then ! use hybrid coordinates 176 write(lunout,*) "*********************************" 177 write(lunout,*) "Using hybrid vertical coordinates" 178 write(lunout,*) 177 if (is_master) write(lunout,*) "***************************" 178 if (is_master) write(lunout,*) "Using hybrid vertical", 179 & " coordinates" 180 if (is_master) write(lunout,*) 179 181 c Coordonnees hybrides avec mod 180 182 DO l = 1, llm … … 187 189 ap(llmp1) = 0. 188 190 else ! use sigma coordinates 189 write(lunout,*) "********************************" 190 write(lunout,*) "Using sigma vertical coordinates" 191 write(lunout,*) 191 if (is_master) write(lunout,*) "***************************" 192 if (is_master) write(lunout,*) "Using sigma vertical", 193 & " coordinates" 194 if (is_master) write(lunout,*) 192 195 c Pour ne pas passer en coordonnees hybrides 193 196 DO l = 1, llm … … 200 203 bp(llmp1) = 0. 201 204 202 write(lunout,*) trim(modname),': BP '203 write(lunout,*) bp204 write(lunout,*) trim(modname),': AP '205 write(lunout,*) ap205 if (is_master) write(lunout,*) trim(modname),': BP ' 206 if (is_master) write(lunout,*) bp 207 if (is_master) write(lunout,*) trim(modname),': AP ' 208 if (is_master) write(lunout,*) ap 206 209 207 210 c Calcul au milieu des couches : … … 226 229 end if 227 230 228 write(lunout,*) trim(modname),': BPs '229 write(lunout,*) bps230 write(lunout,*) trim(modname),': APs'231 write(lunout,*) aps231 if (is_master) write(lunout,*) trim(modname),': BPs ' 232 if (is_master) write(lunout,*) bps 233 if (is_master) write(lunout,*) trim(modname),': APs' 234 if (is_master) write(lunout,*) aps 232 235 233 236 DO l = 1, llm … … 236 239 ENDDO 237 240 238 write(lunout,*)trim(modname),' : PRESNIVS'239 write(lunout,*)presnivs240 write(lunout,*)'Pseudo altitude of Presnivs : (for a scale',241 & 'height of ',scaleheight,' km)'242 write(lunout,*)pseudoalt241 if (is_master) write(lunout,*)trim(modname),' : PRESNIVS' 242 if (is_master) write(lunout,*)presnivs 243 if (is_master) write(lunout,*)'Pseudo altitude of Presnivs : ', 244 & '(for a scale height of ',scaleheight,' km)' 245 if (is_master) write(lunout,*)pseudoalt 243 246 244 247 c -------------------------------------------------- -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/dyn3d_common/inigeom.F
r222 r298 16 16 c 17 17 c 18 use mod_phys_lmdz_para, only : is_master 18 19 IMPLICIT NONE 19 20 c … … 160 161 c 161 162 c 162 WRITE(6,3)163 if (is_master) WRITE(6,3) 163 164 3 FORMAT( // 10x,' .... INIGEOM date du 01/06/98 ..... ', 164 165 * //5x,' Calcul des elongations cu et cv comme sommes des 4 ' / … … 183 184 ENDIF 184 185 185 WRITE(6,*) ' gamdi_gd ',gamdi_gdiv,gamdi_grot,gamdi_h,coefdis,186 * nitergdiv,nitergrot,niterh186 if (is_master) WRITE(6,*) ' gamdi_gd ',gamdi_gdiv,gamdi_grot, 187 * gamdi_h,coefdis,nitergdiv,nitergrot,niterh 187 188 c 188 189 pi = 2.* ASIN(1.) 189 190 c 190 WRITE(6,990)191 if (is_master) WRITE(6,990) 191 192 192 193 c ---------------------------------------------------------------- … … 197 198 IF( ysinus ) THEN 198 199 c 199 WRITE(6,*) ' *** Inigeom , Y = Sinus ( Latitude ) *** ' 200 if (is_master) WRITE(6,*) ' *** Inigeom , Y = Sinus ', 201 * '( Latitude ) *** ' 200 202 c 201 203 c .... utilisation de f(x,y ) avec y = sinus de la latitude ..... … … 207 209 ELSE 208 210 c 209 WRITE(6,*) '*** Inigeom , Y = Latitude , der. sinusoid . ***' 211 if (is_master) WRITE(6,*) '*** Inigeom , Y = Latitude ,', 212 * ' der. sinusoid . ***' 210 213 211 214 c .... utilisation de f(x,y) a tangente sinusoidale , y etant la latit. ... … … 262 265 c ..................................................................... 263 266 264 WRITE(6,*)'*** Inigeom , Y = Latitude , der.tg. hyperbolique ***' 267 if (is_master) WRITE(6,*)'*** Inigeom , Y = Latitude ,', 268 * ' der.tg. hyperbolique ***' 265 269 266 270 CALL fxyhyper( clat, grossismy, dzoomy, tauy , … … 656 660 c----------------------------------------------------------------------- 657 661 c 662 if (is_master) then 658 663 WRITE(6,*) ' *** Coordonnees de la grille *** ' 659 664 WRITE(6,995) … … 661 666 WRITE(6,*) ' LONGITUDES aux pts. V ( degres ) ' 662 667 WRITE(6,995) 668 end if 663 669 DO i=1,iip1 664 670 rlonvv(i) = rlonv(i)*180./pi 665 671 ENDDO 666 WRITE(6,400) rlonvv 667 c 668 WRITE(6,995) 669 WRITE(6,*) ' LATITUDES aux pts. V ( degres ) ' 670 WRITE(6,995) 672 if (is_master) WRITE(6,400) rlonvv 673 c 674 if (is_master) WRITE(6,995) 675 if (is_master) WRITE(6,*) ' LATITUDES aux pts. V ', 676 * '( degres ) ' 677 if (is_master) WRITE(6,995) 671 678 DO i=1,jjm 672 679 rlatuu(i)=rlatv(i)*180./pi 673 680 ENDDO 674 WRITE(6,400) (rlatuu(i),i=1,jjm)681 if (is_master) WRITE(6,400) (rlatuu(i),i=1,jjm) 675 682 c 676 683 DO i=1,iip1 677 684 rlonvv(i)=rlonu(i)*180./pi 678 685 ENDDO 686 if (is_master) then 679 687 WRITE(6,995) 680 688 WRITE(6,*) ' LONGITUDES aux pts. U ( degres ) ' … … 685 693 WRITE(6,*) ' LATITUDES aux pts. U ( degres ) ' 686 694 WRITE(6,995) 695 end if 696 if (is_master) WRITE(6,995) 687 697 DO i=1,jjp1 688 698 rlatuu(i)=rlatu(i)*180./pi 689 699 ENDDO 690 WRITE(6,400) (rlatuu(i),i=1,jjp1)691 WRITE(6,995)700 if (is_master) WRITE(6,400) (rlatuu(i),i=1,jjp1) 701 if (is_master) WRITE(6,995) 692 702 c 693 703 444 format(f10.3,f6.0) -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F
r222 r298 19 19 use assert_m, only: assert 20 20 use sponge_mod_p, only: callsponge,mode_sponge,nsponge,tetasponge 21 use mod_phys_lmdz_para, only : is_master 21 22 IMPLICIT NONE 22 23 !----------------------------------------------------------------------- … … 952 953 953 954 955 if (is_master) then 954 956 write(lunout,*)' #########################################' 955 957 write(lunout,*)' Configuration des parametres lus via run.def ' … … 1007 1009 write(lunout,*)' moyzon_ch = ', moyzon_ch 1008 1010 endif 1011 end if !of if (is_master) 1009 1012 1010 1013 RETURN -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F
r222 r298 11 11 use netcdf95, only: NF95_PUT_VAR 12 12 use control_mod, only : planet_type 13 use mod_phys_lmdz_para, only : is_master 13 14 14 15 IMPLICIT NONE … … 81 82 !!! .... while keeping everything OK for LMDZ EARTH 82 83 if ((planet_type.eq."generic").or.(planet_type.eq."mars")) then 83 write(lunout,*) trim(modname),' : Planeto-like start file' 84 if (is_master) write(lunout,*) trim(modname), 85 & ' : Planeto-like start file' 84 86 start_file_type="planeto" 85 87 idecal = 4 86 88 else 87 write(lunout,*) trim(modname),' : Earth-like start file' 89 if (is_master) write(lunout,*) trim(modname), 90 & ' : Earth-like start file' 88 91 idecal = 5 89 92 endif … … 573 576 ierr = NF_CLOSE(nid) ! fermer le fichier 574 577 575 PRINT*,'iim,jjm,llm,iday_end',iim,jjm,llm,iday_end576 PRINT*,'rad,omeg,g,cpp,kappa',578 if (is_master) PRINT*,'iim,jjm,llm,iday_end',iim,jjm,llm,iday_end 579 if (is_master) PRINT*,'rad,omeg,g,cpp,kappa', 577 580 , rad,omeg,g,cpp,kappa 578 581 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/aeropacity.F90
r227 r298 6 6 USE comgeomfi_h 7 7 USE tracer_h, only: noms,rho_co2,rho_ice 8 use mod_phys_lmdz_para, only : is_master 8 9 9 10 implicit none … … 86 87 IF (firstcall) THEN 87 88 88 write(*,*) "Tracers found in aeropacity:"89 if (is_master) write(*,*) "Tracers found in aeropacity:" 89 90 do iq=1,nq 90 91 tracername=noms(iq) 91 92 if (tracername.eq."co2_ice") then 92 93 i_co2ice=iq 93 write(*,*) "i_co2ice=",i_co2ice94 if (is_master) write(*,*) "i_co2ice=",i_co2ice 94 95 95 96 endif 96 97 if (tracername.eq."h2o_ice") then 97 98 i_h2oice=iq 98 write(*,*) "i_h2oice=",i_h2oice99 if (is_master) write(*,*) "i_h2oice=",i_h2oice 99 100 endif 100 101 enddo 101 102 102 103 if (noaero) then 103 print*, "No active aerosols found in aeropacity"104 if (is_master) print*, "No active aerosols found in aeropacity" 104 105 else 105 print*, "If you would like to use aerosols, make sure any old"106 print*, "start files are updated in newstart using the option"107 print*, "q=0"108 write(*,*) "Active aerosols found in aeropacity:"106 if (is_master) print*, "If you would like to use aerosols, make sure any old" 107 if (is_master) print*, "start files are updated in newstart using the option" 108 if (is_master) print*, "q=0" 109 if (is_master) write(*,*) "Active aerosols found in aeropacity:" 109 110 endif 110 111 111 112 if ((iaero_co2.ne.0).and.(.not.noaero)) then 112 print*, 'iaero_co2= ',iaero_co2113 if (is_master) print*, 'iaero_co2= ',iaero_co2 113 114 endif 114 115 if (iaero_h2o.ne.0) then 115 print*,'iaero_h2o= ',iaero_h2o116 if (is_master) print*,'iaero_h2o= ',iaero_h2o 116 117 endif 117 118 if (iaero_dust.ne.0) then 118 print*,'iaero_dust= ',iaero_dust119 if (is_master) print*,'iaero_dust= ',iaero_dust 119 120 endif 120 121 if (iaero_h2so4.ne.0) then 121 print*,'iaero_h2so4= ',iaero_h2so4122 if (is_master) print*,'iaero_h2so4= ',iaero_h2so4 122 123 endif 123 124 if (iaero_back2lay.ne.0) then 124 print*,'iaero_back2lay= ',iaero_back2lay125 if (is_master) print*,'iaero_back2lay= ',iaero_back2lay 125 126 endif 126 127 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/calc_cpp_mugaz.F90
r227 r298 18 18 19 19 use gases_h 20 use mod_phys_lmdz_para, only : is_master 20 21 implicit none 21 22 … … 86 87 cpp_c = 1000.0*cpp_c 87 88 89 if (is_master) then 88 90 print*,'Cp in calc_cpp_mugaz is ',cpp_c,'J kg^-1 K^-1' 89 91 print*,'Mg in calc_cpp_mugaz is ',mugaz_c,'amu' 90 92 print*,'Predefined Cp in physics is ',cpp,'J kg^-1 K^-1' 91 93 print*,'Predefined Mg in physics is ',mugaz,'amu' 94 end if 92 95 93 96 if (check_cpp_match) then 94 print*,'REQUEST TO CHECK cpp_match :'97 if (is_master) print*,'REQUEST TO CHECK cpp_match :' 95 98 if((abs(1.-cpp/cpp_c).gt.1.e-6) .or. & 96 99 (abs(1.-mugaz/mugaz_c).gt.1.e-6)) then … … 101 104 stop 102 105 else 103 print*,'--> OK. Settings match composition.'106 if (is_master) print*,'--> OK. Settings match composition.' 104 107 endif 105 108 endif 106 109 107 110 if (.not.force_cpp) then 108 print*,'*** Setting cpp & mugaz to computations in calc_cpp_mugaz.'111 if (is_master) print*,'*** Setting cpp & mugaz to computations in calc_cpp_mugaz.' 109 112 mugaz = mugaz_c 110 113 cpp = cpp_c 111 114 else 112 print*,'*** Setting cpp & mugaz to predefined values.'115 if (is_master) print*,'*** Setting cpp & mugaz to predefined values.' 113 116 endif 114 117 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/calc_rayleigh.F90
r222 r298 28 28 use radcommon_h, only: WAVEV, BWNV, DWNV, tstellar, tauray, taurayvar, scalep 29 29 use gases_h 30 use mod_phys_lmdz_para, only : is_master 30 31 31 32 implicit none … … 55 56 do igas=1,ngasmx 56 57 if(igas.eq.vgas)then 57 print*,'variable gas is ',trim(gnom(igas)),' in Rayleigh scattering '58 if (is_master) print*,'variable gas is ',trim(gnom(igas)),' in Rayleigh scattering ' 58 59 endif 59 60 if((igas/=vgas).and.(gfrac(igas).lt.5.e-2))then 60 print*,'Ignoring ',trim(gnom(igas)),' in Rayleigh scattering '// &61 if (is_master) print*,'Ignoring ',trim(gnom(igas)),' in Rayleigh scattering '// & 61 62 'as its mixing ratio is less than 0.05.' 62 63 ! ignore variable gas in Rayleigh calculation … … 84 85 85 86 if((gfrac(igas).eq.1.0).and.(vgas.eq.0))then 86 print*,'Rayleigh scattering is for a pure ',trim(gnom(igas)),' atmosphere.'87 if (is_master) print*,'Rayleigh scattering is for a pure ',trim(gnom(igas)),' atmosphere.' 87 88 typeknown=.true. 88 89 endif … … 92 93 93 94 if(.not.typeknown)then 94 print*,'Rayleigh scattering is for a mixed gas atmosphere.'95 if (is_master) print*,'Rayleigh scattering is for a mixed gas atmosphere.' 95 96 typeknown=.true. 96 97 endif … … 159 160 IF (L_NSPECTV > 6) THEN 160 161 icantbewrong = L_NSPECTV-6 161 print*,'At 1 atm and lambda = ',WAVEV(icantbewrong),' um'162 print*,'tau_R = ',TAURAY(icantbewrong)*1013.25163 print*,'sig_R = ',TAURAY(icantbewrong)*g*mugaz*1.67e-27*100, &162 if (is_master) print*,'At 1 atm and lambda = ',WAVEV(icantbewrong),' um' 163 if (is_master) print*,'tau_R = ',TAURAY(icantbewrong)*1013.25 164 if (is_master) print*,'sig_R = ',TAURAY(icantbewrong)*g*mugaz*1.67e-27*100, & 164 165 'cm^2 molecule^-1' 165 166 ENDIF -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/callcorrk.F90
r240 r298 18 18 use aerosol_mod, only : iaero_co2,iaero_h2o,iaero_dust,iaero_h2so4, iaero_back2lay 19 19 USE tracer_h 20 USE mod_phys_lmdz_para, only : is_master 20 21 21 22 implicit none … … 218 219 !-------------------------------------------------- 219 220 ! set up correlated k 220 print*, "callcorrk: Correlated-k data base folder:",trim(datadir)221 if (is_master) print*, "callcorrk: Correlated-k data base folder:",trim(datadir) 221 222 call getin_p("corrkdir",corrkdir) 222 print*, "corrkdir = ",corrkdir223 if (is_master) print*, "corrkdir = ",corrkdir 223 224 write( tmp1, '(i3)' ) L_NSPECTI 224 225 write( tmp2, '(i3)' ) L_NSPECTV … … 272 273 if ((iaer.eq.iaero_co2).and.tracer.and.(igcm_co2_ice.gt.0)) then ! treat condensed co2 particles. 273 274 call co2_reffrad(ngrid,nlayer,nq,pq,reffrad(1,1,iaero_co2)) 274 print*,'Max. CO2 ice particle size = ',maxval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um'275 print*,'Min. CO2 ice particle size = ',minval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um'275 if (is_master) print*,'Max. CO2 ice particle size = ',maxval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um' 276 if (is_master) print*,'Min. CO2 ice particle size = ',minval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um' 276 277 end if 277 278 if ((iaer.eq.iaero_h2o).and.water) then ! treat condensed water particles. to be generalized for other aerosols 278 279 call h2o_reffrad(ngrid,nlayer,pq(1,1,igcm_h2o_ice),pt, & 279 280 reffrad(1,1,iaero_h2o),nueffrad(1,1,iaero_h2o)) 280 print*,'Max. H2O cloud particle size = ',maxval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um'281 print*,'Min. H2O cloud particle size = ',minval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um'281 if (is_master) print*,'Max. H2O cloud particle size = ',maxval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um' 282 if (is_master) print*,'Min. H2O cloud particle size = ',minval(reffrad(1:ngrid,1:nlayer,iaer))/1.e-6,' um' 282 283 endif 283 284 if(iaer.eq.iaero_dust)then 284 285 call dust_reffrad(ngrid,nlayer,reffrad(1,1,iaero_dust)) 285 print*,'Dust particle size = ',reffrad(1,1,iaer)/1.e-6,' um'286 if (is_master) print*,'Dust particle size = ',reffrad(1,1,iaer)/1.e-6,' um' 286 287 endif 287 288 if(iaer.eq.iaero_h2so4)then 288 289 call h2so4_reffrad(ngrid,nlayer,reffrad(1,1,iaero_h2so4)) 289 print*,'H2SO4 particle size =',reffrad(1,1,iaer)/1.e-6,' um'290 if (is_master) print*,'H2SO4 particle size =',reffrad(1,1,iaer)/1.e-6,' um' 290 291 endif 291 292 if(iaer.eq.iaero_back2lay)then … … 548 549 muvarrad(2*nlayer+1)=muvar(ig,1) 549 550 550 print*,'Recalculating qvar with VARIABLE epsi for kastprof'551 print*,'Assumes that the variable gas is H2O!!!'552 print*,'Assumes that there is only one tracer'551 if (is_master) print*,'Recalculating qvar with VARIABLE epsi for kastprof' 552 if (is_master) print*,'Assumes that the variable gas is H2O!!!' 553 if (is_master) print*,'Assumes that there is only one tracer' 553 554 !i_var=igcm_h2o_vap 554 555 i_var=1 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/iniaerosol.F
r222 r298 4 4 use radinc_h, only: naerkind 5 5 use aerosol_mod 6 use mod_phys_lmdz_para, only : is_master 6 7 7 8 IMPLICIT NONE … … 26 27 iaero_co2=ia 27 28 endif 28 write(*,*) '--- CO2 aerosol = ', iaero_co229 if (is_master) write(*,*) '--- CO2 aerosol = ', iaero_co2 29 30 30 31 if (aeroh2o) then … … 32 33 iaero_h2o=ia 33 34 endif 34 write(*,*) '--- H2O aerosol = ', iaero_h2o35 if (is_master) write(*,*) '--- H2O aerosol = ', iaero_h2o 35 36 36 37 if (dusttau.gt.0) then … … 38 39 iaero_dust=ia 39 40 endif 40 write(*,*) '--- Dust aerosol = ', iaero_dust41 if (is_master) write(*,*) '--- Dust aerosol = ', iaero_dust 41 42 42 43 if (aeroh2so4) then … … 44 45 iaero_h2so4=ia 45 46 endif 46 write(*,*) '--- H2SO4 aerosol = ', iaero_h2so447 if (is_master) write(*,*) '--- H2SO4 aerosol = ', iaero_h2so4 47 48 48 49 if (aeroback2lay) then … … 50 51 iaero_back2lay=ia 51 52 endif 52 write(*,*) '--- Two-layer aerosol = ', iaero_back2lay 53 if (is_master) write(*,*) '--- Two-layer aerosol = ', 54 & iaero_back2lay 53 55 54 write(*,*) '=== Number of aerosols= ', ia56 if (is_master) write(*,*) '=== Number of aerosols= ', ia 55 57 56 58 ! For the zero aerosol case, we currently make a dummy co2 aerosol which is zero everywhere. -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/inifis.F
r273 r298 52 52 ! USE ioipsl_getincom 53 53 USE ioipsl_getincom_p 54 use mod_phys_lmdz_para, only : is_master 54 55 IMPLICIT NONE 55 56 !#include "dimensions.h" … … 89 90 rcp=r/cpp 90 91 ! Ehouarn debug: 92 if (is_master) then 91 93 write(*,*) "inifis: rad=",rad 92 94 write(*,*) " daysec=",daysec … … 96 98 write(*,*) " r=",r 97 99 write(*,*) " rcp=",rcp 100 end if 98 101 99 102 avocado = 6.02214179e23 ! added by RW … … 121 124 !!! IF(ierr.EQ.0) THEN 122 125 IF(iscallphys) THEN 126 if (is_master) then 123 127 PRINT* 124 128 PRINT* … … 126 130 PRINT*,' inifis: Parametres pour la physique (callphys.def)' 127 131 PRINT*,'--------------------------------------------' 128 129 write(*,*) "Directory where external input files are:" 132 end if 133 134 if (is_master) write(*,*) "Directory where external input", 135 & " files are:" 136 130 137 ! default 'datadir' is set in "datadir_mod" 131 138 call getin_p("datadir",datadir) ! default path 132 write(*,*) " datadir = ",trim(datadir) 133 134 write(*,*) "Run with or without tracer transport ?" 139 if (is_master) write(*,*) " datadir = ",trim(datadir) 140 141 if (is_master) write(*,*) "Run with or without tracer", 142 & " transport ?" 135 143 tracer=.false. ! default value 136 144 call getin_p("tracer",tracer) 137 write(*,*) " tracer = ",tracer138 139 write(*,*) "Run with or without atm mass update",140 & "due to tracer evaporation/condensation?"145 if (is_master) write(*,*) " tracer = ",tracer 146 147 if (is_master) write(*,*) "Run with or without atm mass", 148 & " update due to tracer evaporation/condensation?" 141 149 mass_redistrib=.false. ! default value 142 150 call getin_p("mass_redistrib",mass_redistrib) 143 write(*,*) " mass_redistrib = ",mass_redistrib 144 145 write(*,*) "Diurnal cycle ?" 146 write(*,*) "(if diurnal=false, diurnal averaged solar heating)" 151 if (is_master) write(*,*) " mass_redistrib = ",mass_redistrib 152 153 if (is_master) write(*,*) "Diurnal cycle ?" 154 if (is_master) write(*,*) "(if diurnal=false, diurnal", 155 & " averaged solar heating)" 147 156 diurnal=.true. ! default value 148 157 call getin_p("diurnal",diurnal) 149 write(*,*) " diurnal = ",diurnal150 151 write(*,*) "Seasonal cycle ?"152 write(*,*) "(if season=false, Ls stays constant, to value",153 & "set in 'start'"158 if (is_master) write(*,*) " diurnal = ",diurnal 159 160 if (is_master) write(*,*) "Seasonal cycle ?" 161 if (is_master) write(*,*) "(if season=false, Ls stays", 162 & " constant, to value set in 'start'" 154 163 season=.true. ! default value 155 164 call getin_p("season",season) 156 write(*,*) " season = ",season157 158 write(*,*) "Tidally resonant rotation ?"165 if (is_master) write(*,*) " season = ",season 166 167 if (is_master) write(*,*) "Tidally resonant rotation ?" 159 168 tlocked=.false. ! default value 160 169 call getin_p("tlocked",tlocked) 161 write(*,*) "tlocked = ",tlocked162 163 write(*,*) "Saturn ring shadowing ?"170 if (is_master) write(*,*) "tlocked = ",tlocked 171 172 if (is_master) write(*,*) "Saturn ring shadowing ?" 164 173 rings_shadow = .false. 165 174 call getin_p("rings_shadow", rings_shadow) 166 write(*,*) "rings_shadow = ", rings_shadow175 if (is_master) write(*,*) "rings_shadow = ", rings_shadow 167 176 168 write(*,*) "Compute latitude-dependent gravity field?" 177 if (is_master) write(*,*) "Compute latitude-dependent", 178 & " gravity field?" 169 179 oblate = .false. 170 180 call getin_p("oblate", oblate) 171 write(*,*) "oblate = ", oblate172 173 write(*,*) "Flattening of the planet (a-b)/a "181 if (is_master) write(*,*) "oblate = ", oblate 182 183 if (is_master) write(*,*) "Flattening of the planet (a-b)/a " 174 184 flatten = 0.0 175 185 call getin_p("flatten", flatten) 176 write(*,*) "flatten = ", flatten186 if (is_master) write(*,*) "flatten = ", flatten 177 187 178 188 179 write(*,*) "Needed if oblate=.true.: J2"189 if (is_master) write(*,*) "Needed if oblate=.true.: J2" 180 190 J2 = 0.0 181 191 call getin_p("J2", J2) 182 write(*,*) "J2 = ", J2192 if (is_master) write(*,*) "J2 = ", J2 183 193 184 write(*,*) "Needed if oblate=.true.: Planet mass (*1e24 kg)" 194 if (is_master) write(*,*) "Needed if oblate=.true.: Planet", 195 & " mass (*1e24 kg)" 185 196 MassPlanet = 0.0 186 197 call getin_p("MassPlanet", MassPlanet) 187 write(*,*) "MassPlanet = ", MassPlanet 188 189 write(*,*) "Needed if oblate=.true.: Planet mean radius (m)" 198 if (is_master) write(*,*) "MassPlanet = ", MassPlanet 199 200 if (is_master) write(*,*) "Needed if oblate=.true.: Planet", 201 & " mean radius (m)" 190 202 Rmean = 0.0 191 203 call getin_p("Rmean", Rmean) 192 write(*,*) "Rmean = ", Rmean204 if (is_master) write(*,*) "Rmean = ", Rmean 193 205 194 206 ! Test of incompatibility: 195 207 ! if tlocked, then diurnal should be false 196 208 if (tlocked.and.diurnal) then 197 print*,'If diurnal=true, we should turn off tlocked.' 209 if (is_master) print*,'If diurnal=true, we should turn off', 210 & ' tlocked.' 198 211 stop 199 212 endif 200 213 201 write(*,*) "Tidal resonance ratio ?"214 if (is_master) write(*,*) "Tidal resonance ratio ?" 202 215 nres=0 ! default value 203 216 call getin_p("nres",nres) 204 write(*,*) "nres = ",nres 205 206 write(*,*) "Write some extra output to the screen ?" 217 if (is_master) write(*,*) "nres = ",nres 218 219 if (is_master) write(*,*) "Write some extra output to the", 220 & " screen ?" 207 221 lwrite=.false. ! default value 208 222 call getin_p("lwrite",lwrite) 209 write(*,*) " lwrite = ",lwrite210 211 write(*,*) "Save statistics in file stats.nc ?"223 if (is_master) write(*,*) " lwrite = ",lwrite 224 225 if (is_master) write(*,*) "Save statistics in file stats.nc ?" 212 226 callstats=.true. ! default value 213 227 call getin_p("callstats",callstats) 214 write(*,*) " callstats = ",callstats 215 216 write(*,*) "Test energy conservation of model physics ?" 228 if (is_master) write(*,*) " callstats = ",callstats 229 230 if (is_master) write(*,*) "Test energy conservation of model", 231 & " physics ?" 217 232 enertest=.false. ! default value 218 233 call getin_p("enertest",enertest) 219 write(*,*) " enertest = ",enertest 220 221 write(*,*) "Check to see if cpp values used match gases.def ?" 234 if (is_master) write(*,*) " enertest = ",enertest 235 236 if (is_master) write(*,*) "Check to see if cpp values used", 237 & " match gases.def ?" 222 238 check_cpp_match=.true. ! default value 223 239 call getin_p("check_cpp_match",check_cpp_match) 224 write(*,*) " check_cpp_match = ",check_cpp_match225 226 write(*,*) "call radiative transfer ?"240 if (is_master) write(*,*) " check_cpp_match = ",check_cpp_match 241 242 if (is_master) write(*,*) "call radiative transfer ?" 227 243 callrad=.true. ! default value 228 244 call getin_p("callrad",callrad) 229 write(*,*) " callrad = ",callrad 230 231 write(*,*) "call correlated-k radiative transfer ?" 245 if (is_master) write(*,*) " callrad = ",callrad 246 247 if (is_master) write(*,*) "call correlated-k radiative", 248 & " transfer ?" 232 249 corrk=.true. ! default value 233 250 call getin_p("corrk",corrk) 234 write(*,*) " corrk = ",corrk 235 236 write(*,*) "prohibit calculations outside corrk T grid?" 251 if (is_master) write(*,*) " corrk = ",corrk 252 253 if (is_master) write(*,*) "prohibit calculations outside", 254 & " corrk T grid?" 237 255 strictboundcorrk=.true. ! default value 238 256 call getin_p("strictboundcorrk",strictboundcorrk) 239 write(*,*) "strictboundcorrk = ",strictboundcorrk 240 241 write(*,*) "call gaseous absorption in the visible bands?", 242 & "(matters only if callrad=T)" 257 if (is_master) write(*,*) "strictboundcorrk = ", 258 & strictboundcorrk 259 260 if (is_master) write(*,*) "call gaseous absorption in the", 261 & " visible bands? (matters only if callrad=T)" 243 262 callgasvis=.false. ! default value 244 263 call getin_p("callgasvis",callgasvis) 245 write(*,*) " callgasvis = ",callgasvis264 if (is_master) write(*,*) " callgasvis = ",callgasvis 246 265 247 write(*,*) "call continuum opacities in radiative transfer ?",248 & "(matters only if callrad=T)"266 if (is_master) write(*,*) "call continuum opacities in", 267 & " radiative transfer ? (matters only if callrad=T)" 249 268 continuum=.true. ! default value 250 269 call getin_p("continuum",continuum) 251 write(*,*) " continuum = ",continuum 252 253 write(*,*) "use analytic function for H2O continuum ?" 270 if (is_master) write(*,*) " continuum = ",continuum 271 272 if (is_master) write(*,*) "use analytic function for H2O", 273 & " continuum ?" 254 274 H2Ocont_simple=.false. ! default value 255 275 call getin_p("H2Ocont_simple",H2Ocont_simple) 256 write(*,*) " H2Ocont_simple = ",H2Ocont_simple276 if (is_master) write(*,*) " H2Ocont_simple = ",H2Ocont_simple 257 277 258 write(*,*) "call turbulent vertical diffusion ?" 278 if (is_master) write(*,*) "call turbulent vertical", 279 & " diffusion ?" 259 280 calldifv=.true. ! default value 260 281 call getin_p("calldifv",calldifv) 261 write(*,*) " calldifv = ",calldifv262 263 write(*,*) "use turbdiff instead of vdifc ?"282 if (is_master) write(*,*) " calldifv = ",calldifv 283 284 if (is_master) write(*,*) "use turbdiff instead of vdifc ?" 264 285 UseTurbDiff=.true. ! default value 265 286 call getin_p("UseTurbDiff",UseTurbDiff) 266 write(*,*) " UseTurbDiff = ",UseTurbDiff267 268 write(*,*) "call convective adjustment ?"287 if (is_master) write(*,*) " UseTurbDiff = ",UseTurbDiff 288 289 if (is_master) write(*,*) "call convective adjustment ?" 269 290 calladj=.true. ! default value 270 291 call getin_p("calladj",calladj) 271 write(*,*) " calladj = ",calladj272 273 write(*,*) "call CO2 condensation ?"292 if (is_master) write(*,*) " calladj = ",calladj 293 294 if (is_master) write(*,*) "call CO2 condensation ?" 274 295 co2cond=.false. ! default value 275 296 call getin_p("co2cond",co2cond) 276 write(*,*) " co2cond = ",co2cond297 if (is_master) write(*,*) " co2cond = ",co2cond 277 298 ! Test of incompatibility 278 299 if (co2cond.and.(.not.tracer)) then 279 print*,'We need a CO2 ice tracer to condense CO2' 300 if (is_master) print*,'We need a CO2 ice tracer to', 301 & ' condense CO2' 280 302 call abort 281 303 endif 282 304 283 write(*,*) "CO2 supersaturation level ?"305 if (is_master) write(*,*) "CO2 supersaturation level ?" 284 306 co2supsat=1.0 ! default value 285 307 call getin_p("co2supsat",co2supsat) 286 write(*,*) " co2supsat = ",co2supsat 287 288 write(*,*) "Radiative timescale for Newtonian cooling ?" 308 if (is_master) write(*,*) " co2supsat = ",co2supsat 309 310 if (is_master) write(*,*) "Radiative timescale for Newtonian", 311 & " cooling ?" 289 312 tau_relax=30. ! default value 290 313 call getin_p("tau_relax",tau_relax) 291 write(*,*) " tau_relax = ",tau_relax314 if (is_master) write(*,*) " tau_relax = ",tau_relax 292 315 tau_relax=tau_relax*24*3600 ! convert Earth days --> seconds 293 316 294 write(*,*)"call thermal conduction in the soil ?" 317 if (is_master) write(*,*)"call thermal conduction in", 318 & " the soil ?" 295 319 callsoil=.true. ! default value 296 320 call getin_p("callsoil",callsoil) 297 write(*,*) " callsoil = ",callsoil321 if (is_master) write(*,*) " callsoil = ",callsoil 298 322 299 write(*,*)"Rad transfer is computed every iradia",300 & "physical timestep"323 if (is_master) write(*,*)"Rad transfer is computed", 324 & " every iradia physical timestep" 301 325 iradia=1 ! default value 302 326 call getin_p("iradia",iradia) 303 write(*,*)" iradia = ",iradia327 if (is_master) write(*,*)" iradia = ",iradia 304 328 305 write(*,*)"Rayleigh scattering ?"329 if (is_master) write(*,*)"Rayleigh scattering ?" 306 330 rayleigh=.false. 307 331 call getin_p("rayleigh",rayleigh) 308 write(*,*)" rayleigh = ",rayleigh 309 310 write(*,*) "Use blackbody for stellar spectrum ?" 332 if (is_master) write(*,*)" rayleigh = ",rayleigh 333 334 if (is_master) write(*,*) "Use blackbody for stellar", 335 & " spectrum ?" 311 336 stelbbody=.false. ! default value 312 337 call getin_p("stelbbody",stelbbody) 313 write(*,*) " stelbbody = ",stelbbody314 315 write(*,*) "Stellar blackbody temperature ?"338 if (is_master) write(*,*) " stelbbody = ",stelbbody 339 340 if (is_master) write(*,*) "Stellar blackbody temperature ?" 316 341 stelTbb=5800.0 ! default value 317 342 call getin_p("stelTbb",stelTbb) 318 write(*,*) " stelTbb = ",stelTbb319 320 write(*,*)"Output mean OLR in 1D?"343 if (is_master) write(*,*) " stelTbb = ",stelTbb 344 345 if (is_master) write(*,*)"Output mean OLR in 1D?" 321 346 meanOLR=.false. 322 347 call getin_p("meanOLR",meanOLR) 323 write(*,*)" meanOLR = ",meanOLR324 325 write(*,*)"Output spectral OLR in 3D?"348 if (is_master) write(*,*)" meanOLR = ",meanOLR 349 350 if (is_master) write(*,*)"Output spectral OLR in 3D?" 326 351 specOLR=.false. 327 352 call getin_p("specOLR",specOLR) 328 write(*,*)" specOLR = ",specOLR329 330 write(*,*)"Operate in kastprof mode?"353 if (is_master) write(*,*)" specOLR = ",specOLR 354 355 if (is_master) write(*,*)"Operate in kastprof mode?" 331 356 kastprof=.false. 332 357 call getin_p("kastprof",kastprof) 333 write(*,*)" kastprof = ",kastprof 334 335 write(*,*)"Uniform absorption in radiative transfer?" 358 if (is_master) write(*,*)" kastprof = ",kastprof 359 360 if (is_master) write(*,*)"Uniform absorption in", 361 & " radiative transfer?" 336 362 graybody=.false. 337 363 call getin_p("graybody",graybody) 338 write(*,*)" graybody = ",graybody364 if (is_master) write(*,*)" graybody = ",graybody 339 365 340 366 ! Slab Ocean 341 write(*,*) "Use slab-ocean ?"367 if (is_master) write(*,*) "Use slab-ocean ?" 342 368 ok_slab_ocean=.false. ! default value 343 369 call getin_p("ok_slab_ocean",ok_slab_ocean) 344 write(*,*) "ok_slab_ocean = ",ok_slab_ocean345 346 write(*,*) "Use slab-sea-ice ?"370 if (is_master) write(*,*) "ok_slab_ocean = ",ok_slab_ocean 371 372 if (is_master) write(*,*) "Use slab-sea-ice ?" 347 373 ok_slab_sic=.true. ! default value 348 374 call getin_p("ok_slab_sic",ok_slab_sic) 349 write(*,*) "ok_slab_sic = ",ok_slab_sic350 351 write(*,*) "Use heat transport for the ocean ?"375 if (is_master) write(*,*) "ok_slab_sic = ",ok_slab_sic 376 377 if (is_master) write(*,*) "Use heat transport for the ocean ?" 352 378 ok_slab_heat_transp=.true. ! default value 353 379 call getin_p("ok_slab_heat_transp",ok_slab_heat_transp) 354 write(*,*) "ok_slab_heat_transp = ",ok_slab_heat_transp 380 if (is_master) write(*,*) "ok_slab_heat_transp = ", 381 & ok_slab_heat_transp 355 382 356 383 … … 359 386 ! if kastprof used, we must be in 1D 360 387 if (kastprof.and.(ngrid.gt.1)) then 361 print*,'kastprof can only be used in 1D!'388 if (is_master) print*,'kastprof can only be used in 1D!' 362 389 call abort 363 390 endif 364 391 365 write(*,*)"Stratospheric temperature for kastprof mode?" 392 if (is_master) write(*,*)"Stratospheric temperature", 393 & " for kastprof mode?" 366 394 Tstrat=167.0 367 395 call getin_p("Tstrat",Tstrat) 368 write(*,*)" Tstrat = ",Tstrat369 370 write(*,*)"Remove lower boundary?"396 if (is_master) write(*,*)" Tstrat = ",Tstrat 397 398 if (is_master) write(*,*)"Remove lower boundary?" 371 399 nosurf=.false. 372 400 call getin_p("nosurf",nosurf) 373 write(*,*)" nosurf = ",nosurf401 if (is_master) write(*,*)" nosurf = ",nosurf 374 402 375 403 ! Tests of incompatibility: 376 404 if (nosurf.and.callsoil) then 377 print*,'nosurf not compatible with soil scheme!'378 print*,'... got to make a choice!'405 if (is_master) print*,'nosurf not compatible with soil', 406 & ' scheme! ... got to make a choice!' 379 407 call abort 380 408 endif 381 409 382 write(*,*)"Add an internal heat flux?",410 if (is_master) write(*,*)"Add an internal heat flux?", 383 411 . "... matters only if callsoil=F" 384 412 intheat=0. 385 413 call getin_p("intheat",intheat) 386 write(*,*)" intheat = ",intheat 387 388 write(*,*)"Use Newtonian cooling for radiative transfer?" 414 if (is_master) write(*,*)" intheat = ",intheat 415 416 if (is_master) write(*,*)"Use Newtonian cooling for", 417 & " radiative transfer?" 389 418 newtonian=.false. 390 419 call getin_p("newtonian",newtonian) 391 write(*,*)" newtonian = ",newtonian420 if (is_master) write(*,*)" newtonian = ",newtonian 392 421 393 422 ! Tests of incompatibility: 394 423 if (newtonian.and.corrk) then 395 print*,'newtonian not compatible with correlated-k!' 424 if (is_master) print*,'newtonian not compatible with ', 425 & 'correlated-k!' 396 426 call abort 397 427 endif 398 428 if (newtonian.and.calladj) then 399 print*,'newtonian not compatible with adjustment!' 429 if (is_master) print*,'newtonian not compatible with ', 430 & 'adjustment!' 400 431 call abort 401 432 endif 402 433 if (newtonian.and.calldifv) then 403 print*,'newtonian not compatible with a boundary layer!' 434 if (is_master) print*,'newtonian not compatible with a ', 435 & 'boundary layer!' 404 436 call abort 405 437 endif 406 438 407 write(*,*)"Test physics timescale in 1D?"439 if (is_master) write(*,*)"Test physics timescale in 1D?" 408 440 testradtimes=.false. 409 441 call getin_p("testradtimes",testradtimes) 410 write(*,*)" testradtimes = ",testradtimes442 if (is_master) write(*,*)" testradtimes = ",testradtimes 411 443 412 444 ! Test of incompatibility: 413 445 ! if testradtimes used, we must be in 1D 414 446 if (testradtimes.and.(ngrid.gt.1)) then 415 print*,'testradtimes can only be used in 1D!'447 if (is_master) print*,'testradtimes can only be used in 1D!' 416 448 call abort 417 449 endif 418 450 419 write(*,*)"Default planetary temperature?"451 if (is_master) write(*,*)"Default planetary temperature?" 420 452 tplanet=215.0 421 453 call getin_p("tplanet",tplanet) 422 write(*,*)" tplanet = ",tplanet423 424 write(*,*)"Which star?"454 if (is_master) write(*,*)" tplanet = ",tplanet 455 456 if (is_master) write(*,*)"Which star?" 425 457 startype=1 ! default value = Sol 426 458 call getin_p("startype",startype) 427 write(*,*)" startype = ",startype428 429 write(*,*)"Value of stellar flux at 1 AU?"459 if (is_master) write(*,*)" startype = ",startype 460 461 if (is_master) write(*,*)"Value of stellar flux at 1 AU?" 430 462 Fat1AU=1356.0 ! default value = Sol today 431 463 call getin_p("Fat1AU",Fat1AU) 432 write(*,*)" Fat1AU = ",Fat1AU464 if (is_master) write(*,*)" Fat1AU = ",Fat1AU 433 465 434 466 435 467 ! TRACERS: 436 468 437 write(*,*)"Varying H2O cloud fraction?"469 if (is_master) write(*,*)"Varying H2O cloud fraction?" 438 470 CLFvarying=.false. ! default value 439 471 call getin_p("CLFvarying",CLFvarying) 440 write(*,*)" CLFvarying = ",CLFvarying441 442 write(*,*)"Value of fixed H2O cloud fraction?"472 if (is_master) write(*,*)" CLFvarying = ",CLFvarying 473 474 if (is_master) write(*,*)"Value of fixed H2O cloud fraction?" 443 475 CLFfixval=1.0 ! default value 444 476 call getin_p("CLFfixval",CLFfixval) 445 write(*,*)" CLFfixval = ",CLFfixval446 447 write(*,*)"fixed radii for Cloud particles?"477 if (is_master) write(*,*)" CLFfixval = ",CLFfixval 478 479 if (is_master) write(*,*)"fixed radii for Cloud particles?" 448 480 radfixed=.false. ! default value 449 481 call getin_p("radfixed",radfixed) 450 write(*,*)" radfixed = ",radfixed482 if (is_master) write(*,*)" radfixed = ",radfixed 451 483 452 484 if(kastprof)then … … 454 486 endif 455 487 456 write(*,*)"Number mixing ratio of CO2 ice particles:"488 if (is_master) write(*,*)"Number mixing ratio of CO2 ice particles:" 457 489 Nmix_co2=1.e6 ! default value 458 490 call getin_p("Nmix_co2",Nmix_co2) 459 write(*,*)" Nmix_co2 = ",Nmix_co2491 if (is_master) write(*,*)" Nmix_co2 = ",Nmix_co2 460 492 461 493 ! write(*,*)"Number of radiatively active aerosols:" … … 464 496 ! write(*,*)" naerkind = ",naerkind 465 497 466 write(*,*)"Opacity of dust (if used):"498 if (is_master) write(*,*)"Opacity of dust (if used):" 467 499 dusttau=0. ! default value 468 500 call getin_p("dusttau",dusttau) 469 write(*,*)" dusttau = ",dusttau470 471 write(*,*)"Radiatively active CO2 aerosols?"501 if (is_master) write(*,*)" dusttau = ",dusttau 502 503 if (is_master) write(*,*)"Radiatively active CO2 aerosols?" 472 504 aeroco2=.false. ! default value 473 505 call getin_p("aeroco2",aeroco2) 474 write(*,*)" aeroco2 = ",aeroco2475 476 write(*,*)"Fixed CO2 aerosol distribution?"506 if (is_master) write(*,*)" aeroco2 = ",aeroco2 507 508 if (is_master) write(*,*)"Fixed CO2 aerosol distribution?" 477 509 aerofixco2=.false. ! default value 478 510 call getin_p("aerofixco2",aerofixco2) 479 write(*,*)" aerofixco2 = ",aerofixco2480 481 write(*,*)"Radiatively active water ice?"511 if (is_master) write(*,*)" aerofixco2 = ",aerofixco2 512 513 if (is_master) write(*,*)"Radiatively active water ice?" 482 514 aeroh2o=.false. ! default value 483 515 call getin_p("aeroh2o",aeroh2o) 484 write(*,*)" aeroh2o = ",aeroh2o485 486 write(*,*)"Fixed H2O aerosol distribution?"516 if (is_master) write(*,*)" aeroh2o = ",aeroh2o 517 518 if (is_master) write(*,*)"Fixed H2O aerosol distribution?" 487 519 aerofixh2o=.false. ! default value 488 520 call getin_p("aerofixh2o",aerofixh2o) 489 write(*,*)" aerofixh2o = ",aerofixh2o 490 491 write(*,*)"Radiatively active sulfuric acid aersols?" 521 if (is_master) write(*,*)" aerofixh2o = ",aerofixh2o 522 523 if (is_master) write(*,*)"Radiatively active sulfuric", 524 & " acid aersols?" 492 525 aeroh2so4=.false. ! default value 493 526 call getin_p("aeroh2so4",aeroh2so4) 494 write(*,*)" aeroh2so4 = ",aeroh2so4527 if (is_master) write(*,*)" aeroh2so4 = ",aeroh2so4 495 528 496 529 !================================= 497 530 498 write(*,*)"Radiatively active two-layer aersols?"531 if (is_master) write(*,*)"Radiatively active two-layer aersols?" 499 532 aeroback2lay=.false. ! default value 500 533 call getin_p("aeroback2lay",aeroback2lay) 501 write(*,*)" aeroback2lay = ",aeroback2lay502 503 write(*,*)"TWOLAY AEROSOL: total optical depth ",534 if (is_master) write(*,*)" aeroback2lay = ",aeroback2lay 535 536 if (is_master) write(*,*)"TWOLAY AEROSOL: total optical depth ", 504 537 & "in the tropospheric layer (visible)" 505 538 obs_tau_col_tropo=8.D0 506 539 call getin_p("obs_tau_col_tropo",obs_tau_col_tropo) 507 write(*,*)" obs_tau_col_tropo = ",obs_tau_col_tropo 508 509 write(*,*)"TWOLAY AEROSOL: total optical depth ", 540 if (is_master) write(*,*)" obs_tau_col_tropo = ", 541 & obs_tau_col_tropo 542 543 if (is_master) write(*,*)"TWOLAY AEROSOL: total optical depth ", 510 544 & "in the stratospheric layer (visible)" 511 545 obs_tau_col_strato=0.08D0 512 546 call getin_p("obs_tau_col_strato",obs_tau_col_strato) 513 write(*,*)" obs_tau_col_strato = ",obs_tau_col_strato 514 515 write(*,*)"TWOLAY AEROSOL: pres_bottom_tropo? in pa" 547 if (is_master) write(*,*)" obs_tau_col_strato = ", 548 & obs_tau_col_strato 549 550 if (is_master) write(*,*)"TWOLAY AEROSOL: pres_bottom_tropo?", 551 & " in pa" 516 552 pres_bottom_tropo=66000.0 517 553 call getin_p("pres_bottom_tropo",pres_bottom_tropo) 518 write(*,*)" pres_bottom_tropo = ",pres_bottom_tropo 519 520 write(*,*)"TWOLAY AEROSOL: pres_top_tropo? in pa" 554 if (is_master) write(*,*)" pres_bottom_tropo = ", 555 & pres_bottom_tropo 556 557 if (is_master) write(*,*)"TWOLAY AEROSOL: pres_top_tropo?", 558 & " in pa" 521 559 pres_top_tropo=18000.0 522 560 call getin_p("pres_top_tropo",pres_top_tropo) 523 write(*,*)" pres_top_tropo = ",pres_top_tropo 524 525 write(*,*)"TWOLAY AEROSOL: pres_bottom_strato? in pa" 561 if (is_master) write(*,*)" pres_top_tropo = ",pres_top_tropo 562 563 if (is_master) write(*,*)"TWOLAY AEROSOL: pres_bottom_strato?", 564 & " in pa" 526 565 pres_bottom_strato=2000.0 527 566 call getin_p("pres_bottom_strato",pres_bottom_strato) 528 write(*,*)" pres_bottom_strato = ",pres_bottom_strato 529 530 write(*,*)"TWOLAY AEROSOL: pres_top_strato? in pa" 567 if (is_master) write(*,*)" pres_bottom_strato = ", 568 & pres_bottom_strato 569 570 if (is_master) write(*,*)"TWOLAY AEROSOL: pres_top_strato?", 571 & " in pa" 531 572 pres_top_strato=100.0 532 573 call getin_p("pres_top_strato",pres_top_strato) 533 write(*,*)" pres_top_strato = ",pres_top_strato534 535 write(*,*)"TWOLAY AEROSOL: particle size in the",536 & "tropospheric layer, in meters"574 if (is_master) write(*,*)" pres_top_strato = ",pres_top_strato 575 576 if (is_master) write(*,*)"TWOLAY AEROSOL: particle size", 577 & " in the tropospheric layer, in meters" 537 578 size_tropo=2.e-6 538 579 call getin_p("size_tropo",size_tropo) 539 write(*,*)" size_tropo = ",size_tropo540 541 write(*,*)"TWOLAY AEROSOL: particle size in the",542 & "stratospheric layer, in meters"580 if (is_master) write(*,*)" size_tropo = ",size_tropo 581 582 if (is_master) write(*,*)"TWOLAY AEROSOL: particle size", 583 & "in the stratospheric layer, in meters" 543 584 size_strato=1.e-7 544 585 call getin_p("size_strato",size_strato) 545 write(*,*)" size_strato = ",size_strato586 if (is_master) write(*,*)" size_strato = ",size_strato 546 587 547 588 !================================= 548 589 549 write(*,*)"Cloud pressure level (with kastprof only):" 590 if (is_master) write(*,*)"Cloud pressure level (with ", 591 & "kastprof only):" 550 592 cloudlvl=0. ! default value 551 593 call getin_p("cloudlvl",cloudlvl) 552 write(*,*)" cloudlvl = ",cloudlvl 553 554 write(*,*)"Is the variable gas species radiatively active?" 594 if (is_master) write(*,*)" cloudlvl = ",cloudlvl 595 596 if (is_master) write(*,*)"Is the variable gas species", 597 & " radiatively active?" 555 598 Tstrat=167.0 556 599 varactive=.false. 557 600 call getin_p("varactive",varactive) 558 write(*,*)" varactive = ",varactive 559 560 write(*,*)"Is the variable gas species distribution set?" 601 if (is_master) write(*,*)" varactive = ",varactive 602 603 if (is_master) write(*,*)"Is the variable gas species", 604 & " distribution set?" 561 605 varfixed=.false. 562 606 call getin_p("varfixed",varfixed) 563 write(*,*)" varfixed = ",varfixed 564 565 write(*,*)"What is the saturation % of the variable species?" 607 if (is_master) write(*,*)" varfixed = ",varfixed 608 609 if (is_master) write(*,*)"What is the saturation % of", 610 & " the variable species?" 566 611 satval=0.8 567 612 call getin_p("satval",satval) 568 write(*,*)" satval = ",satval613 if (is_master) write(*,*)" satval = ",satval 569 614 570 615 … … 572 617 ! if varactive, then varfixed should be false 573 618 if (varactive.and.varfixed) then 574 print*,'if varactive, varfixed must be OFF!'619 if (is_master) print*,'if varactive, varfixed must be OFF!' 575 620 stop 576 621 endif 577 622 578 write(*,*) "Gravitationnal sedimentation ?"623 if (is_master) write(*,*) "Gravitationnal sedimentation ?" 579 624 sedimentation=.false. ! default value 580 625 call getin_p("sedimentation",sedimentation) 581 write(*,*) " sedimentation = ",sedimentation582 583 write(*,*) "Compute water cycle ?"626 if (is_master) write(*,*) " sedimentation = ",sedimentation 627 628 if (is_master) write(*,*) "Compute water cycle ?" 584 629 water=.false. ! default value 585 630 call getin_p("water",water) 586 write(*,*) " water = ",water631 if (is_master) write(*,*) " water = ",water 587 632 588 633 ! Test of incompatibility: 589 634 ! if water is true, there should be at least a tracer 590 635 if (water.and.(.not.tracer)) then 591 print*,'if water is ON, tracer must be ON too!' 636 if (is_master) print*,'if water is ON, tracer must be ', 637 & 'ON too!' 592 638 stop 593 639 endif 594 640 595 write(*,*) "Include water condensation ?"641 if (is_master) write(*,*) "Include water condensation ?" 596 642 watercond=.false. ! default value 597 643 call getin_p("watercond",watercond) 598 write(*,*) " watercond = ",watercond644 if (is_master) write(*,*) " watercond = ",watercond 599 645 600 646 ! Test of incompatibility: 601 647 ! if watercond is used, then water should be used too 602 648 if (watercond.and.(.not.water)) then 603 print*,'if watercond is used, water should be used too' 649 if (is_master) print*,'if watercond is used, water should ', 650 & 'be used too' 604 651 stop 605 652 endif 606 653 607 write(*,*) "Include water precipitation ?"654 if (is_master) write(*,*) "Include water precipitation ?" 608 655 waterrain=.false. ! default value 609 656 call getin_p("waterrain",waterrain) 610 write(*,*) " waterrain = ",waterrain611 612 write(*,*) "Include surface hydrology ?"657 if (is_master) write(*,*) " waterrain = ",waterrain 658 659 if (is_master) write(*,*) "Include surface hydrology ?" 613 660 hydrology=.false. ! default value 614 661 call getin_p("hydrology",hydrology) 615 write(*,*) " hydrology = ",hydrology616 617 write(*,*) "Evolve surface water sources ?"662 if (is_master) write(*,*) " hydrology = ",hydrology 663 664 if (is_master) write(*,*) "Evolve surface water sources ?" 618 665 sourceevol=.false. ! default value 619 666 call getin_p("sourceevol",sourceevol) 620 write(*,*) " sourceevol = ",sourceevol621 622 write(*,*) "Ice evolution timestep ?"667 if (is_master) write(*,*) " sourceevol = ",sourceevol 668 669 if (is_master) write(*,*) "Ice evolution timestep ?" 623 670 icetstep=100.0 ! default value 624 671 call getin_p("icetstep",icetstep) 625 write(*,*) " icetstep = ",icetstep626 627 write(*,*) "Snow albedo ?"672 if (is_master) write(*,*) " icetstep = ",icetstep 673 674 if (is_master) write(*,*) "Snow albedo ?" 628 675 albedosnow=0.5 ! default value 629 676 call getin_p("albedosnow",albedosnow) 630 write(*,*) " albedosnow = ",albedosnow631 632 write(*,*) "Maximum ice thickness ?"677 if (is_master) write(*,*) " albedosnow = ",albedosnow 678 679 if (is_master) write(*,*) "Maximum ice thickness ?" 633 680 maxicethick=2.0 ! default value 634 681 call getin_p("maxicethick",maxicethick) 635 write(*,*) " maxicethick = ",maxicethick636 637 write(*,*) "Freezing point of seawater ?"682 if (is_master) write(*,*) " maxicethick = ",maxicethick 683 684 if (is_master) write(*,*) "Freezing point of seawater ?" 638 685 Tsaldiff=-1.8 ! default value 639 686 call getin_p("Tsaldiff",Tsaldiff) 640 write(*,*) " Tsaldiff = ",Tsaldiff 641 642 write(*,*) "Does user want to force cpp and mugaz?" 687 if (is_master) write(*,*) " Tsaldiff = ",Tsaldiff 688 689 if (is_master) write(*,*) "Does user want to force", 690 & " cpp and mugaz?" 643 691 force_cpp=.false. ! default value 644 692 call getin_p("force_cpp",force_cpp) 645 write(*,*) " force_cpp = ",force_cpp693 if (is_master) write(*,*) " force_cpp = ",force_cpp 646 694 647 695 if (force_cpp) then 648 696 mugaz = -99999. 649 PRINT *,'MEAN MOLECULAR MASS in g mol-1 ?'697 if (is_master) PRINT *,'MEAN MOLECULAR MASS in g mol-1 ?' 650 698 call getin_p("mugaz",mugaz) 651 699 IF (mugaz.eq.-99999.) THEN 652 PRINT *, "mugaz must be set if force_cpp = T" 700 if (is_master) PRINT *, "mugaz must be set if ', 701 & 'force_cpp = T" 653 702 STOP 654 703 ELSE 655 write(*,*) "inifis: mugaz=",mugaz704 if (is_master) write(*,*) "inifis: mugaz=",mugaz 656 705 ENDIF 657 706 !Ehouarn: once mugaz has been set, r, the specific 658 707 ! gas constant must be computed 659 708 r=8.3144622/(mugaz*1.e-3) 660 write(*,*) "inifis: r=",r709 if (is_master) write(*,*) "inifis: r=",r 661 710 662 711 cpp = -99999. 663 PRINT *,'SPECIFIC HEAT CAPACITY in J K-1 kg-1 ?' 712 if (is_master) PRINT *,'SPECIFIC HEAT CAPACITY in ', 713 & 'J K-1 kg-1 ?' 664 714 call getin_p("cpp",cpp) 665 715 IF (cpp.eq.-99999.) THEN 666 PRINT *, "cpp must be set if force_cpp = T" 716 if (is_master) PRINT *, "cpp must be set if ', 717 & 'force_cpp = T" 667 718 STOP 668 719 ELSE 669 write(*,*) "inifis: cpp=",cpp720 if (is_master) write(*,*) "inifis: cpp=",cpp 670 721 ENDIF 671 722 ! else … … 675 726 call calc_cpp_mugaz 676 727 677 PRINT*,'--------------------------------------------'678 PRINT*679 PRINT*728 if (is_master) PRINT*,'------------------------------------' 729 if (is_master) PRINT* 730 if (is_master) PRINT* 680 731 ELSE 681 write(*,*) 682 write(*,*) 'Cannot read file callphys.def. Is it here ?' 732 if (is_master) write(*,*) 733 if (is_master) write(*,*) 'Cannot read file callphys.def.", 734 & " Is it here ?' 683 735 stop 684 736 ENDIF … … 687 739 8001 FORMAT(t5,a12,i8) 688 740 741 if (is_master) then 689 742 PRINT* 690 743 PRINT*,'inifis: daysec',daysec … … 694 747 PRINT*,' or each ',iradia*dtphys,' seconds' 695 748 PRINT* 749 end if 696 750 697 751 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/iniorbit.F
r227 r298 4 4 USE planete_mod, only: apoastr, periastr, year_day, obliquit, 5 5 & peri_day, e_elips, p_elips, timeperi 6 USE mod_phys_lmdz_para, only : is_master 6 7 IMPLICIT NONE 7 8 … … 67 68 !!!! We hope that all cases are above 25 Mkm [OK with Gliese 581d] 68 69 IF ( apoastr .gt. 25.) THEN 70 IF (is_master) THEN 69 71 PRINT*,'!!!!! WARNING !!!!!' 70 72 PRINT*,'!!!!! YOU ARE ABOUT TO WITNESS A DIRT HACK !!!!!' … … 73 75 PRINT*,'So I am assuming units are in Mkm here' 74 76 PRINT*,'and I am performing a conversion towards AU.' 77 END IF 75 78 periastr = periastr / 149.598 ! Mkm to AU 76 79 apoastr = apoastr / 149.598 ! Mkm to AU … … 80 83 81 84 82 PRINT*,'Periastron in AU ',periastr83 PRINT*,'Apoastron in AU ',apoastr84 PRINT*,'Obliquity in degrees :',obliquit85 IF (is_master) PRINT*,'Periastron in AU ',periastr 86 IF (is_master) PRINT*,'Apoastron in AU ',apoastr 87 IF (is_master) PRINT*,'Obliquity in degrees :',obliquit 85 88 86 89 … … 88 91 p_elips=0.5*(periastr+apoastr)*(1-e_elips*e_elips) 89 92 90 print*,'e_elips',e_elips91 print*,'p_elips',p_elips93 IF (is_master) print*,'e_elips',e_elips 94 IF (is_master) print*,'p_elips',p_elips 92 95 93 96 c----------------------------------------------------------------------- … … 100 103 zanom=2.*pi*(zz-nint(zz)) 101 104 zxref=abs(zanom) 102 PRINT*,'zanom ',zanom105 IF (is_master) PRINT*,'zanom ',zanom 103 106 104 107 c resolution de l'equation horaire zx0 - e * sin (zx0) = zxref … … 114 117 zx0=zx0+zdx 115 118 if(zanom.lt.0.) zx0=-zx0 116 PRINT*,'zx0 ',zx0119 IF (is_master) PRINT*,'zx0 ',zx0 117 120 118 121 c zteta est la longitude solaire 119 122 120 123 timeperi=2.*atan(sqrt((1.+e_elips)/(1.-e_elips))*tan(zx0/2.)) 121 PRINT*,'Solar longitude of periastron timeperi = ',timeperi 124 IF (is_master) PRINT*,'Solar longitude of periastron', 125 & ' timeperi = ',timeperi 122 126 123 127 RETURN -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/interpolateH2H2.F90
r227 r298 15 15 16 16 use datafile_mod, only: datadir 17 use mod_phys_lmdz_para, only : is_master 17 18 18 19 implicit none … … 66 67 67 68 if(firstcall)then ! called by sugas_corrk only 68 print*,'----------------------------------------------------'69 print*,'Initialising H2-H2 continuum from HITRAN database...'69 if (is_master) print*,'----------------------------------------------------' 70 if (is_master) print*,'Initialising H2-H2 continuum from HITRAN database...' 70 71 71 72 ! 1.1 Open the ASCII files … … 106 107 !$OMP BARRIER 107 108 108 print*,'interpolateH2H2: At wavenumber ',wn,' cm^-1'109 print*,' temperature ',temp,' K'110 print*,' pressure ',pres,' Pa'109 if (is_master) print*,'interpolateH2H2: At wavenumber ',wn,' cm^-1' 110 if (is_master) print*,' temperature ',temp,' K' 111 if (is_master) print*,' pressure ',pres,' Pa' 111 112 112 113 endif -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/interpolateH2He.F90
r227 r298 15 15 16 16 use datafile_mod, only: datadir 17 use mod_phys_lmdz_para, only : is_master 17 18 18 19 implicit none … … 68 69 69 70 if(firstcall)then ! called by sugas_corrk only 70 print*,'----------------------------------------------------'71 print*,'Initialising H2-He continuum from HITRAN database...'71 if (is_master) print*,'----------------------------------------------------' 72 if (is_master) print*,'Initialising H2-He continuum from HITRAN database...' 72 73 73 74 ! 1.1 Open the ASCII files … … 108 109 !$OMP BARRIER 109 110 111 if (is_master) then 110 112 print*,'interpolateH2He: At wavenumber ',wn,' cm^-1' 111 113 print*,' temperature ',temp,' K' 112 114 print*,' H2 partial pressure ',presH2,' Pa' 113 115 print*,' and He partial pressure ',presHe,' Pa' 116 end if 114 117 115 118 endif -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/phyetat0_academic.F90
r270 r298 11 11 inquire_dimension, inquire_dimension_length 12 12 use slab_ice_h, only: noceanmx 13 use mod_phys_lmdz_para, only : is_master 13 14 14 15 implicit none … … 102 103 ! Ehouarn, if file not found, then call tabfi with nid_start==0 103 104 if (.not.found_file) then 104 write(*,*) 'phyetat0_academic: call tabfi with nid_start=0'105 if (is_master) write(*,*) 'phyetat0_academic: call tabfi with nid_start=0' 105 106 call tabfi (ngrid,0,Lmodif,tab0,day_ini,lmax,p_rad, & 106 107 p_omeg,p_g,p_cpp,p_mugaz,p_daysec,time) 107 108 else 108 109 ! possibility to modify tab_cntrl in tabfi 109 write(*,*)110 write(*,*) 'TABFI in phyeta0: Lmodif=',Lmodif," tab0=",tab0110 if (is_master) write(*,*) 111 if (is_master) write(*,*) 'TABFI in phyeta0: Lmodif=',Lmodif," tab0=",tab0 111 112 call tabfi (ngrid,nid_start,Lmodif,tab0,day_ini,lmax,p_rad, & 112 113 p_omeg,p_g,p_cpp,p_mugaz,p_daysec,time) … … 176 177 endif 177 178 if (.not.found) then 178 write(*,*) "phyetat0: Failed loading <phisfi>"179 if (is_master) write(*,*) "phyetat0: Failed loading <phisfi>" 179 180 phisfi(:)=0 180 181 else 181 write(*,*) "phyetat0: surface geopotential <phisfi> range:", &182 if (is_master) write(*,*) "phyetat0: surface geopotential <phisfi> range:", & 182 183 minval(phisfi), maxval(phisfi) 183 184 endif … … 190 191 endif 191 192 if (.not.found) then 192 write(*,*) "phyetat0: Failed loading <albedodat>"193 if (is_master) write(*,*) "phyetat0: Failed loading <albedodat>" 193 194 do ig=1,ngrid 194 195 albedodat(ig)=0. 195 196 enddo 196 197 else 197 write(*,*) "phyetat0: Bare ground albedo <albedodat> range:", &198 if (is_master) write(*,*) "phyetat0: Bare ground albedo <albedodat> range:", & 198 199 minval(albedodat), maxval(albedodat) 199 200 endif … … 208 209 zmea(:)=0. 209 210 else 210 write(*,*) "phyetat0: <ZMEA> range:", &211 if (is_master) write(*,*) "phyetat0: <ZMEA> range:", & 211 212 minval(zmea), maxval(zmea) 212 213 endif … … 219 220 endif 220 221 if (.not.found) then 221 write(*,*) "phyetat0: Failed loading <ZSTD>"222 if (is_master) write(*,*) "phyetat0: Failed loading <ZSTD>" 222 223 zstd(:)=0. 223 224 else 224 write(*,*) "phyetat0: <ZSTD> range:", &225 if (is_master) write(*,*) "phyetat0: <ZSTD> range:", & 225 226 minval(zstd), maxval(zstd) 226 227 endif … … 233 234 endif 234 235 if (.not.found) then 235 write(*,*) "phyetat0: Failed loading <ZSIG>"236 if (is_master) write(*,*) "phyetat0: Failed loading <ZSIG>" 236 237 zsig(:)=0. 237 238 else 238 write(*,*) "phyetat0: <ZSIG> range:", &239 if (is_master) write(*,*) "phyetat0: <ZSIG> range:", & 239 240 minval(zsig), maxval(zsig) 240 241 endif … … 247 248 endif 248 249 if (.not.found) then 249 write(*,*) "phyetat0: Failed loading <ZGAM>"250 if (is_master) write(*,*) "phyetat0: Failed loading <ZGAM>" 250 251 zgam(:)=0. 251 252 else 252 write(*,*) "phyetat0: <ZGAM> range:", &253 if (is_master) write(*,*) "phyetat0: <ZGAM> range:", & 253 254 minval(zgam), maxval(zgam) 254 255 endif … … 261 262 endif 262 263 if (.not.found) then 263 write(*,*) "phyetat0: Failed loading <ZTHE>"264 if (is_master) write(*,*) "phyetat0: Failed loading <ZTHE>" 264 265 zthe(:)=0. 265 266 else 266 write(*,*) "phyetat0: <ZTHE> range:", &267 if (is_master) write(*,*) "phyetat0: <ZTHE> range:", & 267 268 minval(zthe), maxval(zthe) 268 269 endif … … 278 279 !tsurf(:)=175.0 279 280 else 280 write(*,*) "phyetat0: Surface temperature <tsurf> range:", &281 if (is_master) write(*,*) "phyetat0: Surface temperature <tsurf> range:", & 281 282 minval(tsurf), maxval(tsurf) 282 283 endif … … 289 290 endif 290 291 if (.not.found) then 291 write(*,*) "phyetat0: Failed loading <emis>"292 if (is_master) write(*,*) "phyetat0: Failed loading <emis>" 292 293 emis(:)=0.5 293 294 else 294 write(*,*) "phyetat0: Surface emissivity <emis> range:", &295 if (is_master) write(*,*) "phyetat0: Surface emissivity <emis> range:", & 295 296 minval(emis), maxval(emis) 296 297 endif … … 303 304 endif 304 305 if (.not.found) then 305 write(*,*) "phyetat0: Failed loading <cloudfrac>"306 if (is_master) write(*,*) "phyetat0: Failed loading <cloudfrac>" 306 307 cloudfrac(:,:)=0. 307 308 else 308 write(*,*) "phyetat0: Cloud fraction <cloudfrac> range:", &309 if (is_master) write(*,*) "phyetat0: Cloud fraction <cloudfrac> range:", & 309 310 minval(cloudfrac), maxval(cloudfrac) 310 311 endif … … 317 318 endif 318 319 if (.not.found) then 319 write(*,*) "phyetat0: Failed loading <totcloudfrac>"320 if (is_master) write(*,*) "phyetat0: Failed loading <totcloudfrac>" 320 321 totcloudfrac(:)=0.5 321 322 else 322 write(*,*) "phyetat0: Total cloud fraction <totcloudfrac> range:", &323 if (is_master) write(*,*) "phyetat0: Total cloud fraction <totcloudfrac> range:", & 323 324 minval(totcloudfrac), maxval(totcloudfrac) 324 325 endif … … 331 332 endif 332 333 if (.not.found) then 333 write(*,*) "phyetat0: Failed loading <hice>"334 if (is_master) write(*,*) "phyetat0: Failed loading <hice>" 334 335 ! call abort 335 336 do ig=1,ngrid … … 337 338 enddo 338 339 else 339 write(*,*) "phyetat0: Height of oceanic ice <hice> range:", &340 if (is_master) write(*,*) "phyetat0: Height of oceanic ice <hice> range:", & 340 341 minval(hice), maxval(hice) 341 342 endif … … 349 350 endif 350 351 if (.not.found) then 351 write(*,*) "phyetat0: Failed loading <rnat>"352 if (is_master) write(*,*) "phyetat0: Failed loading <rnat>" 352 353 do ig=1,ngrid 353 354 rnat(ig)=1. … … 362 363 enddo 363 364 364 write(*,*) "phyetat0: Nature of surface <rnat> range:", &365 if (is_master) write(*,*) "phyetat0: Nature of surface <rnat> range:", & 365 366 minval(rnat), maxval(rnat) 366 367 endif … … 372 373 endif 373 374 if (.not.found) then 374 write(*,*) "phyetat0: Failed loading <pctsrf_sic>"375 if (is_master) write(*,*) "phyetat0: Failed loading <pctsrf_sic>" 375 376 do ig=1,ngrid 376 377 pctsrf_sic(ig)=0. 377 378 enddo 378 379 else 379 write(*,*) "phyetat0: Pourcentage of sea ice cover <pctsrf_sic> range:", &380 if (is_master) write(*,*) "phyetat0: Pourcentage of sea ice cover <pctsrf_sic> range:", & 380 381 minval(pctsrf_sic), maxval(pctsrf_sic) 381 382 endif … … 387 388 endif 388 389 if (.not.found) then 389 write(*,*) "phyetat0: Failed loading <tslab>"390 if (is_master) write(*,*) "phyetat0: Failed loading <tslab>" 390 391 do ig=1,ngrid 391 392 do iq=1,noceanmx … … 394 395 enddo 395 396 else 396 write(*,*) "phyetat0: Slab ocean temperature <tslab> range:", &397 if (is_master) write(*,*) "phyetat0: Slab ocean temperature <tslab> range:", & 397 398 minval(tslab), maxval(tslab) 398 399 endif … … 404 405 endif 405 406 if (.not.found) then 406 write(*,*) "phyetat0: Failed loading <tsea_ice>"407 if (is_master) write(*,*) "phyetat0: Failed loading <tsea_ice>" 407 408 do ig=1,ngrid 408 409 tsea_ice(ig)=273.15-1.8 409 410 enddo 410 411 else 411 write(*,*) "phyetat0: Oceanic ice temperature <tsea_ice> range:", &412 if (is_master) write(*,*) "phyetat0: Oceanic ice temperature <tsea_ice> range:", & 412 413 minval(tsea_ice), maxval(tsea_ice) 413 414 endif … … 419 420 endif 420 421 if (.not.found) then 421 write(*,*) "phyetat0: Failed loading <sea_ice>"422 if (is_master) write(*,*) "phyetat0: Failed loading <sea_ice>" 422 423 do ig=1,ngrid 423 424 tsea_ice(ig)=0. 424 425 enddo 425 426 else 426 write(*,*) "phyetat0: Oceanic ice quantity <sea_ice> range:", &427 if (is_master) write(*,*) "phyetat0: Oceanic ice quantity <sea_ice> range:", & 427 428 minval(sea_ice), maxval(sea_ice) 428 429 endif … … 438 439 endif 439 440 if (.not.found) then 440 write(*,*) "phyetat0: Failed loading <q2>"441 if (is_master) write(*,*) "phyetat0: Failed loading <q2>" 441 442 q2(:,:)=0.001 442 443 else 443 write(*,*) "phyetat0: PBL wind variance <q2> range:", &444 if (is_master) write(*,*) "phyetat0: PBL wind variance <q2> range:", & 444 445 minval(q2), maxval(q2) 445 446 endif … … 453 454 ! "h2o_ice" should be loaded instead 454 455 txt="h2o_ice" 455 write(*,*) 'phyetat0: loading surface tracer', &456 if (is_master) write(*,*) 'phyetat0: loading surface tracer', & 456 457 ' h2o_ice instead of h2o_vap' 457 458 endif … … 462 463 endif 463 464 if (.not.found) then 464 write(*,*) "phyetat0: Failed loading <",trim(txt),">"465 write(*,*) " ",trim(txt)," is set to zero"465 if (is_master) write(*,*) "phyetat0: Failed loading <",trim(txt),">" 466 if (is_master) write(*,*) " ",trim(txt)," is set to zero" 466 467 else 467 write(*,*) "phyetat0: Surface tracer <",trim(txt),"> range:", &468 if (is_master) write(*,*) "phyetat0: Surface tracer <",trim(txt),"> range:", & 468 469 minval(qsurf(:,iq)), maxval(qsurf(:,iq)) 469 470 endif -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/physiq.F90
r270 r298 569 569 !ym rnat,pctsrf_sic,tslab, tsea_ice,sea_ice) 570 570 571 write(*,*) "physiq: firstcall, call phyetat0_academic"571 if (is_master) write(*,*) "physiq: firstcall, call phyetat0_academic" 572 572 call phyetat0_academic(ngrid,nlayer,"startfi.nc",0,0,nsoilmx,nq, & 573 573 day_ini,time_phys,tsurf,tsoil,emis,q2,qsurf, & … … 576 576 577 577 !mi initialising tsurf with pt 578 write(*,*) "Physiq: initializing tsurf(:) to pt(:,1) !!"578 if (is_master) write(*,*) "Physiq: initializing tsurf(:) to pt(:,1) !!" 579 579 tsurf(:)=pt(:,1) 580 580 581 581 if (pday.ne.day_ini) then 582 write(*,*) "ERROR in physiq.F90:"583 write(*,*) "bad synchronization between physics and dynamics"584 write(*,*) "dynamics day: ",pday585 write(*,*) "physics day: ",day_ini586 write(*,*) "taking dynamics day for physics: ",day_ini582 if (is_master) write(*,*) "ERROR in physiq.F90:" 583 if (is_master) write(*,*) "bad synchronization between physics and dynamics" 584 if (is_master) write(*,*) "dynamics day: ",pday 585 if (is_master) write(*,*) "physics day: ",day_ini 586 if (is_master) write(*,*) "taking dynamics day for physics: ",day_ini 587 587 day_ini=pday 588 588 !ym stop 589 589 endif 590 590 591 write (*,*) 'In physiq day_ini =', day_ini591 if (is_master) write (*,*) 'In physiq day_ini =', day_ini 592 592 593 593 ! Initialize albedo and orbital calculation … … 598 598 albedo(:)=albedo0(:) 599 599 600 if(tlocked )then600 if(tlocked .and. is_master)then 601 601 print*,'Planet is tidally locked at resonance n=',nres 602 602 print*,'Make sure you have the right rotation rate!!!' … … 652 652 653 653 else 654 print*,'WARNING! Thermal conduction in the soil turned off'654 if (is_master) print*,'WARNING! Thermal conduction in the soil turned off' 655 655 capcal(:)=1.e6 656 656 fluxgrd(:)=intheat 657 print*,'Flux from ground = ',intheat,' W m^-2'657 if (is_master) print*,'Flux from ground = ',intheat,' W m^-2' 658 658 endif 659 659 icount=1 … … 667 667 status="old",iostat=ierr) 668 668 if (ierr.ne.0) then 669 write(*,*) "physiq: Error! No num_run file!"670 write(*,*) " (which is needed for sourceevol option)"669 if (is_master) write(*,*) "physiq: Error! No num_run file!" 670 if (is_master) write(*,*) " (which is needed for sourceevol option)" 671 671 stop 672 672 endif … … 678 678 if(num_run.ne.0.and.mod(num_run,2).eq.0)then 679 679 !if(num_run.ne.0.and.mod(num_run,3).eq.0)then 680 print*,'Updating ice at end of this year!'680 if (is_master) print*,'Updating ice at end of this year!' 681 681 ice_update=.true. 682 682 ice_min(:)=1.e4 … … 696 696 enddo 697 697 698 print*,'WARNING! Surface type currently decided by surface inertia'699 print*,'This should be improved e.g. in newstart.F'698 if (is_master) print*,'WARNING! Surface type currently decided by surface inertia' 699 if (is_master) print*,'This should be improved e.g. in newstart.F' 700 700 endif!(.not.ok_slab_ocean) 701 701 … … 711 711 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 712 if(nearco2cond) then 713 write(*,*)' WARNING! Starting at Tcond+1K'713 if (is_master) write(*,*)' WARNING! Starting at Tcond+1K' 714 714 do l=1, nlayer 715 715 do ig=1,ngrid … … 892 892 893 893 if(rings_shadow) then 894 write(*,*) 'Rings shadow activated'894 if (is_master) write(*,*) 'Rings shadow activated' 895 895 if(diurnal .eqv. .false.) then ! we need to compute the daily average insolation 896 896 pas = 1./nb_hours … … 1920 1920 1921 1921 1922 print*,'--> Ls =',zls*180./pi1922 if (is_master) print*,'--> Ls =',zls*180./pi 1923 1923 ! ------------------------------------------------------------------- 1924 1924 ! Writing NetCDF file "RESTARTFI" at the end of the run … … 2359 2359 endif 2360 2360 2361 write(*,*) "physiq: done, zday=",zday2361 if (is_master) write(*,*) "physiq: done, zday=",zday 2362 2362 return 2363 2363 end subroutine physiq -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/radii_mod.F90
r227 r298 37 37 use radinc_h, only: naerkind 38 38 use aerosol_mod 39 use mod_phys_lmdz_para, only : is_master 39 40 ! USE tracer_h 40 41 Implicit none … … 54 55 integer :: iaer 55 56 56 print*,'enter su_aer_radii'57 if (is_master) print*,'enter su_aer_radii' 57 58 do iaer=1,naerkind 58 59 ! these values will change once the microphysics gets to work … … 100 101 if (radfixed) then 101 102 102 write(*,*)"radius of H2O water particles:"103 if (is_master) write(*,*)"radius of H2O water particles:" 103 104 rad_h2o=13. ! default value 104 105 call getin_p("rad_h2o",rad_h2o) 105 write(*,*)" rad_h2o = ",rad_h2o106 107 write(*,*)"radius of H2O ice particles:"106 if (is_master) write(*,*)" rad_h2o = ",rad_h2o 107 108 if (is_master) write(*,*)"radius of H2O ice particles:" 108 109 rad_h2o_ice=35. ! default value 109 110 call getin_p("rad_h2o_ice",rad_h2o_ice) 110 write(*,*)" rad_h2o_ice = ",rad_h2o_ice111 if (is_master) write(*,*)" rad_h2o_ice = ",rad_h2o_ice 111 112 112 113 else 113 114 114 write(*,*)"Number mixing ratio of H2O water particles:"115 if (is_master) write(*,*)"Number mixing ratio of H2O water particles:" 115 116 Nmix_h2o=1.e6 ! default value 116 117 call getin_p("Nmix_h2o",Nmix_h2o) 117 write(*,*)" Nmix_h2o = ",Nmix_h2o118 119 write(*,*)"Number mixing ratio of H2O ice particles:"118 if (is_master) write(*,*)" Nmix_h2o = ",Nmix_h2o 119 120 if (is_master) write(*,*)"Number mixing ratio of H2O ice particles:" 120 121 Nmix_h2o_ice=Nmix_h2o ! default value 121 122 call getin_p("Nmix_h2o_ice",Nmix_h2o_ice) 122 write(*,*)" Nmix_h2o_ice = ",Nmix_h2o_ice123 if (is_master) write(*,*)" Nmix_h2o_ice = ",Nmix_h2o_ice 123 124 endif 124 125 125 print*,'exit su_aer_radii'126 if (is_master) print*,'exit su_aer_radii' 126 127 127 128 end subroutine su_aer_radii -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/setspi.F90
r227 r298 25 25 use radcommon_h, only: BWNI,BLAMI,WNOI,DWNI,WAVEI,planckir,sigma 26 26 use datafile_mod, only: datadir 27 use mod_phys_lmdz_para, only : is_master 27 28 28 29 implicit none … … 105 106 close(131) 106 107 107 write(*,*) 'setspi: L_NSPECTI = ',L_NSPECTI, 'in the model '108 write(*,*) ' there are ',nb, 'entries in ',TRIM(file_path)108 if (is_master) write(*,*) 'setspi: L_NSPECTI = ',L_NSPECTI, 'in the model ' 109 if (is_master) write(*,*) ' there are ',nb, 'entries in ',TRIM(file_path) 109 110 if(nb.ne.L_NSPECTI) then 110 111 write(*,*) 'MISMATCH !! I stop here' … … 125 126 !$OMP BARRIER 126 127 128 if (is_master) then 127 129 print*,'' 128 130 print*,'setspi: IR band limits:' … … 130 132 print*,m,'-->',BWNI(M),' cm^-1' 131 133 end do 134 end if 132 135 133 136 ! Set up mean wavenumbers and wavenumber deltas. Units of … … 149 152 ! original planck.f; W m^-2 wavenumber^-1, where wavenumber is in CM^-1. 150 153 154 if (is_master) then 151 155 print*,'' 152 156 print*,'setspi: Current Planck integration range:' 153 157 print*,'T = ',dble(NTstar)/NTfac, ' to ',dble(NTstop)/NTfac,' K.' 158 end if 154 159 155 160 do NW=1,L_NSPECTI … … 173 178 ! force planck=sigma*eps*T^4 for each temperature in array 174 179 if(forceEC)then 175 print*,'setspi: Force F=sigma*eps*T^4 for all values of T!'180 if (is_master) print*,'setspi: Force F=sigma*eps*T^4 for all values of T!' 176 181 do nt=NTstar,NTstop 177 182 plancksum=0.0D0 … … 198 203 plancksum=plancksum+planckir(NW,nt-NTstar+1)*DWNI(NW)*pi 199 204 end do 200 print*,'setspi: At lower limit:'201 print*,'in model sig*T^4 = ',plancksum,' W m^-2'202 print*,'actual sig*T^4 = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'205 if (is_master) print*,'setspi: At lower limit:' 206 if (is_master) print*,'in model sig*T^4 = ',plancksum,' W m^-2' 207 if (is_master) print*,'actual sig*T^4 = ',sigma*(dble(nt)/NTfac)**4,' W m^-2' 203 208 204 209 ! check energy conservation at upper temperature boundary … … 208 213 plancksum=plancksum+planckir(NW,nt-NTstar+1)*DWNI(NW)*pi 209 214 end do 210 print*,'setspi: At upper limit:'211 print*,'in model sig*T^4 = ',plancksum,' W m^-2'212 print*,'actual sig*T^4 = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'213 print*,''215 if (is_master) print*,'setspi: At upper limit:' 216 if (is_master) print*,'in model sig*T^4 = ',plancksum,' W m^-2' 217 if (is_master) print*,'actual sig*T^4 = ',sigma*(dble(nt)/NTfac)**4,' W m^-2' 218 if (is_master) print*,'' 214 219 endif 215 220 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/setspv.F90
r227 r298 27 27 STELLARF,TAURAY 28 28 use datafile_mod, only: datadir 29 use mod_phys_lmdz_para, only : is_master 29 30 30 31 implicit none … … 82 83 close(131) 83 84 84 write(*,*) 'setspv: L_NSPECTV = ',L_NSPECTV, 'in the model '85 write(*,*) ' there are ',nb, 'entries in ',TRIM(file_path)85 if (is_master) write(*,*) 'setspv: L_NSPECTV = ',L_NSPECTV, 'in the model ' 86 if (is_master) write(*,*) ' there are ',nb, 'entries in ',TRIM(file_path) 86 87 if(nb.ne.L_NSPECTV) then 87 88 write(*,*) 'MISMATCH !! I stop here' … … 102 103 !$OMP BARRIER 103 104 105 if (is_master) then 104 106 print*,'setspv: VI band limits:' 105 107 do M=1,L_NSPECTV+1 … … 107 109 end do 108 110 print*,' ' 111 end if 109 112 110 113 ! Set up mean wavenumbers and wavenumber deltas. Units of … … 123 126 ! Set up stellar spectrum 124 127 125 write(*,*)'setspv: Interpolating stellar spectrum from the hires data...'128 if (is_master) write(*,*)'setspv: Interpolating stellar spectrum from the hires data...' 126 129 call ave_stelspec(STELLAR) 127 130 … … 132 135 sum = sum+STELLARF(N) 133 136 end do 134 write(6,'("setspv: Stellar flux at 1 AU = ",f7.2," W m-2")') sum135 print*,' '137 if (is_master) write(6,'("setspv: Stellar flux at 1 AU = ",f7.2," W m-2")') sum 138 if (is_master) print*,' ' 136 139 137 140 … … 144 147 call calc_rayleigh 145 148 else 146 print*,'setspv: No Rayleigh scattering, check for NaN in output!'149 if (is_master) print*,'setspv: No Rayleigh scattering, check for NaN in output!' 147 150 do N=1,L_NSPECTV 148 151 TAURAY(N) = 1E-16 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/suaer_corrk.F90
r227 r298 11 11 use radcommon_h, only: qrefvis,qrefir,omegarefvis,omegarefir 12 12 use aerosol_mod 13 use mod_phys_lmdz_para, only : is_master 13 14 14 15 implicit none … … 170 171 171 172 if (iaer.eq.iaero_back2lay) then 172 print*, 'naerkind= back2lay', iaer173 if (is_master) print*, 'naerkind= back2lay', iaer 173 174 174 175 ! visible -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/sugas_corrk.F90
r227 r298 30 30 ! use ioipsl_getincom 31 31 use ioipsl_getincom_p 32 use mod_phys_lmdz_para, only : is_master 32 33 implicit none 33 34 … … 105 106 do igas=1,ngas 106 107 read(111,*) gastype(igas) 107 print*,'Gas ',igas,' is ',gastype(igas)108 if (is_master) print*,'Gas ',igas,' is ',gastype(igas) 108 109 enddo 109 110 … … 135 136 136 137 ! display the values 138 if (is_master) then 137 139 print*,'Variable gas volume mixing ratios:' 138 140 do n=1,L_REFVAR … … 141 143 end do 142 144 print*,'' 145 end if 143 146 144 147 !======================================================================= … … 172 175 173 176 ! display the values 177 if (is_master) then 174 178 print*,'Correlated-k g-space grid:' 175 179 do n=1,L_NGAUSS … … 177 181 end do 178 182 print*,'' 183 end if 179 184 180 185 !======================================================================= … … 210 215 211 216 ! display the values 217 if (is_master) then 212 218 print*,'Correlated-k pressure grid (mBar):' 213 219 do n=1,L_NPREF … … 215 221 end do 216 222 print*,'' 223 end if 217 224 218 225 ! save the min / max matrix values … … 255 262 256 263 ! display the values 264 if (is_master) then 257 265 print*,'Correlated-k temperature grid:' 258 266 do n=1,L_NTREF 259 267 print*,n,'.',tgasref(n),' K' 260 268 end do 269 end if 261 270 262 271 ! save the min / max matrix values … … 275 284 276 285 ! display the values 277 print*,''278 print*,'Correlated-k matrix size:'279 print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR,',',L_NGAUSS,']'286 if (is_master) print*,'' 287 if (is_master) print*,'Correlated-k matrix size:' 288 if (is_master) print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR,',',L_NGAUSS,']' 280 289 281 290 !======================================================================= … … 285 294 ! wavelength used to separate IR from VI in graybody. We will need that anyway 286 295 IR_VI_wnlimit=3000. 287 write(*,*)"graybody: Visible / Infrared separation set at",10000./IR_VI_wnlimit,"um"296 if (is_master) write(*,*)"graybody: Visible / Infrared separation set at",10000./IR_VI_wnlimit,"um" 288 297 289 298 nVI_limit=0 … … 304 313 if (graybody) then 305 314 ! constant absorption coefficient in visible 306 write(*,*)"graybody: constant absorption coefficient in visible:"315 if (is_master) write(*,*)"graybody: constant absorption coefficient in visible:" 307 316 kappa_VI=-100000. 308 317 call getin_p("kappa_VI",kappa_VI) 309 write(*,*)" kappa_VI = ",kappa_VI318 if (is_master) write(*,*)" kappa_VI = ",kappa_VI 310 319 kappa_VI=kappa_VI*1.e4* mugaz * 1.672621e-27 ! conversion from m^2/kg to cm^2/molecule 311 320 312 321 ! constant absorption coefficient in IR 313 write(*,*)"graybody: constant absorption coefficient in InfraRed:"322 if (is_master) write(*,*)"graybody: constant absorption coefficient in InfraRed:" 314 323 kappa_IR=-100000. 315 324 call getin_p("kappa_IR",kappa_IR) 316 write(*,*)" kappa_IR = ",kappa_IR325 if (is_master) write(*,*)" kappa_IR = ",kappa_IR 317 326 kappa_IR=kappa_IR*1.e4* mugaz * 1.672621e-27 ! conversion from m^2/kg to cm^2/molecule 318 327 319 write(*,*)"graybody: Visible / Infrared separation set at band: IR=",nIR_limit,", VI=",nVI_limit328 if (is_master) write(*,*)"graybody: Visible / Infrared separation set at band: IR=",nIR_limit,", VI=",nVI_limit 320 329 321 330 Else … … 330 339 if ((corrkdir(1:4).eq.'null'))then !(TRIM(corrkdir).eq.'null_LowTeffStar')) then 331 340 gasv8(1:L_NTREF,1:L_NPREF,1:L_REFVAR,1:L_NSPECTV,1:L_NGAUSS)=0.0 332 print*,'using no corrk data'333 print*,'Visible corrk gaseous absorption is set to zero if graybody=F'341 if (is_master) print*,'using no corrk data' 342 if (is_master) print*,'Visible corrk gaseous absorption is set to zero if graybody=F' 334 343 else 335 344 file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI.dat' … … 363 372 end if 364 373 else 365 print*,'Visible corrk gaseous absorption is set to zero.'374 if (is_master) print*,'Visible corrk gaseous absorption is set to zero.' 366 375 gasv8(1:L_NTREF,1:L_NPREF,1:L_REFVAR,1:L_NSPECTV,1:L_NGAUSS)=0.0 367 376 endif … … 371 380 ! INFRA-RED 372 381 if ((corrkdir(1:4).eq.'null'))then !.or.(TRIM(corrkdir).eq.'null_LowTeffStar')) then 373 print*,'Infrared corrk gaseous absorption is set to zero if graybody=F'382 if (is_master) print*,'Infrared corrk gaseous absorption is set to zero if graybody=F' 374 383 !$OMP MASTER 375 384 gasi8(1:L_NTREF,1:L_NPREF,1:L_REFVAR,1:L_NSPECTI,1:L_NGAUSS)=0.0 … … 662 671 endif 663 672 673 if (is_master) then 664 674 print*,'----------------------------------------------------' 665 675 print*,'And that`s all we have. It`s possible that other' … … 667 677 print*,'don`t yet have data for it...' 668 678 print*,'' 679 end if 669 680 670 681 ! Deallocate local arrays -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/surfini.F
r227 r298 5 5 use comgeomfi_h, only: lati 6 6 use planetwide_mod, only: planetwide_maxval, planetwide_minval 7 use mod_phys_lmdz_para, only : is_master 7 8 8 9 IMPLICIT NONE … … 36 37 call planetwide_minval(albedodat,min_albedo) 37 38 call planetwide_maxval(albedodat,max_albedo) 39 if (is_master) then 38 40 write(*,*) 'surfini: minimum corrected albedo',min_albedo 39 41 write(*,*) 'surfini: maximum corrected albedo',max_albedo 42 end if 40 43 41 44 if (igcm_co2_ice.ne.0) then … … 52 55 ENDDO ! of DO ig=1,ngrid 53 56 else 57 if (is_master) then 54 58 write(*,*) "surfini: No CO2 ice tracer on surface ..." 55 59 write(*,*) " and therefore no albedo change." 60 end if 56 61 endif 57 62 58 63 call planetwide_minval(psolaralb,min_albedo) 59 64 call planetwide_maxval(psolaralb,max_albedo) 65 if (is_master) then 60 66 write(*,*) 'surfini: minimum corrected albedo',min_albedo 61 67 write(*,*) 'surfini: maximum corrected albedo',max_albedo 68 end if 62 69 63 70 END -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/tabfi.F
r273 r298 53 53 use planete_mod, only: year_day, periastr, apoastr, peri_day, 54 54 & obliquit, z0, lmixmin, emin_turb 55 use mod_phys_lmdz_para, only : is_master 55 56 56 57 implicit none … … 82 83 LOGICAL :: found 83 84 84 write(*,*)"tabfi: nid=",nid," tab0=",tab0," Lmodif=",Lmodif 85 if (is_master) write(*,*)"tabfi: nid=",nid," tab0=",tab0, 86 & " Lmodif=",Lmodif 85 87 86 88 IF (nid.eq.0) then … … 90 92 ! Ehouarn: Default Saturn values: 91 93 tab_cntrl(:)=0 92 write(*,*) "Using default Saturn values..."94 if (is_master) write(*,*) "Using default Saturn values..." 93 95 ! these should be read in a def file I guess... 94 96 lmax=0 ! not used anyways … … 164 166 call abort 165 167 else 166 write(*,*)'tabfi: tab_cntrl',tab_cntrl168 if (is_master) write(*,*)'tabfi: tab_cntrl',tab_cntrl 167 169 endif 168 170 c … … 227 229 5 FORMAT(a20,f12.2,f12.2) 228 230 231 if (is_master) then 229 232 write(*,*) '*****************************************************' 230 233 write(*,*) 'Reading tab_cntrl when calling tabfi before changes' … … 265 268 write(*,*) 266 269 write(*,*) 'Lmodif in tabfi!!!!!!!',Lmodif 270 end if !of if (is_master) 267 271 268 272 c-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.